Category : Alternate Operating Systems - Quarterdeck DesqView, CP/M, etc
Archive   : PCCTHES.ZIP
Filename : PCCTHES.PS

 
Output of file : PCCTHES.PS contained in archive : PCCTHES.ZIP
%!
/GlSave save def /TeXDict 200 dict def TeXDict begin /Resolution 300 def /Inch
{Resolution mul}def /Mtrx 6 array def /letter where{pop}{/letter{}def}ifelse
/legal where{pop}{/legal{}def}ifelse /note where{pop}{/note{}def}ifelse
/@letter{72 Resolution div dup neg scale 310 -3005 translate Mtrx
currentmatrix pop}def /@landscape{letter initmatrix 72 Resolution div dup neg
scale Mtrx currentmatrix 0 0.0 put Mtrx 1 -1.0 put Mtrx 2 1.0 put Mtrx 3 0.0
put Mtrx setmatrix 300 310 translate Mtrx currentmatrix pop}def /@legal{legal
initmatrix 72 Resolution div dup neg scale 295 -3880 translate Mtrx
currentmatrix pop}def /@copies{/#copies exch def}def /@restore /restore load
def /restore{vmstatus pop dup @VMused lt{pop @VMused}if exch pop exch @restore
/@VMused exch def}def /@pri{( )print( )
cvs print}def /@FontMatrix[1 0 0 -1 0 0]def /@FontBBox[0 0 1 1]def /dmystr
(ZZf@@)def /newname{dmystr cvn}def /df{/fontname exch def dmystr 2 fontname
cvx(@@@)cvs putinterval newname 7 dict def newname load begin /FontType 3 def
/FontMatrix @FontMatrix def /FontBBox @FontBBox def /BitMaps 256 array def
/BuildChar{CharBuilder}def /Encoding 256 array def 0 1 255{Encoding exch
/.undef put}for end fontname{/foo setfont}2 array copy cvx def fontname load 0
dmystr 5 string copy cvn cvx put}def /dfend{newname newname load definefont
setfont}def /ch-image{ch-data 0 get}def /ch-width{ch-data 1 get}def /ch-height
{ch-data 2 get}def /ch-xoff{ch-data 3 get}def /ch-yoff{ch-data 4 get}def
/ch-tfmw{ch-data 5 get}def /CharBuilder{save 3 1 roll exch /BitMaps get exch
get /ch-data exch def ch-data null ne{ch-tfmw 0 ch-xoff neg ch-yoff neg
ch-width ch-xoff sub ch-height ch-yoff sub setcachedevice ch-width ch-height
true[1 0 0 1 ch-xoff ch-yoff]{ch-image}imagemask}if restore}def /dc{/ch-code
exch def dup 0 get length 2 lt{pop[<00>1 1 0 0 8.00]}if /ch-data exch def
newname load /BitMaps get ch-code ch-data put newname load /Encoding get
ch-code dup( )cvs cvn put}def /bop{erasepage initgraphics Mtrx setmatrix
/SaveImage save def 0 0 moveto}def /eop{showpage SaveImage restore}def /@start
{@letter vmstatus pop /@VMused exch def pop}def /@end{(VM used: )print @VMused
@pri(. Unused: )print vmstatus @VMused sub @pri pop pop(\n)print flush end
GlSave restore}def /p{show}def /v{/dy exch neg def /dx exch def /x1
currentpoint /y1 exch def def newpath x1 y1 moveto dx 0 rlineto 0 dy rlineto
dx neg 0 rlineto closepath fill x1 y1 moveto}def /li{lineto}def /rl{rlineto}
def /rc{rcurveto}def /np{/SaveX currentpoint /SaveY exch def def newpath}def
/st{stroke SaveX SaveY moveto}def /fi{fill SaveX SaveY moveto}def /dot{/myY
exch def /myX exch def /deltax currentlinewidth 2 div def np myX deltax sub
myY moveto myX deltax add myY lineto st}def /ellipse{/endangle exch def
/startangle exch def /yrad exch def /xrad exch def /myY exch def /myX exch def
/savematrix matrix currentmatrix def myX myY translate xrad yrad scale 0 0 1
startangle endangle arc savematrix setmatrix}def /a{moveto}def /delta 0 def /b
{exch p dup /delta exch def 0 rmoveto}def /c{p delta 4 sub dup /delta exch def
0 rmoveto}def /d{p delta 3 sub dup /delta exch def 0 rmoveto}def /e{p delta 2
sub dup /delta exch def 0 rmoveto}def /f{p delta 1 sub dup /delta exch def 0
rmoveto}def /g{p delta 0 rmoveto}def /h{p delta 1 add dup /delta exch def 0
rmoveto}def /i{p delta 2 add dup /delta exch def 0 rmoveto}def /j{p delta 3
add dup /delta exch def 0 rmoveto}def /k{p delta 4 add dup /delta exch def 0
rmoveto}def /l{p -4 0 rmoveto}def /m{p -3 0 rmoveto}def /n{p -2 0 rmoveto}def
/o{p -1 0 rmoveto}def /q{p 1 0 rmoveto}def /r{p 2 0 rmoveto}def /s{p 3 0
rmoveto}def /t{p 4 0 rmoveto}def /w{0 rmoveto}def /x{0 exch rmoveto}def /y{3
-1 roll p moveto}def /bos{/section save def}def /eos{section restore}def
/@SpecialDefaults{/hs 8.5 Inch def /vs 11 Inch def /ho 0 def /vo 0 def /hsc 1
def /vsc 1 def /CLIP false def}def /@hsize{/hs exch def /CLIP true def}def
/@vsize{/vs exch def /CLIP true def}def /@hoffset{/ho exch def}def /@voffset{
/vo exch def}def /@hscale{/hsc exch def}def /@vscale{/vsc exch def}def
/@setclipper{hsc vsc scale CLIP{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto
hs neg 0 rlineto closepath clip}if}def /@beginspecial{gsave /SpecialSave save
def currentpoint transform initgraphics itransform translate @SpecialDefaults
@MacSetUp}def /@setspecial{MacDrwgs{md begin /pxt ho def /pyt vo neg def end}{
ho vo translate @setclipper}ifelse}def /@endspecial{SpecialSave restore
grestore}def /MacDrwgs false def /@MacSetUp{userdict /md known{userdict /md
get type /dicttype eq{md begin /letter{}def /note{}def /legal{}def /od{txpose
1 0 mtx defaultmatrix dtransform exch atan/pa exch def newpath clippath mark{
transform{itransform moveto}}{transform{itransform lineto}}{6 -2 roll
transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll
itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall
newpath counttomark array astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2
F/|______Courier fnt invertflag{PaintBlack}if}def /txpose{pxs pys scale ppr
aload pop por{noflips{pop exch neg exch translate pop 1 -1 scale}if xflip
yflip and{pop exch neg exch translate 180 rotate 1 -1 scale ppr 3 get ppr 1
get neg sub neg ppr 2 get ppr 0 get neg sub neg translate}if xflip yflip not
and{pop exch neg exch translate pop 180 rotate ppr 3 get ppr 1 get neg sub neg
0 translate}if yflip xflip not and{ppr 1 get neg ppr 0 get neg translate}if}{
noflips{translate pop pop 270 rotate 1 -1 scale}if xflip yflip and{translate
pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0
get neg sub neg translate}if xflip yflip not and{translate pop pop 90 rotate
ppr 3 get ppr 1 get neg sub neg 0 translate}if yflip xflip not and{translate
pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 exch translate}if}ifelse
scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy
translate .96 dup scale neg exch neg exch translate}if}def /cp{pop pop
showpage pm restore}def end}if}if}def /psf$TeXscale{65536 div}def
/DocumentInitState[matrix currentmatrix currentlinewidth currentlinecap
currentlinejoin currentdash currentgray currentmiterlimit]cvx def /startTexFig
{/psf$SavedState save def userdict maxlength dict begin currentpoint transform
DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap
setlinewidth setmatrix itransform moveto /psf$ury exch psf$TeXscale def
/psf$urx exch psf$TeXscale def /psf$lly exch psf$TeXscale def /psf$llx exch
psf$TeXscale def /psf$y exch psf$TeXscale def /psf$x exch psf$TeXscale def
currentpoint /psf$cy exch def /psf$cx exch def /psf$sx psf$x psf$urx psf$llx
sub div def /psf$sy psf$y psf$ury psf$lly sub div def psf$sx psf$sy scale
psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub translate
/DefFigCTM matrix currentmatrix def /initmatrix{DefFigCTM setmatrix}def
/defaultmatrix{DefFigCTM exch copy}def /initgraphics{DocumentInitState
setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix
DefFigCTM setmatrix}def /showpage{initgraphics}def /erasepage{initgraphics}
def /copypage{}def}def /clipFig{currentpoint 6 2 roll newpath 4 copy 4 2 roll
moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath
moveto}def /doclip{psf$llx psf$lly psf$urx psf$ury clipFig}def /endTexFig{end
psf$SavedState restore}def end statusdict /waittimeout 300 put

TeXDict begin @start bos /fa df[<1E07801E07801E07801E07801E07801E07801E07801E
07801E07801E07801E07801E07801E07801E0780FFC7F0FFC7F0FFC7F01E07801E07801E07801E
07801E07800F0BC20FFBFE07F9FE01F87E>23 26 0 0 22]11 dc[<1E03C01E03C01E03C01E03
C01E03C01E03C01E03C01E03C01E03C01E03C01E03C01E03C01E03C01E03C0FFE3C0FFE3C0FFE3
C01E00001E00001E00001E00001E00000E20000FE3C007E3C003E3C00003C0>18 27 0 0 21]
12 dc[<01C0038007000F000E001E001C003C0038007800780078007000F000F000F000F000F0
00F000F000F000F000F000F000F000700078007800780038003C001C001E000E000F0007000380
01C0>10 38 -2 10 15]40 dc[ 8003C003C003C003C003C003C003C003C003C003C003C003C0038007800780078007000F000E00
1E001C003C0038007000E000>10 38 -2 10 15]41 dc[10 3 0 -7 13]45 dc
[4 4 -3 0 11]46 dc[ 0C000C000E00060006000700030003800180018001C000C000C000E00060006000700030003000
3800180018001C000C000C>14 37 -2 9 19]47 dc[<07E00FF01FF83C3C781E781E781EF00FF0
0FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F781E781E781E3C3C1FF80FF007E0>16
27 -1 0 19]48 dc[ 0078007C003C003C203C607CE07CF07870F83FF03FE00F80>14 27 -2 0 19]50 dc[<0F803FE0
7FF0F0F8C0F8807C807C007C007C007C007800F800F00FE00FC00FE001F000F000F800F8407840
F8E0F8F0F07FF03FE00F80>14 27 -2 0 19]51 dc[<0F803FE07FF078F8E07C403C403E003E00
3E003E003E3C3E3C3C3E7C3FF83FF03FC03C003C003C003C003C003C003C003FFC3FFC3FFC>15
27 -1 0 19]53 dc[<07800FE01FF03C7078787838703CF03CF03CF03CF03CF03CF03CF878FC78
FFF0FFE0F3C07000780078003C003C001E200FE007E001C0>14 27 -2 0 19]54 dc[<07801FE0
3FF07CF87878F03CF03CF03CF03CF03CF03C787838701FE00FC03FF078787878F03CF03CF03CF0
3CF03C78783FF01FE00FC0>14 27 -2 0 19]56 dc[ >4 17 -3 0 11]58 dc[ 03F00F03E00F03E00703C00707C00787C0038780038F8003CF8001CF0001CF0001CF0000DE0000
FE0000FE00007C00007C00>23 26 -1 0 26]65 dc[ F0F801F0F801F0F801F0F801F0F803E0F80FC0FFFF80FFFE00FFFF00F81F80F807C0F803E0F803
E0F803E0F803E0F807C0F81FC0FFFF80FFFE00FFF800>20 26 -3 0 26]66 dc[<007F8001FFE0
07FFF00FC0F01F00303E00103E00007C00007C0000F80000F80000F80000F80000F80000F80000
F80000F800007C00007C00003E00003E00001F00200FC0F007FFF001FFF0007FC0>20 26 -2 0
25]67 dc[ 007CF8007CF8007CF8007CF8007CF8007CF800F8F800F8F801F0F801F0F803E0F80FC0FFFF80FF
FF00FFFC00>22 26 -3 0 28]68 dc[ 00F80000F80000F80000F80000FFFF00FFFF00FFFF00F80000F80000F80000F80000F80000F800
00F80000F80000FFFF80FFFF80FFFF80>17 26 -3 0 23]69 dc[ F800F800F800F800F800F800FFFEFFFEFFFEF800F800F800F800F800F800F800F800FFFFFFFFFF
FF>16 26 -3 0 22]70 dc[<007F0001FFE007FFF00FC0F01F00F03E00F03E00F07C00F07C00F0
F807F0F807F0F807F0F80000F80000F80000F80000F800007C00007C00003E00003E00201F0070
0FC1F007FFF001FFE0007F00>20 26 -2 0 26]71 dc[ 01F0F801F0F801F0F801F0F801F0F801F0F801F0FFFFF0FFFFF0FFFFF0F801F0F801F0F801F0F8
01F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0>20 26 -3 0 27]72 dc[ F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8>5 26 -3 0 11]73 dc[ 03E0F807E0F807C0F80FC0F80F80F81F00F83F00FC3E00FE7E00FF7C00FFF800FFF800FFF000FB
F000F9F000F8F800F87C00F83E00F81F00F80F80F807C0F803E0F801F0F800F8>21 26 -3 0 27
]75 dc[ 00F800F800F800F800F800F800F800F800>15 26 -3 0 21]76 dc[ E0F03F03E0F07B83E0F07B83E0F07B83E0F0FBC3E0F0F1C3E0F0F1C3E0F0F1C3E0F1F1E3E0F1E0
E3E0F1E0E3E0F3E0F3E0F3C073E0F3C073E0F3C073E0F7C07BE0F7803BE0F7803BE0F7803BE0FF
001FE0FF001FE0FF001FE0FE000FE0>27 26 -3 0 34]77 dc[ 1EF0F01EF0F03EF0F03CF0F07CF0F07CF0F078F0F0F8F0F0F0F0F0F0F0F1F0F0F1E0F0F3E0F0F3
E0F0F3C0F0F7C0F0F780F0F780F0FF00F0FF00F0FF00F0FE00F0>20 26 -3 0 27]78 dc[<00FE
0003FF8007FFC00F83E01F01F03E00F83E00F87C007C7C007CF8003EF8003EF8003EF8003EF800
3EF8003EF8003EF8003E7C007C7C007C3C00783E00F81F01F00F83E007FFC003FF8000FE00>23
26 -2 0 28]79 dc[ FFF800FFFE00FFFF80F80F80F807C0F803E0F803E0F803E0F803E0F803E0F803E0F807C0F80F80
FFFF80FFFE00FFF800>19 26 -3 0 25]80 dc[ 0F80F81F00F81F00F83E00F83E00F87C00FFFC00FFFE00FFFF80F80FC0F807C0F803E0F803E0F8
03E0F803E0F807C0F80FC0FFFF80FFFE00FFF800>20 26 -3 0 25]82 dc[<07E03FF87FFCF83E
F01EE00F400F000F000F001F003F03FE0FFC3FF87FF07FC0FC00F800F000F000F004780E7C1E3F
FE1FFC07F0>16 26 -2 0 21]83 dc[<007C00007C00007C00007C00007C00007C00007C00007C
00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C
00007C00007C00FFFFFEFFFFFEFFFFFE>23 26 -1 0 26]84 dc[<03F8000FFE001FFF003F0F80
7C03C07C03C0F801E0F801E0F801E0F801E0F801E0F801E0F801E0F801E0F801E0F801E0F801E0
F801E0F801E0F801E0F801E0F801E0F801E0F801E0F801E0F801E0>19 26 -3 0 26]85 dc[<00
7C00007C0000FE0000FE0000F60001E70001E70003E78003E78003C38007C3C007C3C007C1C00F
81E00F81E01F80F01F00F01F00F03F00783E00783E00787C003C7C003CFC001EF8001EF8001E>
23 26 -1 0 26]86 dc[<01E003C00003E007E00003F007E00003F007E00003B007600007B00F
700007B80F700007B80F70000FB81F78000F9C1E38000F1C1E38000F1C1E38001F1C3E3C001F1E
3E3C001F0E3C1C003E0E3C1E003E0E3C1E003E0E7C1E003E07780E007C07780F007C07780F007C
07780F007C03F00700F803F00780F803F00780F803F00780>33 26 -1 0 36]87 dc[<003E0000
003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E00
00007F0000007F000000FF800001FBC00001F3C00003F1E00007E1E00007E0F0000FC0F8000F80
78001F803C003F003E003E001E007E001F00FC000F80>25 26 0 0 26]89 dc[<1F3C7FFC7FFC
F87CF03CF03CF83C7FFC3FFC07FC003C203C303C38783FF81FF007C0>14 17 -1 0 18]97 dc[<
F3E0FFF8FFFCF83EF01EF01FF00FF00FF00FF00FF00FF01FF01EF83EFFFCFFF8F3F0F000F000F0
00F000F000F000F000F000F000>16 26 -2 0 20]98 dc[<07F00FFC1FFC3C1C78047800F000F0
00F000F000F0007800780C3C1C1FFC0FF807E0>14 17 -1 0 17]99 dc[<07CF1FFF3FFF7C3F78
0FF80FF00FF00FF00FF00FF00FF80F780F7C1F3FFF1FFF07CF000F000F000F000F000F000F000F
000F000F>16 26 -1 0 20]100 dc[<07F01FFC3FFC3C0C78007000F000F000FFFCFFFCFFFCF0
1C78387C783FF01FF007C0>14 17 -1 0 17]101 dc[<1E001E001E001E001E001E001E001E00
1E001E001E001E001E001E00FFC0FFC0FFC01E001E001E001E001E000F080FF807F801F8>13 26
0 0 12]102 dc[<07E01FF87FFE781EF00FF00FF01F7FFF3FFE3FFC7FF0700077807FE03FF03C
F0787878787878787878783CF03FFF1FFF078F>16 25 -1 8 19]103 dc[ F01EF01EF01EF01EF01EF01EF01EF01EF81EFC3EFFFCF7F8F1F0F000F000F000F000F000F000F0
00F000F000>15 26 -2 0 20]104 dc[<78787878787878787878787878787878780000000000
F8F8F8F8F8>5 27 -1 0 9]105 dc[<3E00FF00FF80C7C003C003C003C003C003C003C003C003
C003C003C003C003C003C003C003C003C003C003C003C003C00000000000000000000007C007C0
07C007C007C0>10 34 3 7 10]106 dc[ F7C0F7E0F3F0F1F8F0FCF07EF000F000F000F000F000F000F000F000F000>15 26 -2 0 19]
107 dc[4 26 -2 0 9]108
dc[ 1E03C0F01E03C0F01E03C0F81F03C0FC3F87C0FFFFFF80F7F8FF00F1F03E00>26 17 -2 0 31]
109 dc[
15 17 -2 0 20]110 dc[<07E01FF83FFC7C3E781EF81FF00FF00FF00FF00FF00F700E781E3C3C
3FFC1FF807E0>16 17 -1 0 19]111 dc[ 7EF01EF01FF00FF00FF00FF00FF00FF01FF01EF83EFFFCFFF8F3F0>16 24 -2 7 20]112 dc[<
F000F000F000F000F000F000F000F000F000F000F800F800FC00FF80FF80F780F380>9 17 -2 0
13]114 dc[<1F807FC0FFE0F0F0C0F000F001F01FE03FE07F80FE00F000F000F0E07FE03FE01F
80>12 17 -1 0 15]115 dc[<0F801FE03FE03C403C003C003C003C003C003C003C003C003C00
3C00FFC0FFC0FFC03C003C003C003C00>11 21 -1 0 14]116 dc[<3F9E7FFEFFFEF03EF01EF0
1EF01EF01EF01EF01EF01EF01EF01EF01EF01EF01EF01E>15 17 -2 0 20]117 dc[<07C007C0
0FE00EE00EE01EF01EF01C703C783C783C78783C783C783CF01EF01EF01E>15 17 -1 0 18]
118 dc[<0F03E00F03E00F83E01D87701D87701D87703DC7783DCE783CCE7838CE3878CE3C78EE
3C78EC3C786C1CF07C1EF07C1EF0781E>23 17 -1 0 26]119 dc[ 001E38000F780007F00003E00003C00003E00007E00007F0000F78001E3C003C3C007C1E00780F
00>17 17 0 0 18]120 dc[ 701E701E703C783C783C3C783C783C781EF01EF01E>15 24 -1 7 18]121 dc[ 78003C003E001E000F000F80078003C003E001E000F07FF87FF87FF8>13 17 -1 0 17]122 dc
dfend /fb df[ 80FFFFFFE0000FFFFFFFFF80FFFFFFE0000FFFFFFFFF80FFFFFFE0000FFFFFFFFF80001F800000
0007FFFC0000001FC000000007FFFC0000000FC000000007FFF80000000FE00000000FFFF80000
0007E00000000FFFF000000007E00000001FFFF000000007F00000001FFFF000000003F0000000
1FFFE000000003F80000003FFFE000000001F80000003FFFC000000001F80000007FFFC0000000
01FC0000007FFFC000000000FFFFFFFFFFFF8000000000FFFFFFFFFFFF80000000007FFFFFFFFF
FF00000000007FFFFFFFFFFF00000000007FFFFFFFFFFF00000000003FFFFFFFFFFE0000000000
3F800003FFFE00000000001F800003FFFC00000000001FC00007FFFC00000000001FC00007FFFC
00000000000FC0000FFFF800000000000FE0000FFFF8000000000007E0000FFFF0000000000007
F0001FFFF0000000000003F0001FFFE0000000000003F0003FFFE0000000000003F8003FFFE000
0000000001F8003FFFC0000000000001FC007FFFC0000000000000FC007FFF80000000000000FC
00FFFF80000000000000FE00FFFF800000000000007E00FFFF000000000000007F01FFFF000000
000000003F01FFFE000000000000003F83FFFE000000000000003F83FFFE000000000000001F87
FFFC000000000000001FC7FFFC000000000000000FC7FFF8000000000000000FEFFFF800000000
0000000FEFFFF80000000000000007FFFFF00000000000000007FFFFF00000000000000003FFFF
E00000000000000003FFFFE00000000000000001FFFFC00000000000000001FFFFC00000000000
000001FFFFC00000000000000000FFFF800000000000000000FFFF8000000000000000007FFF00
00000000000000007FFF0000000000000000007FFF0000000000000000003FFE00000000000000
00003FFE0000000000000000001FFC0000000000000000001FFC0000000000000000001FFC0000
000000000000000FF80000000000000000000FF800000000000000000007F00000000000000000
0003E00000000000>81 71 -4 0 90]65 dc[<000000007FFF0000000000000FFFFFF000000000
00FFFFFFFE0000000007FFFFFFFF800000001FFFFFFFFFE00000007FFFFFFFFFF0000000FFFFFC
007FFC000003FFFFC0000FFE000007FFFE000001FF00000FFFF8000000FF80003FFFE00000003F
C0007FFFC00000001FE0007FFF000000000FE000FFFE0000000007F001FFFC0000000003F803FF
FC0000000003F807FFF80000000001FC07FFF00000000001FC0FFFF00000000000FC0FFFF00000
000000FC1FFFE00000000000FE1FFFE000000000007E3FFFC000000000007E3FFFC00000000000
7E3FFFC000000000007E7FFFC000000000007E7FFFC00000000000007FFF800000000000007FFF
80000000000000FFFF80000000000000FFFF80000000000000FFFF80000000000000FFFF800000
00000000FFFF80000000000000FFFF80000000000000FFFF80000000000000FFFF800000000000
00FFFF80000000000000FFFF80000000000000FFFF80000000000000FFFF80000000000000FFFF
800000000000007FFF800000000000007FFF800000000000007FFFC000000000007E7FFFC00000
0000007E3FFFC000000000007E3FFFC000000000007E3FFFC00000000000FE1FFFE00000000000
FE1FFFE00000000000FE0FFFF00000000001FE0FFFF00000000001FE07FFF00000000003FE07FF
F80000000003FE03FFFC0000000007FE01FFFC0000000007FE00FFFE000000000FFE007FFF0000
00001FFE007FFFC00000003FFE003FFFE00000007FFE000FFFF8000001FFFE0007FFFE000003FF
FE0003FFFFC0000FFFFE0000FFFFFC00FFFFFE00007FFFFFFFFFE7FE00001FFFFFFFFF83FE0000
07FFFFFFFF00FE000000FFFFFFFC007E0000000FFFFFE0003E000000007FFE00001E>71 71 -7
0 86]67 dc[ FFFFFFFFF80000FFFFFFFFFFFFFFFE0000FFFFFFFFFFFFFFFF0000001FFFC00007FFFFC000001F
FFC000007FFFE000001FFFC000000FFFF000001FFFC0000003FFF800001FFFC0000001FFFC0000
1FFFC0000000FFFE00001FFFC00000007FFF00001FFFC00000003FFF80001FFFC00000001FFF80
001FFFC00000001FFFC0001FFFC00000000FFFE0001FFFC00000000FFFE0001FFFC000000007FF
F0001FFFC000000007FFF0001FFFC000000007FFF0001FFFC000000003FFF8001FFFC000000003
FFF8001FFFC000000003FFF8001FFFC000000003FFFC001FFFC000000003FFFC001FFFC0000000
03FFFC001FFFC000000003FFFC001FFFC000000003FFFE001FFFC000000001FFFE001FFFC00000
0001FFFE001FFFC000000001FFFE001FFFC000000001FFFE001FFFC000000001FFFE001FFFC000
000001FFFE001FFFC000000001FFFE001FFFC000000001FFFE001FFFC000000001FFFE001FFFC0
00000001FFFE001FFFC000000001FFFE001FFFC000000001FFFE001FFFC000000003FFFE001FFF
C000000003FFFC001FFFC000000003FFFC001FFFC000000003FFFC001FFFC000000003FFFC001F
FFC000000003FFFC001FFFC000000003FFF8001FFFC000000003FFF8001FFFC000000007FFF800
1FFFC000000007FFF0001FFFC000000007FFF0001FFFC000000007FFE0001FFFC00000000FFFE0
001FFFC00000000FFFC0001FFFC00000001FFFC0001FFFC00000003FFF80001FFFC00000003FFF
00001FFFC00000007FFF00001FFFC0000000FFFE00001FFFC0000001FFFC00001FFFC0000007FF
F800001FFFC000001FFFF000001FFFC000007FFFE000001FFFC00007FFFF8000FFFFFFFFFFFFFF
FF0000FFFFFFFFFFFFFFFC0000FFFFFFFFFFFFFFF00000FFFFFFFFFFFFFFC00000FFFFFFFFFFFF
FE000000FFFFFFFFFFFFC0000000>79 71 -4 0 91]68 dc[ 80000000FFFFFFFFFF80000000FFFFFFFFFF80000000FFFFFFFFFF80000000FFFFFFFFFF800000
00001FFFE00000000000001FFFE00000000000001FFFE00000000000001FFFE00000000000001F
FFE00000000000001FFFE00000000000001FFFE00000000000001FFFE00000000000001FFFE000
00000000001FFFE00000000000001FFFE00000000000001FFFE00000000000001FFFE000000000
00001FFFE00000000000001FFFE0007E000000001FFFE0007E000000001FFFE0007E000000001F
FFE0007E000000001FFFE0007E000000001FFFE0007E000000001FFFE000FE000000001FFFE000
FE000000001FFFE000FE000000001FFFE001FE000000001FFFE003FE000000001FFFE01FFE0000
00001FFFFFFFFE000000001FFFFFFFFE000000001FFFFFFFFE000000001FFFFFFFFE000000001F
FFFFFFFE000000001FFFFFFFFE000000001FFFE01FFE000000001FFFE003FE000000001FFFE001
FE000000001FFFE000FE000000001FFFE000FE000000001FFFE000FE000000001FFFE0007E001F
80001FFFE0007E001F80001FFFE0007E001F80001FFFE0007E001F80001FFFE0007E003F00001F
FFE0007E003F00001FFFE00000003F00001FFFE00000003F00001FFFE00000003F00001FFFE000
00007F00001FFFE00000007F00001FFFE00000007F00001FFFE0000000FF00001FFFE0000001FE
00001FFFE0000001FE00001FFFE0000003FE00001FFFE0000007FE00001FFFE000001FFE00001F
FFE000007FFE00001FFFE00003FFFE00FFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFE00FFFFFFFFFF
FFFFFC00FFFFFFFFFFFFFFFC00FFFFFFFFFFFFFFFC00FFFFFFFFFFFFFFFC00>65 70 -4 0 75]
70 dc[ FFFFFC03FFFFFFFFF0FFFFFFFFFC03FFFFFFFFF0FFFFFFFFFC03FFFFFFFFF0001FFFE00000007F
FF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFF
E00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF
8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE0
0000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF80
00001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE000
00007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000
001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000
007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFFFFFFFFFFFFF800000
1FFFFFFFFFFFFFFF8000001FFFFFFFFFFFFFFF8000001FFFFFFFFFFFFFFF8000001FFFFFFFFFFF
FFFF8000001FFFFFFFFFFFFFFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001F
FFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007F
FF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFF
E00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF
8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE0
0000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF80
00001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE00000007FFF8000001FFFE000
00007FFF8000001FFFE00000007FFF8000FFFFFFFFFC03FFFFFFFFF0FFFFFFFFFC03FFFFFFFFF0
FFFFFFFFFC03FFFFFFFFF0FFFFFFFFFC03FFFFFFFFF0FFFFFFFFFC03FFFFFFFFF0FFFFFFFFFC03
FFFFFFFFF0>84 71 -4 0 93]72 dc[ FFFFFFFFFFFFFF000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000F
FFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF00000
0FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000
000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF0
00000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFF
F000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000F
FFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF00000
0FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000FFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF>40 71 -2 0 45]73 dc[ FFFFE0FFFFFFFFFC00FFFFFFFFE0FFFFFFFFFC00FFFFFFFFE0FFFFFFFFFC00FFFFFFFFE0FFFFFF
FFFC00FFFFFFFFE0FFFFFFFFFC00FFFFFFFFE0001FFFE0000001FFFF8000001FFFE0000001FFFF
8000001FFFE0000003FFFF0000001FFFE0000007FFFE0000001FFFE000000FFFFE0000001FFFE0
00000FFFFC0000001FFFE000001FFFF80000001FFFE000003FFFF00000001FFFE000007FFFF000
00001FFFE000007FFFE00000001FFFE00000FFFFC00000001FFFE00001FFFF800000001FFFE000
01FFFF800000001FFFE00003FFFF000000001FFFE00007FFFE000000001FFFE0000FFFFE000000
001FFFE0000FFFFC000000001FFFE0001FFFF8000000001FFFE0003FFFF0000000001FFFE0003F
FFF0000000001FFFE0007FFFE0000000001FFFF000FFFFC0000000001FFFF801FFFF8000000000
1FFFFC01FFFF80000000001FFFFF03FFFF00000000001FFFFF87FFFE00000000001FFFFFCFFFFE
00000000001FFFFFEFFFFC00000000001FFFFFFFFFF800000000001FFFEFFFFFF000000000001F
FFE7FFFFF000000000001FFFE3FFFFE000000000001FFFE1FFFFC000000000001FFFE07FFF8000
000000001FFFE03FFF8000000000001FFFE01FFF0000000000001FFFE00FFE0000000000001FFF
E007FE0000000000001FFFE003FF0000000000001FFFE000FF8000000000001FFFE0007FC00000
0000001FFFE0003FE000000000001FFFE0001FF000000000001FFFE0000FFC00000000001FFFE0
0007FE00000000001FFFE00001FF00000000001FFFE00000FF80000000001FFFE000007FC00000
00001FFFE000003FE0000000001FFFE000001FF8000000001FFFE000000FFC000000001FFFE000
0007FE000000001FFFE0000001FF000000001FFFE0000000FF800000001FFFE00000007FC00000
001FFFE00000003FE00000001FFFE00000001FF80000001FFFE00000000FFC0000001FFFE00000
0003FE0000FFFFFFFFFC0001FFFFFFC0FFFFFFFFFC0001FFFFFFC0FFFFFFFFFC0001FFFFFFC0FF
FFFFFFFC0001FFFFFFC0FFFFFFFFFC0001FFFFFFC0FFFFFFFFFC0001FFFFFFC0>83 71 -4 0 93
]75 dc[ FFFFFFFFC0FFFFFFFFFFFFFFE0001FFFE000FFFFE0001FFFE0001FFFE0001FFFE00007FFE0001F
FFE00001FFE0001FFFE00000FFE0001FFFE000007FE0001FFFE000003FE0001FFFE000001FE000
1FFFE000001FE0001FFFE000000FF0001FFFE000000FF0001FFFE0000007F0001FFFE0000007F0
001FFFE0000007F0001FFFE0000003F0001FFFE0000003F0001FFFE0000003F0001FFFE0000003
F0001FFFE0000003F0001FFFE0000001F8001FFFE0000001F8001FFFE0000001F8001FFFE00000
01F8001FFFE000000000001FFFE000000000001FFFE000000000001FFFE000000000001FFFE000
000000001FFFE000000000001FFFE000000000001FFFE000000000001FFFE000000000001FFFE0
00000000001FFFE000000000001FFFE000000000001FFFE000000000001FFFE000000000001FFF
E000000000001FFFE000000000001FFFE000000000001FFFE000000000001FFFE000000000001F
FFE000000000001FFFE000000000001FFFE000000000001FFFE000000000001FFFE00000000000
1FFFE000000000001FFFE000000000001FFFE000000000001FFFE000000000001FFFE000000000
001FFFE000000000001FFFE000000000001FFFE000000000001FFFE000000000001FFFE0000000
00001FFFE000000000001FFFE000000000FFFFFFFFFF800000FFFFFFFFFF800000FFFFFFFFFF80
0000FFFFFFFFFF800000FFFFFFFFFF800000FFFFFFFFFF800000>61 71 -4 0 71]76 dc[ FFFFFC00000000FFFFFFFFFC00000000FFFFFFFFFC00000000FFFFFFFFFC00000000FFFFFFFFFC
00000000FFFFFFFFFC00000000001FFFE00000000000001FFFE00000000000001FFFE000000000
00001FFFE00000000000001FFFE00000000000001FFFE00000000000001FFFE00000000000001F
FFE00000000000001FFFE00000000000001FFFE00000000000001FFFE00000000000001FFFE000
00000000001FFFE00000000000001FFFE00000000000001FFFE00000000000001FFFE000000000
00001FFFE00000000000001FFFE00000000000001FFFE00000000000001FFFE00000000000001F
FFE00000000000001FFFE00000000000001FFFE00000000000001FFFE00000000000001FFFE000
00000000001FFFFFFFFFF00000001FFFFFFFFFFE0000001FFFFFFFFFFF8000001FFFFFFFFFFFE0
00001FFFFFFFFFFFF800001FFFC0000FFFFC00001FFFC00001FFFE00001FFFC000007FFF00001F
FFC000003FFF80001FFFC000001FFFC0001FFFC000001FFFE0001FFFC000001FFFE0001FFFC000
000FFFF0001FFFC000000FFFF0001FFFC000000FFFF0001FFFC000000FFFF8001FFFC000000FFF
F8001FFFC000000FFFF8001FFFC000000FFFF8001FFFC000000FFFF8001FFFC000000FFFF8001F
FFC000000FFFF8001FFFC000000FFFF8001FFFC000000FFFF8001FFFC000000FFFF0001FFFC000
000FFFF0001FFFC000000FFFF0001FFFC000001FFFE0001FFFC000001FFFE0001FFFC000001FFF
C0001FFFC000003FFF80001FFFC000007FFF80001FFFC00001FFFF00001FFFC0000FFFFE00FFFF
FFFFFFFFFFFC00FFFFFFFFFFFFFFF000FFFFFFFFFFFFFFC000FFFFFFFFFFFFFF0000FFFFFFFFFF
FFF80000FFFFFFFFFFFF800000>69 71 -4 0 81]80 dc[ 07FFFFFF0000FE1FFFFFFFC000FF7FFFFFFFE000FFFFFFFFFFF000FFFFFC00FFF800FFFFC0001F
FC00FFFE000007FE00FFF8000003FF00FFE0000003FF00FFC0000001FF80FF80000001FF80FF00
000000FFC0FF00000000FFC0FE00000000FFC0FE00000000FFC0FE00000000FFE0FC00000000FF
E0FC00000000FFE0FC00000001FFE0FC00000001FFE07C00000003FFE00000000007FFE0000000
0007FFE0000000001FFFE0000000007FFFE000000007FFFFC00000007FFFFFC000000FFFFFFFC0
0000FFFFFFFF800007FFFFFFFF80001FFFFFFFFF00007FFFFFFFFF0000FFFFFFFFFE0001FFFFFF
FFFC0003FFFFFFFFFC0007FFFFFFFFF8000FFFFFFFFFF0001FFFFFFFFFC0001FFFFFFFFF80003F
FFFFFFFF00003FFFFFFFFC00007FFFFFFFE000007FFFFFFC0000007FFFFF80000000FFFFF80000
0000FFFF8000000000FFFE0000003F00FFFC0000003F00FFF80000003F00FFF00000003F00FFF0
0000007F00FFE00000007F00FFE00000007F00FFE0000000FF007FE0000000FF007FE0000001FF
007FE0000003FF003FF0000003FF003FF0000007FF001FF800001FFF000FFC00007FFF000FFF00
01FFFF0007FFC01FFFFF0003FFFFFFFFFF0001FFFFFFFEFF00007FFFFFF87F00001FFFFFE03F00
0007FFFF801F000000FFF8000700>51 71 -7 0 66]83 dc[<0000000001F00000000000000000
0003F800000000000000000007FC00000000000000000007FC0000000000000000000FFE000000
0000000000000FFE0000000000000000001FFF0000000000000000001FFF000000000000000000
3FFF8000000000000000003FFF8000000000000000003FFF8000000000000000007FFFC0000000
00000000007FFFC00000000000000000FFFFE00000000000000000FFFFE00000000000000001FF
FFF00000000000000001FFFFF00000000000000001FFFFF00000000000000003FFFFF800000000
00000003FFFFF80000000000000007FFFDFC0000000000000007FFFCFC000000000000000FFFF8
FE000000000000000FFFF87E000000000000001FFFF07F000000000000001FFFF07F0000000000
00001FFFE03F000000000000003FFFE03F800000000000003FFFE01F800000000000007FFFC01F
C00000000000007FFFC00FC0000000000000FFFF800FE0000000000000FFFF800FE00000000000
00FFFF0007E0000000000001FFFF0007F0000000000001FFFE0003F0000000000003FFFE0003F8
000000000003FFFE0001F8000000000007FFFC0001FC000000000007FFFC0000FC00000000000F
FFF80000FE00000000000FFFF80000FE00000000000FFFF000007E00000000001FFFF000007F00
000000001FFFF000003F00000000003FFFE000003F80000000003FFFE000001F80000000007FFF
C000001FC0000000007FFFC000000FC000000000FFFF8000000FE000000000FFFF8000000FE000
000000FFFF00000007E000000001FFFF00000007F000000001FFFF00000003F000000003FFFE00
000003F800000003FFFE00000001F800000007FFFC00000001FC00000007FFFC00000001FC0000
0007FFF800000000FC0000000FFFF800000000FE0000000FFFF8000000007E0000001FFFF00000
00007F0000001FFFF0000000003F0000003FFFE0000000003F8000003FFFE0000000001F8000FF
FFFFFFF000003FFFFFE0FFFFFFFFF000003FFFFFE0FFFFFFFFF000003FFFFFE0FFFFFFFFF00000
3FFFFFE0FFFFFFFFF000003FFFFFE0FFFFFFFFF000003FFFFFE0>83 71 -3 0 90]86 dc[<0007
FF0000FFF8007FFFF003FFFC01FFFFFC07FFFC07FFFFFE0FFFFC0FFFFFFF9FFFFC1FFFE07FDFFF
F83FFF800FFFFF007FFE0003FFFC007FFC0001FFFC00FFFC0000FFFC00FFF80000FFFC00FFF800
007FFC00FFF800007FFC00FFF800007FFC00FFF800007FFC00FFFC00007FFC007FFC00007FFC00
7FFE00007FFC003FFF00007FFC001FFF80007FFC000FFFE0007FFC0007FFF8007FFC0003FFFF80
7FFC0000FFFFFF7FFC00003FFFFFFFFC000007FFFFFFFC0000003FFFFFFC00000000FFFFFC0000
0000007FFC00000000007FFC0000FC00007FFC0003FF00007FFC0007FF80007FFC0007FF80007F
FC000FFFC0007FFC000FFFC000FFF8000FFFC000FFF8000FFFC001FFF0000FFFC003FFF0000FFF
C007FFE00007FF803FFFC00003FFFFFFFF800001FFFFFFFE000000FFFFFFF80000003FFFFFE000
000003FFFE000000>54 46 -3 0 58]97 dc[<01F8000FFE00000001FC007FFFE0000001FE01FF
FFFC000001FF07FFFFFF000001FF8FFFFFFF800001FFBFF01FFFC00001FFFF8003FFE00001FFFF
0000FFF00001FFFC00007FF80001FFF800007FFC0001FFF800003FFE0001FFF000001FFE0001FF
F000001FFF0001FFF000001FFF0001FFF000001FFF8001FFF000000FFF8001FFF000000FFF8001
FFF000000FFF8001FFF000000FFFC001FFF000000FFFC001FFF000000FFFC001FFF000000FFFC0
01FFF000000FFFC001FFF000000FFFC001FFF000000FFFC001FFF000000FFFC001FFF000000FFF
C001FFF000000FFFC001FFF000000FFFC001FFF000000FFF8001FFF000000FFF8001FFF000000F
FF8001FFF000001FFF0001FFF000001FFF0001FFF000001FFF0001FFF000003FFE0001FFF80000
3FFC0001FFFC00007FFC0001FFFF0000FFF80001FFFFC001FFF00001FFFFF80FFFE00001FFFFFF
FFFFC00001FFE7FFFFFF000001FFE1FFFFFE000001FFE07FFFF0000001FFE007FF80000001FFE0
000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FF
E0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001
FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE00000000000
01FFE0000000000001FFE0000000000001FFE0000000000003FFE00000000000FFFFE000000000
00FFFFE00000000000FFFFE00000000000FFFFE00000000000FFFFE00000000000FFFFE0000000
0000007FE00000000000>58 72 -3 0 66]98 dc[<00001FFF00000001FFFFE0000007FFFFF800
001FFFFFFE00007FFFFFFF0000FFFF80FF8001FFFC003FC003FFF0000FE007FFC00007F00FFFC0
0003F01FFF800003F81FFF000001F83FFF000001F83FFE000000007FFE000000007FFE00000000
7FFE000000007FFC00000000FFFC00000000FFFC00000000FFFC00000000FFFC00000000FFFC00
000000FFFC00000000FFFC00000000FFFC00000000FFFC00000000FFFC000000007FFC00000000
7FFC000000007FFC00007E007FFE0001FF803FFE0003FFC03FFE0003FFC01FFF0007FFE01FFF00
07FFE00FFF8007FFE007FF8007FFE003FFC007FFE001FFF007FFE000FFFC03FFC0007FFFFFFF80
001FFFFFFF000007FFFFFE000001FFFFF80000001FFF8000>45 46 -4 0 53]99 dc[<00003FF8
03FFFFC00003FFFF03FFFFC0000FFFFFE3FFFFC0003FFFFFF3FFFFC000FFFFFFFFFFFFC001FFFC
07FFFFFFC003FFE000FFFFF00007FFC0003FFFE0000FFF80001FFFE0000FFF00000FFFE0001FFF
000007FFE0001FFE000003FFE0003FFE000003FFE0003FFE000003FFE0007FFC000003FFE0007F
FC000003FFE0007FFC000003FFE000FFFC000003FFE000FFFC000003FFE000FFFC000003FFE000
FFFC000003FFE000FFFC000003FFE000FFFC000003FFE000FFFC000003FFE000FFFC000003FFE0
00FFFC000003FFE000FFFC000003FFE000FFFC000003FFE000FFFC000003FFE0007FFC000003FF
E0007FFC000003FFE0007FFE000003FFE0003FFE000003FFE0003FFE000003FFE0001FFE000003
FFE0001FFF000003FFE0000FFF800003FFE00007FF80000FFFE00003FFC0001FFFE00001FFF000
7FFFE00000FFFE03FFFFE000007FFFFFFFFFE000003FFFFFFDFFE000000FFFFFF1FFE0000001FF
FFC1FFE00000003FFC01FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000
000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE00000
00000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE000
0000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0
000000000003FFE00000000000FFFFE00000000000FFFFE00000000000FFFFE00000000000FFFF
E00000000000FFFFE00000000000FFFFE00000000000007FE000>58 72 -4 0 66]100 dc[<00
000FFF80000000FFFFF8000007FFFFFE00001FFFFFFF80003FFFFFFFE000FFFF807FF001FFF800
0FF803FFE00003FC07FFC00001FC0FFF800000FE1FFF800000FE1FFF0000007E3FFF0000003C3F
FE000000007FFE000000007FFE000000007FFC00000000FFFC00000000FFFC00000000FFFC0000
0000FFFC00000000FFFC00000000FFFFFFFFFFFCFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFEFF
FFFFFFFFFEFFFC00000FFEFFFC00000FFE7FFC00000FFE7FFC00000FFE7FFE00000FFC3FFE0000
1FFC3FFE00001FFC1FFF00001FF81FFF00003FF80FFF80003FF807FF80007FF003FFC000FFE001
FFE001FFC000FFFC0FFF80007FFFFFFF00001FFFFFFE000007FFFFF8000001FFFFE00000001FFE
0000>47 46 -3 0 54]101 dc[<00007FFFE00000000FFFFFFF0000007FFFFFFFE00001FFFFFF
FFF80003FFFFFFFFFC000FFFF000FFFF001FFF00000FFF803FFC000003FFC07FF8000001FFE07F
F0000000FFE0FFE00000007FF0FFC00000003FF0FFC00000003FF0FFC00000003FF0FFC0000000
3FF0FFC00000007FF07FE00000007FF07FF0000001FFF03FFC00001FFFE01FFFFFFFFFFFE00FFF
FFFFFFFFE003FFFFFFFFFFC000FFFFFFFFFFC001FFFFFFFFFF8001FFFFFFFFFF0003FFFFFFFFFE
0003FFFFFFFFF80007FFFFFFFFF00007FFFFFFFF800007FFFFFFF8000007FC000000000007F800
0000000007F0000000000007E0000000000007E0000000000007E0000000000007E07FF8000000
03E7FFFF80000003FFFFFFE0000001FFFFFFF8000000FFFFFFFC000001FFF03FFE000003FFC00F
FF000007FF0003FF800007FF0003FF80000FFF0003FFC0000FFE0001FFC0001FFE0001FFE0001F
FE0001FFE0001FFE0001FFE0001FFE0001FFE0001FFE0001FFE0001FFE0001FFE0001FFE0001FF
E0001FFE0001FFE0001FFE0001FFE0000FFE0001FFC7E00FFF0003FFCFF007FF0003FF8FF007FF
0003FF9FF803FFC00FFF1FF801FFF03FFFDFF800FFFFFFFFFFF8007FFFFFFFFFF0001FFFFFE7FF
F00007FFFF81FFE000007FF8003F80>53 67 -3 21 59]103 dc[ FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE001FFF0
0001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FF
F00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001
FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF000
01FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF0
0001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF80001FF
F00001FFF80001FFF00001FFF80001FFF00001FFFC0001FFF00001FFFC0001FFF00001FFFE0001
FFF00001FFFF0001FFF00001FFFF8003FFE00001FFEFC003FFE00001FFE7F007FFE00001FFE3FE
0FFFC00001FFE1FFFFFF800001FFE0FFFFFF000001FFE03FFFFE000001FFE00FFFF8000001FFE0
01FFC0000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FF
E0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001
FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE00000000000
01FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000003FFE000000000
00FFFFE00000000000FFFFE00000000000FFFFE00000000000FFFFE00000000000FFFFE0000000
0000FFFFE00000000000007FE00000000000>59 72 -4 0 66]104 dc[ FFFF80FFFFFF80FFFFFF80FFFFFF8001FFE00001FFE00001FFE00001FFE00001FFE00001FFE000
01FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE0
0001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FF
E00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00003FFE000FFFFE000FFFFE000FF
FFE000FFFFE000FFFFE000FFFFE000003FE0000000000000000000000000000000000000000000
0000000000000000000000000000000000000000007E000001FF000007FFC0000FFFE0000FFFE0
001FFFF0001FFFF0001FFFF0001FFFF0001FFFF0001FFFF0001FFFF0000FFFE0000FFFE00007FF
C00001FF0000007E0000>25 73 -4 0 33]105 dc[ FFFFC0FFFFFFC001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE000
01FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE0
0001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FF
E00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001
FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE000
01FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE00001FFE0
0001FFE00003FFE000FFFFE000FFFFE000FFFFE000FFFFE000FFFFE000FFFFE000007FE000>26
72 -4 0 33]108 dc[ FFFFF03FFFFFF8FFFFFFE07FFFFFF03FFFFFF8FFFFFFE07FFFFFF03FFFFFF8FFFFFFE07FFFFFF0
3FFFFFF801FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC
0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FF
F00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000
FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800
007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC
0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FF
F00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000FFF800007FFC0001FFF00000
FFF800007FFC0001FFF00000FFF800007FFC0001FFF80000FFFC00007FFC0001FFF80000FFFC00
007FFC0001FFF80000FFFC00007FFC0001FFFC0000FFFE00007FFC0001FFFC0000FFFE00007FFC
0001FFFE0000FFFF00007FFC0001FFFF0000FFFF80007FFC0001FFFF8001FFFFC000FFF80003FF
EFC001FFF7E000FFF800FFFFE7F003FFF3F801FFF800FFFFE3FE07FFE1FF03FFF000FFFFE1FFFF
FFC0FFFFFFE000FFFFE07FFFFF803FFFFFC000FFFFE03FFFFF001FFFFF8000FFFFE00FFFFC0007
FFFE0000007FE001FFE00000FFF00000>93 46 -4 0 102]109 dc[ E0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE001FF
F00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001
FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF000
01FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF0
0001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FF
F00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF80001
FFF00001FFF80001FFF00001FFF80001FFF00001FFFC0001FFF00001FFFC0001FFF00001FFFE00
01FFF00001FFFF0001FFF00001FFFF8003FFE00003FFEFC003FFE000FFFFE7F007FFE000FFFFE3
FE0FFFC000FFFFE1FFFFFF8000FFFFE0FFFFFF0000FFFFE03FFFFE0000FFFFE00FFFF80000007F
E001FFC00000>59 46 -4 0 66]110 dc[<00000FFF0000000000FFFFF000000007FFFFFE0000
001FFFFFFF8000007FFFFFFFE00000FFFC03FFF00001FFE0007FF80003FFC0003FFC0007FF8000
1FFE000FFF00000FFF001FFF00000FFF801FFE000007FF803FFE000007FFC03FFE000007FFC07F
FC000003FFE07FFC000003FFE07FFC000003FFE07FFC000003FFE0FFFC000003FFF0FFFC000003
FFF0FFFC000003FFF0FFFC000003FFF0FFFC000003FFF0FFFC000003FFF0FFFC000003FFF0FFFC
000003FFF0FFFC000003FFF0FFFC000003FFF07FFC000003FFE07FFC000003FFE07FFC000003FF
E03FFC000003FFC03FFC000003FFC03FFE000007FFC01FFE000007FF800FFE000007FF000FFF00
000FFF0007FF80001FFE0003FFC0003FFC0001FFE0007FF80000FFFC03FFF000003FFFFFFFC000
001FFFFFFF80000007FFFFFE00000000FFFFF0000000000FFF000000>52 46 -3 0 59]111 dc[
0000FFFFFFE00000000001FFF0000000000001FFF0000000000001FFF0000000000001FFF00000
00000001FFF0000000000001FFF0000000000001FFF0000000000001FFF0000000000001FFF000
0000000001FFF0000000000001FFF0000000000001FFF0000000000001FFF0000000000001FFF0
000000000001FFF00FFE00000001FFF07FFFE0000001FFF1FFFFFC000001FFF7FFFFFF000001FF
FFFFFFFF800001FFFFF03FFFC00001FFFF8007FFE00001FFFF0003FFF00001FFFC0000FFF80001
FFF80000FFFC0001FFF800007FFE0001FFF000003FFE0001FFF000003FFF0001FFF000003FFF00
01FFF000001FFF8001FFF000001FFF8001FFF000001FFF8001FFF000001FFF8001FFF000000FFF
C001FFF000000FFFC001FFF000000FFFC001FFF000000FFFC001FFF000000FFFC001FFF000000F
FFC001FFF000000FFFC001FFF000000FFFC001FFF000000FFFC001FFF000000FFFC001FFF00000
0FFFC001FFF000001FFF8001FFF000001FFF8001FFF000001FFF8001FFF000001FFF0001FFF000
003FFF0001FFF000003FFF0001FFF000007FFE0001FFF800007FFC0001FFFC0000FFFC0001FFFF
0001FFF800FFFFFFC003FFF000FFFFFFF81FFFE000FFFFFFFFFFFFC000FFFFE7FFFFFF0000FFFF
E1FFFFFE0000FFFFE07FFFF00000007FE007FF800000>58 66 -3 20 66]112 dc[ 00FFFFFFF00000FFFFFFF00000FFFFFFF00000FFFFFFF00000FFFFFFF0000001FFE000000001FF
E000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE00000
0001FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001FF
E000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE00000
0001FFE000000001FFE000000001FFF000000001FFF000FC0001FFF003FF0001FFF007FF8001FF
F807FF8001FFF80FFFC001FFFC0FFFC001FFFC0FFFC001FFFE0FFFC003FFFF0FFFC0FFFFDF8FFF
C0FFFFDFE7FF80FFFFCFFFFF00FFFFC7FFFE00FFFFC3FFFC00FFFFC0FFF800007FC03FC000>42
46 -3 0 49]114 dc[ E0FFF0003FF0FFE0000FF0FF80000FF8FF800007F8FF000007FCFE000007FCFE000007FCFC0000
0FFCFC00000FFC7C00001FFC0000007FFC000007FFFC0000FFFFFC001FFFFFF8007FFFFFF801FF
FFFFF007FFFFFFE00FFFFFFFE01FFFFFFFC03FFFFFFF003FFFFFFE007FFFFFF8007FFFFFE000FF
FFFE0000FFFFC00000FFF8000000FFE0000000FFC00007E0FF800007E0FF800007E07F800007E0
7F80000FE07FC0000FE03FE0003FE01FFC01FFE00FFFFFFFE007FFFFFFE003FFFFFFE000FFFFF7
E0000FFF81E0>38 46 -4 0 47]115 dc[<00003FF0000001FFFC000007FFFE00000FFFFF0000
1FFFFF80003FFF1FC0007FFC0FE0007FFC07E000FFF807F000FFF803F000FFF803F000FFF803F0
00FFF803F000FFF803F000FFF803F000FFF803F000FFF803F000FFF803F000FFF8000000FFF800
0000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8
000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FFF8000000FF
F8000000FFF8000000FFF8000000FFF8000000FFF80000FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FF
FFFFFFC0FFFFFFFFC00FFFFFFFC003FFF8000001FFF80000007FF80000003FF80000003FF80000
001FF80000000FF80000000FF800000007F800000007F800000007F800000003F800000003F800
000003F800000001F800000001F800000001F800000001F800000001F800000001F80000>36 66
-2 0 46]116 dc[<00007FFC00FFFFE00003FFFF80FFFFE0000FFFFFE0FFFFE0001FFFFFF0FFFF
E0003FFFFFFCFFFFE0007FFE01FEFFFFE000FFF8007FFFF80000FFF0001FFFF00001FFF0000FFF
F00001FFF00007FFF00001FFF00007FFF00001FFF00003FFF00001FFF00003FFF00001FFF00001
FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF000
01FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF0
0001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FF
F00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001
FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF00001FFF000
03FFF00003FFF000FFFFF000FFFFF000FFFFF000FFFFF000FFFFF000FFFFF000FFFFF000FFFFF0
00FFFFF000FFFFF000FFFFF000FFFFF000003FF000003FF000>59 46 -4 0 66]117 dc[<0000
007E000000000000FF000000000000FF000000000001FF800000000001FF800000000003FFC000
00000003FFC00000000007FFE00000000007FFE0000000000FFFF0000000000FFFF0000000000F
FFF0000000001FFFF8000000001FFFF8000000003FFFFC000000003FFEFC000000007FFEFE0000
00007FFC7E00000000FFFC7F00000000FFFC7F00000001FFF83F80000001FFF83F80000001FFF0
1F80000003FFF01FC0000003FFE00FC0000007FFE00FE0000007FFC007E000000FFFC007F00000
0FFFC003F000001FFF8003F800001FFF8003F800001FFF0001F800003FFF0001FC00003FFE0000
FC00007FFE0000FE00007FFC00007E0000FFFC00007F0000FFF800003F0001FFF800003F8001FF
F800003F80FFFFFFC003FFFFFFFFFFC003FFFFFFFFFFC003FFFFFFFFFFC003FFFFFFFFFFC003FF
FFFFFFFFC003FFFF>56 46 -3 0 63]118 dc[ 007FFFFFC0FFFFFC007FFFFFC0FFFFFC007FFFFFC0FFFFFC007FFFFFC0003FC0000FFF8000001F
E0001FFF8000000FF0003FFF00000007F0007FFE00000007F800FFFC00000003FC00FFF8000000
01FE01FFF800000000FF03FFF0000000007F87FFE0000000003FCFFFC0000000001FCFFF800000
00001FFFFF80000000000FFFFF000000000007FFFE000000000003FFFC000000000001FFF80000
00000001FFF8000000000003FFF0000000000007FFE000000000000FFFC000000000000FFFE000
000000001FFFF000000000003FFFF800000000007FFFF80000000000FFFFFC0000000000FFF9FE
0000000001FFF8FF0000000003FFF07F8000000007FFE03FC00000000FFFC01FE00000000FFF80
0FE00000001FFF800FF00000003FFF0007F80000007FFE0003FC00007FFFFFC03FFFFF007FFFFF
C03FFFFF007FFFFFC03FFFFF007FFFFFC03FFFFF007FFFFFC03FFFFF007FFFFFC03FFFFF00>58
46 -2 0 63]120 dc[<00FE00000000000007FFC000000000000FFFF000000000003FFFFC0000
0000003FFFFE00000000007F81FF00000000007E007F8000000000FE003FC000000000FC000FE0
00000000FFF80FE000000000FFF807F000000000FFF803F0000000007FF003F8000000007FF001
F8000000003FE001FC000000000F8000FC00000000000000FE000000000000007E000000000000
007F000000000000007F000000000000007F800000000000007F800000000000007F8000000000
0000FFC0000000000000FFC0000000000001FFE0000000000001FFE0000000000003FFF0000000
000003FFF0000000000007FFF8000000000007FFF8000000000007FFF800000000000FFFFC0000
0000000FFFFC00000000001FFFFE00000000001FFF7E00000000003FFF7F00000000003FFE3F00
000000007FFE3F80000000007FFE3F8000000000FFFC1FC000000000FFFC1FC000000000FFF80F
C000000001FFF80FE000000001FFF007E000000003FFF007F000000003FFE003F000000007FFE0
03F800000007FFE001F80000000FFFC001FC0000000FFFC001FC0000000FFF8000FC0000001FFF
8000FE0000001FFF00007E0000003FFF00007F0000003FFE00003F0000007FFE00003F8000007F
FC00001F800000FFFC00001FC00000FFFC00001FC0007FFFFFE001FFFF807FFFFFE001FFFF807F
FFFFE001FFFF807FFFFFE001FFFF807FFFFFE001FFFF807FFFFFE001FFFF80>57 66 -2 20 63]
121 dc dfend /fc df[<7FFFFFFFC07FFFFFFFC07FFFFFFFC07FFFFFFFC07FFFFFFFC0000FFF
0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000F
FF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF000000
0FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000
000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF00
00000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF
0000FFEFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000001FFF00000003FF00000000
7F000000003F000000000F0000>34 55 -7 0 49]49 dc[ FFFFFFFFF0FFFFFFFFF07FFFFFFFF03FFFFFFFF01FFFFFFFF00FFFFFFFF007FFFFFFF003FFFFFF
F801FFFFFFF801F80001F800FC0000F8007E0000F8003F8000F8001FC000F8000FE0007C0007F0
007C0003F8007C0001FE00000000FF000000007F800000003FE00000001FF00000001FF8000000
0FFE00000007FF00000007FF80000003FFC0000001FFE0000001FFF0000000FFF0000000FFF800
0000FFF80000007FFC0000007FFC1FC0007FFC3FE0007FFC7FF0007FFCFFF8007FFCFFF8007FFC
FFF8007FFCFFF800FFF8FFF800FFF8FFF801FFF8FFF003FFF07FF007FFF07FE00FFFE03FE07FFF
C01FFFFFFF800FFFFFFE0003FFFFFC0000FFFFE000000FFF0000>38 55 -5 0 49]50 dc[<0007
FF8000007FFFF80001FFFFFE0007FFFFFF800FFFFFFFC01FFC07FFE03FE001FFF07FF000FFF87F
F8007FFCFFFC007FFCFFFC007FFEFFFC003FFEFFFC003FFFFFFC003FFFFFFC003FFFFFFC003FFF
7FF8003FFF3FF0003FFF1FE0003FFF0300003FFF0000003FFE0000003FFE0000007FFE0000007F
FC0000007FF8000000FFF0000001FFE0000007FFC0000FFFFF00000FFFF800000FFFE000000FFF
F80000003FFE0000000FFF00000007FF80000003FFC0004001FFE003F801FFF007FC01FFF00FFE
00FFF01FFF00FFF81FFF00FFF81FFF00FFF81FFF00FFF81FFF00FFF81FFF00FFF81FFE00FFF80F
FC00FFF00FF801FFF007F801FFE003FE07FFC001FFFFFF80007FFFFE00001FFFF8000003FF8000
>40 55 -4 0 49]51 dc[<0007FFFFFFC00007FFFFFFC00007FFFFFFC00007FFFFFFC00007FFFF
FFC0000001FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE00000
0001FFE000000001FFE000000001FFE000FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFF
FFC0FFFFFFFFFFC0FC0000FFE0007E0000FFE0003F0000FFE0001F8000FFE0000F8000FFE0000F
C000FFE00007E000FFE00003F000FFE00001F800FFE00000F800FFE000007C00FFE000007E00FF
E000003F00FFE000001F80FFE000000F80FFE0000007C0FFE0000007E0FFE0000003F0FFE00000
01F8FFE0000000FCFFE00000007CFFE00000003EFFE00000003FFFE00000001FFFE00000000FFF
E000000007FFE000000003FFE000000003FFE000000001FFE000000000FFE0000000007FE00000
00003FE0000000003FE0000000001FE0000000000FE00000000007E000>42 55 -3 0 49]52 dc
[<001FFC000000FFFFC00003FFFFF80007FFFFFC000FFFFFFF001FF81FFF803FC003FFC07F8001
FFE07FE000FFF07FF000FFF0FFF000FFF8FFF8007FF8FFF8007FF8FFF8007FFCFFF8007FFCFFF0
007FFC7FF0007FFC7FE0007FFC3FC0007FFC0700007FFC0000007FFC0000007FFC0000007FF800
00007FF80000007FF80700007FF00F8000FFE00FC000FFE00FF001FFC00FFE07FF800FFFFFFF00
0FFFFFFC000F9FFFF0000F83FF80000F800000000F800000000F800000000F800000000F800000
000F800000000F800000000FFFF000000FFFFE00000FFFFF80000FFFFFE0000FFFFFF0000FFFFF
FC000FFFFFFE000FFFFFFF000FFFFFFF000FFFFFFF800FFFFFFFC00FFC00FFC00FC00007C00E00
0001C0>38 55 -5 0 49]53 dc[<0001FFC000000FFFFC00003FFFFF0000FFFFFF8001FFFFFFC0
03FFC1FFE007FF007FF007FE003FF80FFC001FFC1FFC001FFC1FF8001FFE3FF8001FFE3FF8001F
FE3FF8001FFF7FF8001FFF7FF8001FFF7FF8001FFF7FF8001FFF7FF8001FFFFFF8001FFFFFF800
1FFFFFF8001FFFFFF8001FFFFFFC001FFEFFFC001FFEFFFC001FFEFFFE001FFCFFFE001FFCFFFF
003FF8FFFF807FF0FFFFC0FFE0FFFBFFFFC0FFF9FFFF00FFF8FFFE007FF83FF0007FF80000007F
F80000007FF8000FC03FF8001FE03FFC003FF03FFC007FF81FFC007FF81FFC007FF80FFC007FF8
0FFE007FF807FE007FF803FF003FF801FF801FF000FFC00FF0007FF003F0003FFC0FE0000FFFFF
C00003FFFF800000FFFF0000000FFC00>40 55 -4 0 49]54 dc[<0003F00000000007F8000000
000FFC000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE
000000001FFE000000001FFE000000001FFE000000001FFE000000000FFE000000000FFE000000
000FFE000000000FFE0000000007FE0000000007FE0000000007FE0000000003FF0000000003FF
0000000003FF0000000001FF0000000001FF0000000000FF0000000000FF00000000007F800000
00007F80000000003F80000000001FC0000000001FC0000000000FC00000000007E00000000003
F00000F80003F00000F80001F80000F80000FC00007C00007E00007C00003F00007C00001F8000
7E00000FC0007E000007C0007FFFFFFFE0007FFFFFFFF0003FFFFFFFF8003FFFFFFFFC003FFFFF
FFFE003FFFFFFFFF003FFFFFFFFF803FFFFFFFFFC03FFFFFFFFFC01FFFFFFFFFC01FFFFFFFFFC0
1FFFFFFFFFC01FF0000000001F80000000001F0000000000>42 58 -5 0 49]55 dc[ 07FFFFFFF0FFFFFC0007FFFFFFF0FFFFFC0007FFFFFFF0FFFFFC0007FFFFFFF0FFFFFC0007FFFF
FFF0007E00000007FFE000003E00000007FFC000003F0000000FFFC000001F0000000FFF800000
1F0000001FFF8000001F8000001FFF8000000F8000001FFF0000000FC000003FFF00000007C000
003FFE00000007E000007FFE00000003FFFFFFFFFC00000003FFFFFFFFFC00000003FFFFFFFFFC
00000001FFFFFFFFF800000001FFFFFFFFF800000000F80001FFF000000000F80003FFF0000000
00FC0003FFF0000000007C0003FFE0000000007E0007FFE0000000003E0007FFC0000000003E00
0FFFC0000000003F000FFFC0000000001F000FFF80000000001F801FFF80000000000F801FFF00
000000000F803FFF00000000000FC03FFF000000000007C03FFE000000000007E07FFE00000000
0003E07FFC000000000003F0FFFC000000000001F0FFF8000000000001F0FFF8000000000001F9
FFF8000000000000F9FFF0000000000000FFFFF00000000000007FFFE00000000000007FFFE000
00000000007FFFE00000000000003FFFC00000000000003FFFC00000000000001FFF8000000000
00001FFF800000000000001FFF800000000000000FFF000000000000000FFF0000000000000007
FE0000000000000007FE0000000000000007FE0000000000000003FC0000000000000003FC0000
000000000001F80000000000000001F800000000>68 59 -3 0 75]65 dc[ FFFFFFFFFFFF8000FFFFFFFFFFFFE000FFFFFFFFFFFFF800FFFFFFFFFFFFFC00007FF80001FFFE
00007FF800003FFF00007FF800001FFF80007FF800000FFFC0007FF8000007FFC0007FF8000007
FFE0007FF8000003FFE0007FF8000003FFF0007FF8000003FFF0007FF8000003FFF0007FF80000
03FFF0007FF8000003FFF0007FF8000003FFF0007FF8000003FFF0007FF8000003FFF0007FF800
0003FFE0007FF8000003FFE0007FF8000007FFC0007FF8000007FFC0007FF8000007FF80007FF8
00000FFF00007FF800001FFE00007FF800003FFC00007FF80001FFF000007FFFFFFFFFC000007F
FFFFFFFF0000007FFFFFFFFE0000007FFFFFFFFF8000007FF80003FFE000007FF80000FFF00000
7FF800007FF800007FF800003FFC00007FF800003FFE00007FF800001FFF00007FF800001FFF00
007FF800000FFF00007FF800000FFF80007FF800000FFF80007FF800000FFF80007FF800000FFF
80007FF800000FFF80007FF800000FFF80007FF800000FFF00007FF800001FFF00007FF800001F
FF00007FF800003FFE00007FF800003FFE00007FF80000FFFC00007FF80001FFF800FFFFFFFFFF
FFF000FFFFFFFFFFFFC000FFFFFFFFFFFF8000FFFFFFFFFFFC0000FFFFFFFFFFC00000>60 59
-4 0 70]66 dc[<0000001FFF800000000003FFFFF8000000001FFFFFFE00000000FFFFFFFF80
000003FFFFFFFFE0000007FFFF007FF000001FFFF00007F800003FFF800001FC00007FFE000000
FE0000FFFC0000003F0001FFF00000001F8003FFE00000001FC007FFC00000000FC007FFC00000
0007E00FFF8000000007E01FFF8000000003E01FFF0000000003F03FFF0000000003F03FFE0000
000001F03FFE0000000001F07FFE0000000001F07FFE0000000001F07FFC0000000000007FFC00
0000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC
000000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC000000000000FF
FC000000000000FFFC0000000000007FFC0000000000007FFC0000000001F07FFE0000000001F0
7FFE0000000001F03FFE0000000003F03FFE0000000003F03FFF0000000003F01FFF0000000007
F01FFF8000000007F00FFF800000000FF007FFC00000000FF007FFC00000001FF003FFE0000000
1FF001FFF00000003FF000FFFC0000007FF0007FFE000001FFF0003FFF800003FFF0001FFFF000
0FFFF00007FFFF007FFFF00003FFFFFFFFCFF00000FFFFFFFF07F000001FFFFFFC01F0000003FF
FFF000F00000001FFF000070>60 59 -5 0 71]67 dc[ 0000FFFFFFFFFFFF800000FFFFFFFFFFFFF00000FFFFFFFFFFFFF80000007FFC0003FFFE000000
7FFC00003FFF0000007FFC00000FFF8000007FFC000003FFC000007FFC000001FFE000007FFC00
0000FFF000007FFC0000007FF800007FFC0000007FFC00007FFC0000003FFC00007FFC0000003F
FE00007FFC0000001FFE00007FFC0000001FFF00007FFC0000000FFF00007FFC0000000FFF0000
7FFC0000000FFF80007FFC0000000FFF80007FFC0000000FFF80007FFC0000000FFF80007FFC00
00000FFFC0007FFC0000000FFFC0007FFC0000000FFFC0007FFC0000000FFFC0007FFC0000000F
FFC0007FFC0000000FFFC0007FFC0000000FFFC0007FFC0000000FFFC0007FFC0000000FFFC000
7FFC0000000FFFC0007FFC0000000FFFC0007FFC0000000FFFC0007FFC0000000FFF80007FFC00
00000FFF80007FFC0000000FFF80007FFC0000000FFF80007FFC0000000FFF00007FFC0000000F
FF00007FFC0000001FFF00007FFC0000001FFE00007FFC0000001FFE00007FFC0000003FFC0000
7FFC0000003FFC00007FFC0000007FF800007FFC000000FFF800007FFC000000FFF000007FFC00
0001FFE000007FFC000007FFC000007FFC00000FFF8000007FFC00007FFF0000007FFC0003FFFE
0000FFFFFFFFFFFFF80000FFFFFFFFFFFFE00000FFFFFFFFFFFF800000FFFFFFFFFFFC000000FF
FFFFFFFFC0000000>66 59 -4 0 76]68 dc[ FFFFF800FFFFFFFFFFFFFC00FFFFFFFFFFFFFC00007FFC0001FFFC00007FFC00003FFC00007FFC
00000FFC00007FFC000003FC00007FFC000001FE00007FFC000001FE00007FFC000000FE00007F
FC0000007E00007FFC0000007E00007FFC0000003E00007FFC0000003E00007FFC0000003F0000
7FFC0000001F00007FFC007C001F00007FFC007C001F00007FFC007C001F00007FFC007C001F00
007FFC007C000F80007FFC007C000F80007FFC00FC000F80007FFC00FC000000007FFC01FC0000
00007FFC07FC000000007FFFFFFC000000007FFFFFFC000000007FFFFFFC000000007FFFFFFC00
0000007FFFFFFC000000007FFC07FC000000007FFC01FC000000007FFC00FC000000007FFC00FC
000000007FFC007C003E00007FFC007C003E00007FFC007C003E00007FFC007C007E00007FFC00
7C007C00007FFC007C007C00007FFC0000007C00007FFC0000007C00007FFC000000FC00007FFC
000000FC00007FFC000001FC00007FFC000001F800007FFC000003F800007FFC000007F800007F
FC00000FF800007FFC00003FF800007FFC0001FFF800FFFFFFFFFFFFF800FFFFFFFFFFFFF000FF
FFFFFFFFFFF000FFFFFFFFFFFFF000FFFFFFFFFFFFF000>57 59 -4 0 65]69 dc[ FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF80003FFE0000003FFE0000003FFE0000003FFE00
00003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE
0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003F
FE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE000000
3FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000
003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE00
00003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000FFFFFFFF80FFFFFF
FF80FFFFFFFF80FFFFFFFF80FFFFFFFF80>33 59 -2 0 38]73 dc[ FE00000003E000FFFFFE00000007E000FFFFFE0000000FE000FFFFFE0000001FE000007C000000
003FE000007C000000003FE000007C000000007FE000007C00000000FFE000007C00000001FFE0
00007C00000003FFE000007C00000003FFE000007C00000007FFE000007C0000000FFFE000007C
0000001FFFE000007C0000003FFFE000007C0000003FFFE000007C0000007FFFE000007C000000
FFFFE000007C000001FFFFE000007C000003FFFBE000007C000003FFF3E000007C000007FFF3E0
00007C00000FFFE3E000007C00001FFFC3E000007C00003FFF83E000007C00003FFF03E000007C
00007FFE03E000007C0000FFFE03E000007C0001FFFC03E000007C0003FFF803E000007C0007FF
F003E000007C0007FFE003E000007C000FFFE003E000007C001FFFC003E000007C003FFF8003E0
00007C007FFF0003E000007C007FFE0003E000007C00FFFE0003E000007C01FFFC0003E000007C
03FFF80003E000007C07FFF00003E000007C07FFE00003E000007C0FFFE00003E000007C1FFFC0
0003E000007C3FFF800003E000007C7FFF000003E000007C7FFE000003E000007CFFFE000003E0
00007DFFFC000003E000007FFFF8000003E000007FFFF0000003E000007FFFE0000003E000007F
FFE0000003E000FFFFFFC00007FFFFF0FFFFFF800007FFFFF0FFFFFF000007FFFFF0FFFFFE0000
07FFFFF0FFFFFC000007FFFFF0>68 59 -4 0 77]78 dc[ 00FFFFFFFE00000000FFFFFFFE00000000FFFFFFFE00000000007FFC0000000000007FFC000000
0000007FFC0000000000007FFC0000000000007FFC0000000000007FFC0000000000007FFC0000
000000007FFC0000000000007FFC0000000000007FFC0000000000007FFC0000000000007FFC00
00000000007FFC0000000000007FFC0000000000007FFC0000000000007FFC0000000000007FFC
0000000000007FFC0000000000007FFC0000000000007FFC0000000000007FFC0000000000007F
FFFFFFF00000007FFFFFFFFE0000007FFFFFFFFF8000007FFFFFFFFFE000007FFC0007FFF00000
7FFC0000FFF800007FFC00007FFC00007FFC00003FFE00007FFC00001FFF00007FFC00001FFF00
007FFC00000FFF80007FFC00000FFF80007FFC00000FFFC0007FFC00000FFFC0007FFC00000FFF
C0007FFC00000FFFC0007FFC00000FFFC0007FFC00000FFFC0007FFC00000FFFC0007FFC00000F
FFC0007FFC00000FFF80007FFC00000FFF80007FFC00001FFF80007FFC00001FFF00007FFC0000
3FFE00007FFC00003FFE00007FFC0000FFFC00007FFC0007FFF800FFFFFFFFFFFFE000FFFFFFFF
FFFFC000FFFFFFFFFFFF0000FFFFFFFFFFF80000FFFFFFFFFF800000>58 59 -4 0 68]80 dc[<
FFFFFF8003FFFFFFF0FFFFFF8003FFFFFFF0FFFFFF8003FFFFFFF0FFFFFF8003FFFFFFF0FFFFFF
8003FFFFFFF0001F8000000FFFE000000FC000001FFFC0000007E000001FFF80000007F000003F
FF80000003F000007FFF00000001F800007FFE00000000FC0000FFFE00000000FE0001FFFC0000
00007E0001FFF8000000003F0003FFF8000000001F8007FFF0000000001F800FFFE0000000000F
C00FFFC00000000007E01FFFC00000000007F03FFF800000000003F03FFF000000000001F87FFF
000000000000FCFFFE000000000000FEFFFC0000000000007FFFFC0000000000003FFFF8000000
0000001FFFF00000000000001FFFE00000000000000FFFE00000000000001FFFC0000000000000
1FFF800000000000003FFF800000000000007FFF000000000000007FFE00000000000000FFFE00
000000000001FFFE00000000000003FFFF00000000000003FFFF80000000000007FFFFC0000000
00000FFFEFC000000000000FFFC7E000000000001FFFC3F000000000003FFF83F800000000003F
FF01F800000000007FFF00FC0000000000FFFE007E0000000001FFFC007F0000000001FFF8003F
0000000003FFF8001F8000000007FFF0000FC000000007FFE0000FC00000000FFFE00007E00000
001FFFC00003F00000001FFF800003F800007FFFFFFE01FFFFFF007FFFFFFE01FFFFFF007FFFFF
FE01FFFFFF007FFFFFFE01FFFFFF007FFFFFFE01FFFFFF00>68 59 -3 0 75]88 dc[<007FE001
FFF003FFFC07FFF00FFFFF0FFFF01FFFFF9FFFF03FFE0FDFFFF07FF803FFFC007FF000FFF800FF
F0007FF800FFE0007FF800FFE0003FF800FFE0003FF800FFE0003FF800FFE0003FF8007FF0003F
F8007FF8003FF8003FFC003FF8001FFE003FF8000FFF803FF80007FFF03FF80001FFFFFFF80000
7FFFFFF8000007FFFFF80000001FFFF8000000003FF80001E0003FF80007F8003FF8000FFC003F
F8001FFE003FF8001FFE003FF8001FFE007FF0001FFE007FF0001FFE00FFE0001FFE01FFE0000F
FC07FFC00007FFFFFF000003FFFFFE000001FFFFF80000001FFF800000>44 38 -3 0 48]97 dc
[<0000FFE000000FFFFC00003FFFFF0000FFFFFFC001FFF01FE003FF8007F007FF0001F80FFE00
00F81FFC0000FC3FF800007C3FF800007C7FF80000007FF00000007FF0000000FFF0000000FFF0
000000FFF0000000FFF0000000FFF0000000FFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFF
F00007FC7FF00007FC7FF0000FFC7FF0000FF83FF8000FF83FF8000FF81FF8001FF00FFC001FF0
0FFE003FE007FF007FC003FFC1FF8000FFFFFF00007FFFFE00001FFFF8000001FFC000>38 38
-3 0 45]101 dc[ 1FFFFFC003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF000
03FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF8000
7FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003
FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FF80007FF00003FFC0007F
F00003FFC0007FF00003FFE0007FF00003FFE0007FF00003FFF0007FF00003FFF800FFE00003FF
BE00FFE00003FF9F83FFC00003FF8FFFFFC00003FF87FFFF800003FF81FFFE000003FF803FF800
0003FF800000000003FF800000000003FF800000000003FF800000000003FF800000000003FF80
0000000003FF800000000003FF800000000003FF800000000003FF800000000003FF8000000000
03FF800000000003FF800000000003FF800000000003FF800000000007FF8000000000FFFF8000
000000FFFF8000000000FFFF8000000000FFFF8000000000FFFF8000000000007F8000000000>
50 60 -3 0 55]104 dc[ FFFFFE0000000003FF800000000003FF800000000003FF800000000003FF800000000003FF8000
00000003FF800000000003FF800000000003FF800000000003FF800000000003FF800000000003
FF800000000003FF800000000003FF80FFC0000003FF8FFFFC000003FFBFFFFF000003FFFFFFFF
800003FFFF07FFE00003FFF801FFF00003FFF0007FF80003FFC0003FFC0003FF80003FFC0003FF
80001FFE0003FF80001FFE0003FF80000FFF0003FF80000FFF0003FF80000FFF0003FF800007FF
8003FF800007FF8003FF800007FF8003FF800007FF8003FF800007FF8003FF800007FF8003FF80
0007FF8003FF800007FF8003FF800007FF8003FF800007FF8003FF80000FFF0003FF80000FFF00
03FF80000FFF0003FF80000FFE0003FF80001FFE0003FF80001FFC0003FFC0003FFC0003FFE000
7FF800FFFFF800FFF000FFFFFF03FFE000FFFFFFFFFFC000FFFFBFFFFF8000FFFF8FFFFC000000
7F80FFE00000>49 55 -2 17 55]112 dc[ FFFF000003FF80000003FF80000003FF80000003FF80000003FF80000003FF80000003FF800000
03FF80000003FF80000003FF80000003FF80000003FF80000003FF80000003FF80000003FF8000
0003FF80000003FF80000003FF80000003FF80000003FFC0000003FFC00F8003FFC01FC003FFC0
3FE003FFE07FF003FFE07FF003FFF07FF007FFF87FF0FFFF7C7FF0FFFF7E3FE0FFFF3FFFE0FFFF
1FFFC0FFFF0FFF0000FF03FC00>36 38 -2 0 41]114 dc[<0003FE00001FFF80007FFFE000FF
FFF000FFE3F001FFC0F801FFC0F803FF807C03FF807C03FF807C03FF807C03FF807C03FF807C03
FF807C03FF807C03FF800003FF800003FF800003FF800003FF800003FF800003FF800003FF8000
03FF800003FF800003FF800003FF800003FF800003FF800003FF800003FF800003FF800003FF80
00FFFFFFF0FFFFFFF0FFFFFFF0FFFFFFF01FFFFFF007FF800003FF800001FF800000FF8000007F
8000007F8000003F8000003F8000001F8000001F8000001F8000001F8000000F8000000F800000
0F8000000F8000000F8000>30 55 -2 0 38]116 dc dfend /fd df[<7FFF1FFFC07FFF1FFFC0
7FFF1FFFC07FFF1FFFC007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC
0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803
FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC00FFFFFFFC00FFFFFFFC00FFFF
FFFC00FFFFFFFC0007F800000007F800000007F800000007F801F00007F803F80007F807FC0007
F807FC0007F807FC0007FC07FC0003FC07FC0001FF03F80000FFC1F800007FFFF000000FFFE000
0001FF8000>34 42 -1 0 38]12 dc[<38003C003E001F000F000780038003C001C001C001E000
E03FE07FE0FFE0FFE0FFE0FFE0FFC0FFC07F803E00>11 22 -4 12 19]44 dc[<1E007F807F80
FFC0FFC0FFC0FFC07F807F801E00>10 10 -4 0 19]46 dc[<60000000F0000000F8000000F800
0000780000007C0000007C0000003C0000003E0000003E0000001F0000001F0000000F0000000F
8000000F8000000780000007C0000007C0000003E0000003E0000001E0000001F0000001F00000
00F0000000F8000000F80000007C0000007C0000003C0000003E0000003E0000001E0000001F00
00001F0000000F8000000F8000000780000007C0000007C0000003C0000003E0000003E0000001
F0000001F0000000F0000000F8000000F8000000780000007C0000007C0000003E0000003E0000
001E0000001F0000001F0000000F0000000F8000000F800000078000000300>25 60 -4 15 34]
47 dc[<7FFFFE7FFFFE7FFFFE7FFFFE00FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
0000FF0000FF0000FF0000FF0000FF0000FF00F8FF00FFFF00FFFF00FFFF0007FF00007F00001F
00000700>23 39 -5 0 34]49 dc[ 1FFFFFC00FFFFFC0078003C003C003C001F003C000F801E0007C01E0007E01E0003F8000001FC0
00000FE0000007F8000003FC000001FE000001FF000000FF800000FFC000007FC000007FE00000
7FE03E007FE07F003FE0FF803FE0FF807FE0FF807FE0FF80FFC0FF80FFC07F01FF807F07FF803F
FFFF001FFFFC0007FFF80000FFC000>27 39 -3 0 34]50 dc[<01FF800007FFF0001FFFFC003F
FFFE007F03FF00FF00FF80FF80FFC0FF807FC0FF807FE0FF807FE0FF807FE07F007FE03E007FE0
00007FE000007FE000007FC000007FC00000FF800000FF000003FE0000FFF80000FFC00000FFF0
00000FFC000003FE000001FF000001FF001F81FF801FC0FF803FC0FF803FE0FF803FC0FF803FC0
FF803FC1FF001FC3FF000FFFFE0007FFFC0003FFF00000FFC000>27 39 -3 0 34]51 dc[<007F
FFF8007FFFF8007FFFF8007FFFF80000FF000000FF000000FF000000FF000000FF000000FF00FF
FFFFF8FFFFFFF8FFFFFFF8FFFFFFF8F8007F007C007F003C007F001E007F000F007F000F807F00
07807F0003C07F0001E07F0001F07F0000F87F0000787F00003C7F00001E7F00001F7F00000FFF
000007FF000003FF000001FF000001FF000000FF0000007F0000003F0000003F0000001F00>29
39 -2 0 34]52 dc[<00FF800007FFF0000FFFFC003FFFFE003F83FF007E00FF80FE007FC0FF00
7FC0FF003FC0FF003FE0FF003FE0FF003FE07E003FE01C003FE000003FE000003FE000003FC000
003FC01E007F801F007F801FC0FF001FFFFE001FFFF8001E7FC0001E0000001E0000001E000000
1E0000001E0000001FFE00001FFF80001FFFE0001FFFF0001FFFFC001FFFFC001FFFFE001FFFFF
001F803F001C000700>27 39 -3 0 34]53 dc[<007FC00001FFF80003FFFC0007FFFE000FF0FF
001FC07F803FC03FC03F803FC07F803FE07F803FE07F803FE07F803FE0FF803FE0FF803FE0FF80
3FE0FF803FE0FF803FE0FFC03FC0FFC03FC0FFE03F80FFE07F00FFFFFE00FFFFFC00FF9FF000FF
8200007F8000007F8000007F801E007FC03F003FC07F803FC07F801FE07F800FE07F800FF83F80
07FE1F0001FFFF0000FFFE00003FFC000007F800>27 39 -3 0 34]54 dc[<0078000000FC0000
01FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE000000FE000000FE00
0000FE000000FE0000007E0000007F0000007F0000003F0000003F0000001F0000001F8000000F
80000007C0000007C0000003E000F001F000F000F000F000F80078007C0078003E0078001F007F
FFFF807FFFFF807FFFFFC07FFFFFE03FFFFFF03FFFFFF03FFFFFF03FFFFFF03F0000003C000000
>28 41 -4 0 34]55 dc[<00FFC00003FFF8000FFFFE001FFFFF003FE07F807F801F807E000FC0
FE0007C0FC0007E0FC0007E0FC0007E0FC000FE0FC001FE0FE007FE07E00FFE07F03FFE03F0FFF
C01FFFFFC00FFFFF8007FFFF0003FFFE0007FFFC000FFFF8001FFFFC001FFFFE003FFE7F003FF8
3F003FF01F803FC01F803F801F803F001F803F001F801F003F801F803F000FE0FF000FFFFE0007
FFFC0001FFF800007FC000>27 39 -3 0 34]56 dc[<01FE000007FFC0000FFFE0001FFFF8001F
07FC003F81FE003FC0FF003FC07F003FC07F803FC07F801F803FC00F003FC000003FC000003FC0
00083FE001FF3FE007FFFFE00FFFFFE01FC0FFE03F80FFE07F807FE07F807FE0FF803FE0FF803F
E0FF803FE0FF803FE0FF803FE0FF803FC0FF803FC0FF803FC0FF803FC07F803F807F807F803FC0
7F001FE1FE000FFFFE0007FFFC0003FFF000007FC000>27 39 -3 0 34]57 dc[ FFFF003FFFFEFFFF003FFFFEFFFF003FFFFE01E00001FF0001F00003FF0000F00003FE0000F000
03FE0000F80007FE0000780007FC00007FFFFFFC00003FFFFFF800003FFFFFF800003FFFFFF800
001E001FF000001F003FF000000F003FE000000F003FE000000F807FE0000007807FC0000007C0
FFC0000003C0FF80000003C0FF80000003E1FF80000001E1FF00000001F3FF00000000F3FE0000
0000F3FE00000000FFFE000000007FFC000000007FFC000000003FF8000000003FF8000000003F
F8000000001FF0000000001FF0000000000FE0000000000FE0000000000FE00000000007C00000
000007C00000>47 41 -2 0 52]65 dc[ F80003FC001FFC0003FC0007FE0003FC0003FF0003FC0003FF0003FC0001FF8003FC0001FF8003
FC0001FF8003FC0001FF8003FC0001FF8003FC0001FF8003FC0001FF8003FC0001FF0003FC0003
FF0003FC0003FE0003FC0007FC0003FC001FF80003FFFFFFE00003FFFFFF000003FFFFFFC00003
FC003FF00003FC001FF80003FC000FF80003FC0007FC0003FC0007FC0003FC0003FE0003FC0003
FE0003FC0003FE0003FC0003FE0003FC0007FE0003FC0007FC0003FC0007FC0003FC000FF80003
FC001FF800FFFFFFFFF000FFFFFFFFC000FFFFFFFF8000FFFFFFFC0000>41 41 -3 0 49]66 dc
[<00007FF800000007FFFF0000001FFFFFC000007FFFFFF00000FFF807F80003FFC000FC0007FF
00007E000FFC00001F000FF800001F001FF800000F803FF000000F803FF0000007807FE0000007
807FE0000007807FE000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC0
00000000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC0000000
007FE0000007807FE0000007807FE0000007803FF000000F803FF000000F801FF800001F800FF8
00001F800FFC00003F8007FF00007F8003FFC001FF8000FFF807FF80007FFFFFFF80001FFFFF8F
800007FFFE078000007FF00380>41 41 -4 0 50]67 dc[ FFE000FFFFFFFFF80003FE001FFC0003FE0007FE0003FE0001FF0003FE0000FF8003FE00007FC0
03FE00003FC003FE00003FE003FE00003FE003FE00001FF003FE00001FF003FE00001FF003FE00
001FF803FE00001FF803FE00001FF803FE00001FF803FE00001FF803FE00001FF803FE00001FF8
03FE00001FF803FE00001FF803FE00001FF803FE00001FF003FE00001FF003FE00001FF003FE00
001FF003FE00003FE003FE00003FE003FE00007FC003FE00007FC003FE0000FF8003FE0001FF00
03FE0007FE0003FE003FFC00FFFFFFFFF800FFFFFFFFE000FFFFFFFF8000FFFFFFF80000>45 41
-3 0 53]68 dc[ FE0001F803FE0000F803FE0000F803FE00007C03FE00007C03FE00003C03FE03C03C03FE03C03C
03FE03C03C03FE03C01E03FE03C01E03FE07C01E03FE0FC00003FFFFC00003FFFFC00003FFFFC0
0003FFFFC00003FE0FC00003FE07C00003FE03C07803FE03C07803FE03C07803FE03C0F803FE03
C0F003FE0000F003FE0000F003FE0001F003FE0001F003FE0003F003FE0007F003FE003FF0FFFF
FFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0>39 41 -3 0 45]69 dc[ FFFFFE0000FFFFFE000003FE00000003FE00000003FE00000003FE00000003FE00000003FE0000
0003FE00000003FE00000003FE03C00003FE03C00003FE03C00003FE03C00003FE03C00003FE07
C00003FE0FC00003FFFFC00003FFFFC00003FFFFC00003FFFFC00003FE0FC00003FE07C00003FE
03C0F003FE03C0F003FE03C0F003FE03C1F003FE03C1E003FE0001E003FE0001E003FE0003E003
FE0003E003FE0007E003FE000FE003FE007FE0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0
>36 41 -3 0 43]70 dc[<00007FF807000007FFFE1F00001FFFFFBF00007FFFFFFF0000FFF80F
FF0003FFC003FF0007FF0001FF000FFC0001FF000FF80001FF001FF00001FF003FF00001FF003F
E00001FF007FE00001FF007FE003FFFFF87FE003FFFFF8FFC003FFFFF8FFC003FFFFF8FFC00000
0000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FF
C000000000FFC0000000007FE000000F007FE000000F007FE000000F003FE000001F003FF00000
1F001FF000003F000FF800003F000FFC00007F0007FF0000FF0003FFC003FF0000FFF80FFF0000
7FFFFFFF00001FFFFF9F000007FFFE0F0000007FF00700>45 41 -4 0 54]71 dc[ FEFFFFFEFFFFFE01FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF
0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF
0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF0001FF00FFFFFEFFFFFEFFFFFEFFFF
FE>23 41 -1 0 26]73 dc[ 007F8003FE003F8003FE001F8003FE000F8003FE000F8003FE00078003FE00078003FE00078003
FE0007C003FE0003C003FE0003C003FE0003C003FE0003C003FE00000003FE00000003FE000000
03FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE0000
0003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00
0000FFFFFE0000FFFFFE0000FFFFFE0000FFFFFE0000>34 41 -3 0 41]76 dc[ FFC0FFFF00FC03FFFFC0FFFF00FC03FFFFC0FFFF00FC03FFFFC003C001FE000FF00003C001FE00
0FF00003C003FF000FF00003C003FF000FF00003C007FF800FF00003C007FF800FF00003C007FF
800FF00003C00FF3C00FF00003C00FF3C00FF00003C01FE1E00FF00003C01FE1E00FF00003C01F
E1E00FF00003C03FC0F00FF00003C03FC0F00FF00003C07F80780FF00003C07F80780FF00003C0
7F80780FF00003C0FF003C0FF00003C0FF003C0FF00003C1FE001E0FF00003C1FE001E0FF00003
C3FC000F0FF00003C3FC000F0FF00003C3FC000F0FF00003C7F800078FF00003C7F800078FF000
03CFF00003CFF00003CFF00003CFF00003CFF00003CFF00003DFE00001EFF00003DFE00001EFF0
0003FFC00000FFF00003FFC00000FFF000FFFF8000007FFFC0FFFF8000007FFFC0FFFF8000007F
FFC0FFFF0000003FFFC0>58 41 -3 0 65]77 dc[ FFFF00001F8003C000003F8003C000007F8003C00000FF8003C00001FF8003C00001FF8003C000
03FF8003C00007FF8003C0000FFF8003C0001FFF8003C0001FFF8003C0003FF78003C0007FF780
03C000FFE78003C001FFC78003C001FF878003C003FF078003C007FF078003C00FFE078003C00F
FC078003C01FF8078003C03FF0078003C07FF0078003C0FFE0078003C0FFC0078003C1FF800780
03C3FF00078003C7FF00078003CFFE00078003CFFC00078003DFF800078003FFF000078003FFF0
00078003FFE0000780FFFFC001FFFEFFFF8001FFFEFFFF0001FFFEFFFF0001FFFE>47 41 -3 0
54]78 dc[<0000FFE00000000FFFFE0000003FFFFF800000FFC07FE00001FF001FF00003FE000F
F80007FC0007FC000FF80003FE001FF00001FF001FF00001FF003FE00000FF803FE00000FF807F
E00000FFC07FE00000FFC07FC000007FC0FFC000007FE0FFC000007FE0FFC000007FE0FFC00000
7FE0FFC000007FE0FFC000007FE0FFC000007FE0FFC000007FE0FFC000007FE0FFC000007FE07F
C000007FC07FC000007FC07FC000007FC07FE00000FFC03FE00000FF803FE00000FF801FF00001
FF001FF00001FF000FF80003FE0007F80003FC0003FC0007F80001FF001FF000007FC07FC00000
3FFFFF80000007FFFC00000000FFE00000>43 41 -4 0 52]79 dc[ FFF80000FFFFF8000003FE00000003FE00000003FE00000003FE00000003FE00000003FE000000
03FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE0000
0003FFFFFC0003FFFFFF8003FFFFFFE003FE007FF003FE001FF803FE000FF803FE0007FC03FE00
07FC03FE0007FE03FE0007FE03FE0007FE03FE0007FE03FE0007FE03FE0007FE03FE0007FC03FE
0007FC03FE000FFC03FE001FF803FE003FF0FFFFFFFFE0FFFFFFFFC0FFFFFFFF00FFFFFFF000>
39 41 -3 0 47]80 dc[ FC0F03FE003FF80F03FE003FF00F03FE003FF00003FE003FF00003FE003FF00003FE003FF00003
FE003FE00003FE003FE00003FE003FE00003FE003FE00003FE007FC00003FE007FC00003FE00FF
800003FE01FF000003FFFFFE000003FFFFFE000003FFFFFF800003FE007FE00003FE001FF00003
FE000FF80003FE0007FC0003FE0007FC0003FE0007FE0003FE0007FE0003FE0007FE0003FE0007
FE0003FE0007FE0003FE0007FC0003FE0007FC0003FE000FFC0003FE001FF80003FE007FF000FF
FFFFFFE000FFFFFFFF8000FFFFFFFE0000FFFFFFE00000>48 41 -3 0 52]82 dc[ FFFE00FFFFFF80FFFFFFC0FFF01FE0FF000FE0FE0007F0FC0007F0F80003F8F00003F8F00003F8
F00003F8F00007F8000007F800000FF800003FF80003FFF8003FFFF001FFFFF007FFFFE00FFFFF
C01FFFFFC03FFFFF807FFFFE007FFFF800FFFFC000FFF80000FFC00000FF0001E0FF0001E0FE00
01E0FE0003E0FE0003E07E0007E07F000FE03F801FE03FC0FFE01FFFFFE00FFFFFE003FFF1E000
FF80E0>29 41 -4 0 38]83 dc[<00FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE00000
007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC0
000000007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000
007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC0000000007FC0
0000F0007FC001E0F0007FC001E0F0007FC001E0F0007FC001E0F0007FC001E0F8007FC003E0F8
007FC003E0F8007FC003E07C007FC007C07C007FC007C07E007FC00FC07F807FC03FC07FFFFFFF
FFC07FFFFFFFFFC07FFFFFFFFFC07FFFFFFFFFC0>43 40 -2 0 48]84 dc[<00003FF800000001
FFFF00000007FFFFC000001FFFFFF000003FF807F800007FC001F80000FF80007C0000FF00003E
0001FF00001E0001FE00001E0003FE00001F0003FE00000F0003FE00000F0003FE00000F0003FE
00000F0003FE00000F0003FE00000F0003FE00000F0003FE00000F0003FE00000F0003FE00000F
0003FE00000F0003FE00000F0003FE00000F0003FE00000F0003FE00000F0003FE00000F0003FE
00000F0003FE00000F0003FE00000F0003FE00000F0003FE00000F0003FE00000F0003FE00000F
0003FE00000F0003FE00000F0003FE00000F00FFFFF803FFFCFFFFF803FFFCFFFFF803FFFCFFFF
F803FFFC>46 41 -3 0 53]85 dc[<000003E0000000000003E0000000000007F0000000000007
F000000000000FF800000000000FF800000000000FF800000000001FFC00000000001FFC000000
00003FFE00000000003FFE00000000007FFF00000000007FCF00000000007FCF0000000000FFC7
8000000000FF878000000001FF87C000000001FF03C000000003FF03E000000003FE01E0000000
03FE01E000000007FE00F000000007FC00F00000000FFC00F80000000FF800780000001FF8007C
0000001FF0003C0000001FF0003C0000003FF0003E0000003FE0001E0000007FE0001F0000007F
C0000F000000FFC0000F800000FF800007800000FF800007800001FF800007C00001FF000003C0
00FFFFF8007FFF80FFFFF8007FFF80FFFFF8007FFF80FFFFF8007FFF80>49 41 -1 0 52]86 dc
[<03FC0FFC0FFF1FFC3FFFFFFC7FC3FFFC7F81FFC0FF80FF80FF007F80FF007F80FF007F80FF80
7F807F807F807FC07F803FF87F801FFFFF8007FFFF8000FFFF800001FF8000007F801F807F803F
C07F803FC07F803FC0FF003FC0FF003FC3FE001FFFFC000FFFF00003FFC000>30 27 -2 0 33]
97 dc[<0F01FE00000F8FFFC0000FDFFFF0000FFE0FF8000FFC03FC000FF801FE000FF001FE00
0FF001FF000FF000FF000FF000FF800FF000FF800FF000FF800FF000FF800FF000FF800FF000FF
800FF000FF800FF000FF800FF000FF800FF000FF000FF000FF000FF001FE000FF001FE000FFC03
FC000FFF0FF8000FFFFFF0000FFFFFC0000FF1FF00000FF00000000FF00000000FF00000000FF0
0000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF0000000FF
F0000000FFF0000000FFF0000000FFF0000000>33 42 -2 0 38]98 dc[<003FF00001FFFC0007
FFFF000FFC1F801FF007C03FE007C03FC003C07FC000007FC00000FF800000FF800000FF800000
FF800000FF800000FF800000FF800000FF800000FF8000007F803F007FC07F803FC07F803FC07F
801FE07F800FF87F8007FFFF0001FFFE00003FF800>26 27 -2 0 31]99 dc[<007FC7FF8001FF
F7FF8007FFFFFF800FF87FFF801FE01FF8003FC00FF8003FC007F8007F8007F8007F8007F800FF
8007F800FF8007F800FF8007F800FF8007F800FF8007F800FF8007F800FF8007F800FF8007F800
FF8007F8007F8007F8007FC007F8003FC007F8003FC007F8001FE00FF8000FF83FF80007FFFFF8
0001FFFFF800003FC7F800000007F800000007F800000007F800000007F800000007F800000007
F800000007F800000007F800000007F800000007F800000007F80000007FF80000007FF8000000
7FF80000007FF800>33 42 -2 0 38]100 dc[<003FF00001FFFE0003FFFF800FFC0FC01FF003
C03FE003E03FC001E07FC000007F800000FF800000FF800000FF800000FF800000FFFFFFE0FFFF
FFE0FFFFFFE0FF800FE0FF800FE07F800FE07F801FC03FC01FC03FC03FC01FE03F800FF0FF0007
FFFE0001FFFC00003FE000>27 27 -2 0 32]101 dc[<7FFFC0007FFFC0007FFFC0007FFFC000
07F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F800
0007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80000FFFF
C000FFFFC000FFFFC000FFFFC00007F8000007F8000007F8000007F8000007F8000007F8000007
F83F0007F87F8007F87F8003FC7F8003FE7F8001FF7F80007FFF00003FFE000007FC00>25 42
-2 0 21]102 dc[<00FFF80007FFFF001FFFFFC03FE03FE07F800FF07E0003F0FE0003F8FC0001
F8FC0001F8FC0001F8FE0003F87F000FF83FFFFFF81FFFFFF00FFFFFF01FFFFFE03FFFFFC03FFF
FF003FFFF8003F0000003E0000003C0000003CFF80001FFFF0001FFFF8001FE3FC003FC1FE003F
80FE007F80FF007F80FF007F80FF007F80FF007F80FF007F80FF303F80FEFC3FC1FEFC1FE3FEFC
0FFFFFFC07FFFFF800FF83F0>30 40 -2 13 34]103 dc[ FFFF1FFF800FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8
000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF807
F8000FF807F8000FFC07F8000FFC07F8000FFE07F8000FFF8FF0000FF7FFE0000FF1FFC0000FF0
7F80000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000F
F00000000FF00000000FF00000000FF0000000FFF0000000FFF0000000FFF0000000FFF0000000
>33 42 -3 0 38]104 dc[ F00FF00FF00FF00FF00FF00FF00FF00FF00FF0FFF0FFF0FFF0FFF0000000000000000000000000
07C00FE01FF03FF03FF03FF03FF01FF00FE007C0>16 43 -2 0 19]105 dc[<0FF8003FFF007F
FFC0FF3FE0FF0FF0FF0FF0FF07F8FF07F87E07F80007F80007F80007F80007F80007F80007F800
07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800
07F80007F80007F80007F80007F80007F80007F800FFF800FFF800FFF800FFF800000000000000
00000000000000000000000003C0000FF0000FF0001FF8001FF8001FF8001FF8000FF0000FF000
03C0>21 55 5 12 21]106 dc[ E07FC00FE0FF800FE0FF000FE1FF000FF3FE000FFFFC000FFFFC000FFFF8000FFFF0000FFFE000
0FFFE0000FF7E0000FF3F0000FF1FC000FF0FE000FF03F000FF01F800FF07FFC0FF07FFC0FF07F
FC0FF07FFC0FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0
00000FF000000FF00000FFF00000FFF00000FFF00000FFF00000>31 42 -2 0 36]107 dc[ FFFFFFFFFFFFFF0FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0
0FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0FFF0FF
F0FFF0FFF0>16 42 -2 0 19]108 dc[ FF1FFFC7FFF00FF003FC00FF000FF003FC00FF000FF003FC00FF000FF003FC00FF000FF003FC00
FF000FF003FC00FF000FF003FC00FF000FF003FC00FF000FF003FC00FF000FF003FC00FF000FF0
03FC00FF000FF003FC00FF000FF003FC00FF000FF003FC00FF000FF803FE00FF000FF803FE00FF
000FFC03FF00FF000FFC03FF00FF000FFF03FFC0FF00FFEFC7FBF1FE00FFE7FFF1FFFC00FFE1FF
E07FF800FFE07F801FE000>52 27 -3 0 59]109 dc[ FF1FFF800FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007F800
0FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF807F8
000FF807F8000FFC07F8000FFC07F8000FFE07F800FFEF8FF000FFE7FFE000FFE1FFC000FFE07F
8000>33 27 -3 0 38]110 dc[<003FE00001FFFC0007FFFF000FF07F801FE03FC03FC01FE03F
800FE07F800FF07F800FF0FF800FF8FF800FF8FF800FF8FF800FF8FF800FF8FF800FF8FF800FF8
FF800FF87F800FF07F800FF07F800FF03F800FE03FC01FE01FC01FC00FF07F8003FFFE0001FFFC
00003FE000>29 27 -2 0 34]111 dc[ 0000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000F
F1FE00000FFFFFC0000FFFFFF0000FFE1FF8000FFC07FC000FF803FE000FF003FE000FF001FF00
0FF001FF000FF000FF800FF000FF800FF000FF800FF000FF800FF000FF800FF000FF800FF000FF
800FF000FF800FF000FF800FF001FF000FF001FF000FF001FE000FF003FE000FFC07FC00FFFF0F
F800FFFFFFF000FFFFFFC000FFF1FF0000>33 39 -2 12 38]112 dc[ FF800FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000F
F0000FF0000FF07E0FF0FF0FF8FF0FF8FF0FFCFFFFFCFFFFFFFEFFEFFCFFE7F0>24 27 -2 0 28
]114 dc[ FFFC0FFFF83FFFF87FFFF07FFFC0FFFF80FFFC00FF0000FC00F0F800F0F800F07C01F07E07F03F
FFF01FFFF003FE70>22 27 -2 0 27]115 dc[<003F8000FFE001FFF003FCF007F8F807F87807
F87807F87807F87807F87807F87807F80007F80007F80007F80007F80007F80007F80007F80007
F80007F80007F80007F800FFFFF0FFFFF0FFFFF01FFFF007F80003F80003F80001F80000F80000
F80000F800007800007800007800007800>21 38 -1 0 27]116 dc[<007FC7FF8001FFF7FF80
07FFFFFF8007F87FFF800FF01FF8000FF00FF8000FF00FF8000FF007F8000FF007F8000FF007F8
000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007
F8000FF007F8000FF007F8000FF007F8000FF007F8000FF007F800FFF07FF800FFF07FF800FFF0
7FF800FFF07FF800>33 27 -3 0 38]117 dc[<0003E000000003E000000007F000000007F000
00000FF80000000FF80000000FF80000001FFC0000001FFC0000003FFE0000003FDE0000003FDE
0000007F8F0000007F8F000000FF8F800000FF07800001FF07C00001FE03C00001FE03C00003FE
03E00003FC01E00007FC01F00007F800F000FFFF07FF80FFFF07FF80FFFF07FF80FFFF07FF80>
33 27 -1 0 36]118 dc[<00078003C000000FC007E000000FC007E000000FC007E000001FE00F
F000001FE00FF000003FF01FF800003FF01FF800003FF01FF800007FF83FFC00007FF83FBC0000
7FF83FBC0000FF7C7F3E0000FF3C7F1E0001FF3EFF1F0001FE1EFE0F0001FE1EFE0F0003FE1FFE
0F8003FC0FFC078003FC0FFC078007F80FF807C007F807F803C007F807F803C0FFFE3FFE1FFEFF
FE3FFE1FFEFFFE3FFE1FFEFFFE3FFE1FFE>47 27 -1 0 50]119 dc[ FFF83FFF80FFF83FFF8003E01FF00001F03FE00000F83FC000007C7F8000007EFF8000003EFF00
00001FFE0000000FFC00000007FC00000007F80000000FF00000001FF00000003FF80000003FFC
0000007FFC000000FF3E000001FF1F000001FE0F800003FC0FC000FFFE1FFF00FFFE1FFF00FFFE
1FFF00FFFE1FFF00>33 27 -1 0 36]120 dc[<0FC00000003FF00000007FF8000000787C0000
00F03E000000F01F000000FF0F000000FF0F8000007E078000003C07C000000003C000000003C0
00000003E000000003E000000007F000000007F00000000FF80000000FF80000000FF80000001F
FC0000001FFC0000003FFE0000003FDE0000003FDE0000007F8F0000007F8F000000FF8F800000
FF07800001FF07C00001FE03C00001FE03C00003FE03E00003FC01E00007FC01F00007F800F000
FFFF07FF80FFFF07FF80FFFF07FF80FFFF07FF80>33 39 -1 12 36]121 dc[ 00FFFFFF007FC0FF007FE03F003FF01F001FF00F000FF80F800FFC0F8007FC078003FE078003FF
078001FF878000FF800000FFC000007FE000783FE000781FF000781FF8007C0FF8007C07FC003C
07FE003E03FF003F81FF003FFFFF803FFFFF803FFFFF80>25 27 -2 0 31]122 dc dfend /fe
df[ 001F8000C0003F0000C0003F0000C0003F000060007E00007FFFFE00007FFFFE00003FFFFC0000
3000FC00003001FC00001801F800001801F800001C03F800000C03F000000C03F000000E07F000
000607E000000607E00000030FC00000030FC00000030FC00000019F800000019F800000019F80
000000FF00000000FF00000000FF000000007E000000007E000000007E000000003C000000003C
000000003C00000000180000>40 41 -2 0 45]65 dc[ F000FF0003F0003F8003F0001FC003F0000FE003F0000FE003F00007F003F00007F003F00007F0
03F00007F003F00007F003F00007F003F00007E003F0000FE003F0000FC003F0001FC003F0003F
8003F0007E0003FFFFFC0003FFFFE00003F007F80003F000FC0003F0007E0003F0003F0003F000
3F8003F0001F8003F0001FC003F0001FC003F0001FC003F0001FC003F0001FC003F0001F8003F0
003F8003F0003F0003F0007F0003F000FE00FFFFFFFC00FFFFFFF000FFFFFF8000>36 41 -2 0
42]66 dc[<0000FF80000007FFE000001FFFF800007FC03E0000FE000F0001F800038003F00001
8007E00000C00FC00000E01F800000601F800000603F000000303F000000307F000000307F0000
00307E00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00
000000FE00000000FE000000007E000000307F000000307F000000303F000000703F000000701F
800000701F800000F00FC00000F007E00001F003F00003F001F80007F000FE000FF0007FC03CF0
001FFFF8700007FFE0300000FF0010>36 41 -3 0 43]67 dc[ FE0003F000FF0003F0003F8003F0000FC003F00007E003F00003F003F00001F803F00001F803F0
0000FC03F00000FC03F00000FE03F000007E03F000007E03F000007F03F000007F03F000007F03
F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03F000007E
03F000007E03F000007E03F00000FC03F00000FC03F00000FC03F00001F803F00001F003F00003
F003F00007E003F0000FC003F0003F8003F000FF00FFFFFFFC00FFFFFFF800FFFFFFC000>40 41
-2 0 46]68 dc[ F00001E003F00000E003F00000E003F000006003F000006003F000006003F000006003F0030030
03F003003003F003003003F003003003F003000003F007000003F00F000003FFFF000003FFFF00
0003FFFF000003F00F000003F007000003F003000003F003006003F003006003F003006003F003
00E003F00000C003F00000C003F00000C003F00001C003F00001C003F00003C003F00007C003F0
003F80FFFFFFFF80FFFFFFFF80FFFFFFFF80>36 41 -2 0 41]69 dc[ FFFFF0000003F000000003F000000003F000000003F000000003F000000003F000000003F00000
0003F000000003F000000003F003000003F003000003F003000003F003000003F003000003F007
000003F00F000003FFFF000003FFFF000003FFFF000003F00F000003F007000003F003000003F0
03000003F00300C003F00300C003F00300C003F00001C003F000018003F000018003F000018003
F000038003F000038003F000078003F0000F8003F0007F00FFFFFFFF00FFFFFFFF00FFFFFFFF00
>34 41 -2 0 39]70 dc[<0000FF80100007FFF070001FFFF8F0007FC03DF000FE0007F001F800
03F003F00003F007E00003F00FC00003F01F800003F01F800003F03F000003F03F000003F07F00
0003F07F0001FFFF7E0001FFFFFE0001FFFFFE00000000FE00000000FE00000000FE00000000FE
00000000FE00000000FE00000000FE000000007E000000307F000000307F000000303F00000070
3F000000701F800000701F800000F00FC00000F007E00001F003F00003F001F80007F000FE000F
F0007FC03CF0001FFFF8700007FFE0300000FF0010>40 41 -3 0 47]71 dc[ C3FFFFFFFFC3FFFF03F0000FC003F0000FC003F0000FC003F0000FC003F0000FC003F0000FC003
F0000FC003F0000FC003F0000FC003F0000FC003F0000FC003F0000FC003F0000FC003F0000FC0
03F0000FC003F0000FC003F0000FC003FFFFFFC003FFFFFFC003FFFFFFC003F0000FC003F0000F
C003F0000FC003F0000FC003F0000FC003F0000FC003F0000FC003F0000FC003F0000FC003F000
0FC003F0000FC003F0000FC003F0000FC003F0000FC003F0000FC0FFFFC3FFFFFFFFC3FFFFFFFF
C3FFFF>40 41 -2 0 45]72 dc[ F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003
F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003
F00003F00003F00003F000FFFFC0FFFFC0FFFFC0>18 41 -2 0 22]73 dc[ C07FFF80FFFFC07FFF8003F0001FF00003F0000FE00003F0000FC00003F0001F800003F0003F80
0003F0003F000003F0007E000003F000FE000003F000FC000003F001FC000003F001F8000003F0
03F0000003F007F0000003F807E0000003FC0FC0000003FE0FC0000003F71F80000003F3BF8000
0003F1FF00000003F0FE00000003F07E00000003F03C00000003F01C00000003F00E00000003F0
0600000003F00300000003F00180000003F000C0000003F00060000003F00030000003F0001800
0003F0000C000003F00006000003F00007000003F0000FE000FFFFC03FFF00FFFFC03FFF00FFFF
C03FFF00>41 41 -2 0 46]75 dc[ 03F0001E03F0000E03F0000E03F0000603F0000603F0000603F0000703F0000303F0000303F000
0303F0000303F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0
000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003
F0000003F0000003F00000FFFFF000FFFFF000FFFFF000>32 41 -2 0 37]76 dc[ FFC0FFFC0780FFFFC0FFFC0780FFFFC00FC0078003F00003000FC003F00003000FC003F0000300
0FC003F00003001F6003F00003001F6003F00003001F6003F00003003E3003F00003003E3003F0
0003007C1803F00003007C1803F00003007C1803F0000300F80C03F0000300F80C03F0000300F8
0C03F0000301F00603F0000301F00603F0000301F00603F0000303E00303F0000303E00303F000
0307C00183F0000307C00183F0000307C00183F000030F8000C3F000030F8000C3F000030F8000
C3F000031F000063F000031F000063F000033E000033F000033E000033F000033E000033F00003
7C00001BF000037C00001BF000037C00001BF00003F800000FF000FFF800000FFFC0FFF800000F
FFC0FFF0000007FFC0>50 41 -2 0 55]77 dc[ C003000007C003000007C00300000FC00300001FC00300001FC00300003FC00300007FC0030000
7EC0030000FEC0030000FCC0030001F8C0030003F8C0030003F0C0030007E0C003000FE0C00300
0FC0C003001F80C003003F80C003003F00C003007E00C00300FE00C00300FC00C00301F800C003
03F800C00303F000C00307F000C0030FE000C0030FC000C0031FC000C0031F8000C0033F0000C0
037F0000C0037E0000C003FC0003F0FFFC003FFFFFF8003FFFFFF0003FFF>40 41 -2 0 45]78
dc[<0001FF0000000FFFE000003F01F800007C007C0001F8003F0003F0001F8007E0000FC00FC0
0007E00FC00007E01F800003F03F800003F83F000001F83F000001F87F000001FC7F000001FC7E
000000FCFE000000FEFE000000FEFE000000FEFE000000FEFE000000FEFE000000FEFE000000FE
FE000000FEFE000000FE7E000000FC7E000000FC7F000001FC3F000001F83F000001F81F000001
F01F800003F00F800003E00FC00007E007E0000FC003F0001F8001F8003F00007C007C00003F01
F800000FFFE0000001FF0000>39 41 -3 0 46]79 dc[ F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0000000
03F000000003F000000003F000000003F000000003F000000003F000000003F000000003F00000
0003FFFFE00003FFFFF80003F001FE0003F0007F0003F0001F8003F0001F8003F0000FC003F000
0FC003F0000FE003F0000FE003F0000FE003F0000FE003F0000FE003F0000FE003F0000FC003F0
001FC003F0001F8003F0003F0003F001FE00FFFFFFFC00FFFFFFF000FFFFFF8000>35 41 -2 0
41]80 dc[ 018003F0007F000003F0007F000003F0007F000003F0007F000003F0007E000003F0007E000003
F0007E000003F0007E000003F0007E000003F0007C000003F000F8000003F000F8000003F001F0
000003F007C0000003FFFF80000003FFFFE0000003F003F8000003F000FC000003F0007E000003
F0003F000003F0001F800003F0001FC00003F0001FC00003F0001FC00003F0001FC00003F0001F
C00003F0001FC00003F0001F800003F0003F800003F0003F000003F000FE000003F003FC0000FF
FFFFF00000FFFFFFC00000FFFFFE000000>41 41 -2 0 44]82 dc[<803FC000C1FFF000E7FFF8
00FFC07C00FE001E00F8000F00F0000F80E0000780E0000780C00007C0C00007C0C00007C0C000
07C000000FC000000FC000001F8000003F800001FF80001FFF0001FFFE0007FFFC000FFFF8001F
FFF0003FFFC0007FFC00007FC000007E000000FC000000FC000300F8000300F8000300F8000700
F800070078000F007C000F003C001F003E003F001F81FF000FFFE70003FFC30000FE0100>26 41
-3 0 33]83 dc[<01FFFFFE0001FFFFFE0001FFFFFE000000FC00000000FC00000000FC000000
00FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000
0000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00
000000FC00000000FC00000000FC00000000FC0000C000FC000CC000FC000CC000FC000CC000FC
000CC000FC000CE000FC001CE000FC001C6000FC00186000FC00187000FC00387800FC00787E00
FC01F87FFFFFFFF87FFFFFFFF87FFFFFFFF8>38 41 -2 0 43]84 dc[<00007F00000003FFE000
000FFFF000001FC07800003E001C00007C00060000F800030000F800038001F800018001F00001
8003F00000C003F00000C003F00000C003F00000C003F00000C003F00000C003F00000C003F000
00C003F00000C003F00000C003F00000C003F00000C003F00000C003F00000C003F00000C003F0
0000C003F00000C003F00000C003F00000C003F00000C003F00000C003F00000C003F00000C003
F00000C003F00000C003F00000C003F00000C003F00003F0FFFFC03FFFFFFFC03FFFFFFFC03FFF
>40 41 -2 0 45]85 dc[<000060000180000000007000038000000000F00003C000000000F000
03C000000000F80007C000000001F80007E000000001F80007E000000001FC000FE000000003FC
000FF000000003FC000FF000000003FE001FF000000007F6001FB800000007E6001F9800000007
E7003F9800000007E3003F180000000FC3003F0C0000000FC3003F0C0000000FC1807E0C000000
1F81807E060000001F81807E060000001F80C0FC060000003F00C0FC030000003F00C0FC030000
003F0061F8030000007E0061F8018000007E0061F8018000007E0033F001800000FE0033F001C0
0000FC0033F000C00000FC003FF000C00001FC001FE000E00001F8001FE000600001F8001FE000
600001F8000FC000600003F0000FC000300003F0000FC000300003F0001F8000380007F0001F80
00FC00FFFF83FFFC07FFC0FFFF83FFFC07FFC0FFFF83FFFC07FFC0>58 41 -1 0 61]87 dc[<00
0FFFFC0000000FFFFC0000000FFFFC000000003F00000000003F00000000003F00000000003F00
000000003F00000000003F00000000003F00000000003F00000000003F00000000003F00000000
003F00000000003F00000000003F00000000003F00000000007F00000000007F8000000000FFC0
00000000FCC000000001FC6000000003F86000000003F83000000007F03800000007E018000000
0FE01C0000000FC00C0000001FC0060000003F80060000003F80030000007F00038000007E0001
800000FE0000C00000FC0000C00001FC0000600003F80000700003F80000FC00FFFF8003FFC0FF
FF8003FFC0FFFF8003FFC0>42 41 -1 0 45]89 dc dfend /ff df[<3C7EFFFFFFFF7E3C>8 8
-4 0 16]46 dc[<7FFFE07FFFE07FFFE003F80003F80003F80003F80003F80003F80003F80003
F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003
F80003F80003F800FFF800FFF800FFF80003F800007800001800>19 32 -4 0 28]49 dc[ F0FFFFF0FFFFF07FFFF03FFFF01FFFF01FFFF80F007807803803C03801E03800F038007800003E
00003F00001F80000FC0000FE00007F00007F00007F81803F87E03F8FF03F8FF07F8FF07F0FF07
F0FE0FE07C3FE03FFF801FFF0003FC00>21 32 -3 0 28]50 dc[<01FE000FFFC01FFFE03E07F0
7F03F8FF01FCFF81FCFF81FEFF81FEFF81FE7F01FE3E01FE0001FC0001FC0003F80007F001FFC0
01FE0001FF80001FC0000FE00F07F01F87F83FC3F83FC3F83FC3F83FC3F81F87F01F07F00FFFE0
03FF8000FE00>23 32 -2 0 28]51 dc[<01FFFE01FFFE01FFFE000FE0000FE0000FE0000FE000
0FE0000FE0FFFFFEFFFFFEFFFFFEF00FE0780FE03C0FE01C0FE01E0FE00F0FE0078FE0038FE003
CFE001EFE000FFE0007FE0003FE0003FE0001FE0000FE00007E00007E00003E00001E0>23 32
-2 0 28]52 dc[<07F8001FFF003FFF807C1FC07C0FE0FE07F0FF07F0FF07F8FE07F87E07F83C
07F80007F80007F80007F03807F03C07E03E0FE03FFFC03BFF0039FC0038000038000038000039
00003FF8003FFE003FFF003FFF803FFFC03FFFE03C01E0300060>21 32 -3 0 28]53 dc[<00FF
0003FFC007FFE00F83F01F00F83E00FC3E00FC7E00FE7E00FE7E00FEFE00FEFE00FEFE00FEFE00
FEFF00FCFF00FCFF80F8FFC1F8FEFFF0FE7FE0FE1F807E00007E01F07E03F83F03F83F03F81F83
F80FC1F807F07003FFF000FFE0001F80>23 32 -2 0 28]54 dc[<00E00001F00003F80003F800
03F80003F80003F80003F80001F80001F80001F80001F80000F80000F800007C00007C00003C00
003C00001C00000E00E00E00E00700E00380E001C0F000E0FFFFF07FFFF07FFFF87FFFFC7FFFFE
7FFFFE7FFFFE7C0000700000>23 34 -3 0 28]55 dc[<01FE000FFFC01FFFE03F01F07E00787C
003CF8003CF8003EF8003EF8007EF801FE7C03FE7C0FFE3E3FFC1FFFFC0FFFF807FFF00FFFE01F
FF801FFFE03FFDF03FF0F03FC0783F80783E00783C00781C00781C00F00F03F007FFE003FFC000
FE00>23 32 -2 0 28]56 dc[ 8001FE0003C003FE0001C003FC0001FFFFFC0001FFFFFC0000FFFFF80000E00FF80000700FF000
00700FF00000781FF00000381FE00000381FE000001C3FC000001C3FC000001E7FC000000E7F80
00000E7F8000000FFF80000007FF00000007FF00000003FE00000003FE00000003FE00000001FC
00000001FC00000000F800000000F800000000F800000000700000>37 34 -2 0 42]65 dc[<00
03FE0000001FFFC00000FFFFF00001FF00F80003F8003C0007F0001E000FE0000F001FC0000700
3F800007803F800003807F800003807F000003807F00000000FF00000000FF00000000FF000000
00FF00000000FF00000000FF00000000FF00000000FF000000007F000003807F000003807F8000
03803F800007803F800007801FC0000F800FE0000F8007F0001F8003F8003F8001FF00FF8000FF
FFE780001FFF83800003FE0180>33 34 -3 0 40]67 dc[ 07F803FE0007F8007F0007F8003F8007F8001FC007F8000FE007F8000FE007F80007F007F80007
F007F80007F007F80007F807F80007F807F80007F807F80007F807F80007F807F80007F807F800
07F807F80007F807F80007F807F80007F007F80007F007F80007F007F8000FF007F8000FE007F8
000FE007F8001FC007F8003F8007F8007F0007F803FE00FFFFFFFC00FFFFFFF000FFFFFF8000>
37 34 -2 0 43]68 dc[ 07F8001E07F8000E07F8000E07F81C0E07F81C0707F81C0707F81C0707F83C0007F87C0007FFFC
0007FFFC0007FFFC0007F87C0007F83C0007F81C0E07F81C0E07F81C0E07F81C0E07F8001E07F8
001E07F8001C07F8003C07F8007C07F801FCFFFFFFFCFFFFFFFCFFFFFFFC>32 34 -2 0 37]69
dc[ F8000007F8380007F8380007F8380007F8380007F8780007F8F80007FFF80007FFF80007FFF800
07F8F80007F8780007F8381C07F8381C07F8381C07F8381C07F8003C07F8003C07F8003807F800
7807F800F807F803F8FFFFFFF8FFFFFFF8FFFFFFF8>30 34 -2 0 35]70 dc[ C7FFFEFFFFC7FFFE07F8003FC007F8003FC007F8003FC007F8003FC007F8003FC007F8003FC007
F8003FC007F8003FC007F8003FC007F8003FC007F8003FC007F8003FC007F8003FC007FFFFFFC0
07FFFFFFC007FFFFFFC007F8003FC007F8003FC007F8003FC007F8003FC007F8003FC007F8003F
C007F8003FC007F8003FC007F8003FC007F8003FC007F8003FC007F8003FC0FFFFC7FFFEFFFFC7
FFFEFFFFC7FFFE>39 34 -2 0 44]72 dc[ 03FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC00
03FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC0003FC00FFFFF0FFFFF0
FFFFF0>20 34 0 0 21]73 dc[ F800F007F8007807F8007807F8007807F8003807F8003807F8003807F8003807F8000007F80000
07F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F800
0007F8000007F8000007F8000007F8000007F80000FFFFF000FFFFF000FFFFF000>29 34 -2 0
34]76 dc[ 0FE007003FC00FE007007FE00FE007007FE00FE007007FE00FE00700FE700FE00700FE700FE007
01FC380FE00701FC380FE00701FC380FE00703F81C0FE00703F81C0FE00707F00E0FE00707F00E
0FE0070FE0070FE0070FE0070FE0070FE0070FE0071FC0038FE0071FC0038FE0073F8001CFE007
3F8001CFE0073F8001CFE0077F0000EFE0077F0000EFE007FE00007FE007FE00007FE0FFFE0000
7FFFFFFC00003FFFFFFC00003FFF>48 34 -2 0 53]77 dc[ 000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007
F8000007FFFF0007FFFFE007FFFFF007F807F807F801FC07F800FE07F800FE07F800FF07F800FF
07F800FF07F800FF07F800FF07F800FF07F800FE07F800FE07F801FC07F807F8FFFFFFF0FFFFFF
E0FFFFFF00>32 34 -2 0 38]80 dc[ FC0E07F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F803FC0007F8
03FC0007F807F80007F807F80007F80FF00007FFFFE00007FFFFC00007FFFFF00007F807F80007
F801FC0007F800FE0007F800FF0007F800FF0007F800FF0007F800FF0007F800FF0007F800FF00
07F800FE0007F801FC0007F807F800FFFFFFF000FFFFFFC000FFFFFE0000>39 34 -2 0 42]82
dc[ 00FF000FFF01FFFE07FFFE0FFFFC1FFFF83FFFF07FFFE07FFFC0FFFC00FF8000FE0000FE001CFC
001CFC001C7C003C7C007C3E00FC3F03FC1FFFFC07FF9C01FC0C>24 34 -3 0 31]83 dc[<07FF
FFF80007FFFFF80007FFFFF8000007F800000007F800000007F800000007F800000007F8000000
07F800000007F800000007F800000007F800000007F800000007F800000007F800000007F80000
0007F800000007F800000007F800000007F800000007F80000E007F801C0E007F801C0E007F801
C0E007F801C0F007F803C0F007F803C07007F803807807F807807807F807807E07F81F807FFFFF
FF807FFFFFFF807FFFFFFF80>34 34 -2 0 39]84 dc[<000038000000007C000000007C000000
00FE00000000FE00000000FE00000001FF00000001FF00000003FF80000003FF80000003FF8000
0007FDC0000007F9C000000FF9E000000FF0E000001FF0F000001FE07000001FE07000003FE038
00003FC03800007FC03C00007F801C00007F801C0000FF800E0000FF000E0001FF000F0001FE00
070003FE00078003FC00038003FC00038007FC0001C0FFFFC01FFEFFFFC01FFEFFFFC01FFE>39
34 -1 0 42]86 dc[<0FC07F1FF8FF3FFDFF7F0FF0FE07F0FE03F0FE03F0FE03F07F03F07F83F0
3FE3F00FFFF001FFF00003F01C03F03E03F07F03F07F07E07F0FE03FFFC01FFF8007FC00>24 22
-2 0 27]97 dc[<1C0FE0001E3FF8001F7FFC001FE07E001FC03F001F803F801F801F801F801F
C01F801FC01F801FC01F801FC01F801FC01F801FC01F801FC01F801FC01F801F801F801F801FC0
3F001FF07F001FFFFE001FBFFC001F87F0001F8000001F8000001F8000001F8000001F8000001F
8000001F8000001F8000001F8000001F800000FF800000FF800000FF800000>26 35 -2 0 31]
98 dc[<00FE0007FF800FFFC01FC1E03F80707F00707F00007E0000FE0000FE0000FE0000FE00
00FE0000FE00007E01C07E03E07F07F03F07F01F87F00FFFE007FFC000FF00>20 22 -2 0 25]
99 dc[<01F87FC007FF7FC01FFFFFC03F83FE003F00FE007E007E007E007E00FE007E00FE007E
00FE007E00FE007E00FE007E00FE007E00FE007E00FE007E007E007E007E007E003F007E003F81
FE001FFFFE0007FF7E0001FC7E0000007E0000007E0000007E0000007E0000007E0000007E0000
007E0000007E0000007E0000007E000003FE000003FE000003FE00>26 35 -2 0 31]100 dc[<
00FE0003FFC00FFFE01FC0F03F00787F00387E00007E0000FE0000FE0000FE0000FFFFF8FFFFF8
FFFFF8FE01F87E01F87E01F03F03F01F87E00FFFC007FF8000FE00>21 22 -2 0 26]101 dc[<
7FFC007FFC007FFC000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000
0FC0000FC0000FC0000FC0000FC0000FC000FFFC00FFFC00FFFC000FC0000FC0000FC0000FC000
0FC0000FC3E00FC7F007C7F007E7F003F0F001FFF0007FE0001FC0>20 35 -1 0 17]102 dc[<
01FFC0000FFFF8001FFFFC003F007E007C001F00F8000F80F8000F80F8000F80F8000F807C003F
803FFFFF001FFFFF001FFFFE003FFFF8003FFFE0003C000000380000003800000039FC00001FFF
00001FFFC0003F07E0003E03E0007E03F0007E03F0007E03F0007E03F0007E03F2003E03E7003F
07EF801FFFFF8007FF7F0001FC1E00>25 33 -1 11 28]103 dc[ 1F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E
001F807E001F807E001F807E001FC07E001FE07E001FF0FC001FBFFC001F9FF8001F87E0001F80
00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000FF
800000FF800000FF800000>26 35 -2 0 31]104 dc[ 1F801F801F801F801F801F801F801F801F801F801F80FF80FF80FF800000000000000000000000
000E003F003F807F807F803F803F000E00>12 36 -1 0 15]105 dc[<1FC0003FF8007FFC00FE
7F00FE3F00FE1F807C1F807C1F80001F80001F80001F80001F80001F80001F80001F80001F8000
1F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8001
FF8001FF8001FF80000000000000000000000000000000000000001E00003F00007F80007F8000
7F80007F80003F00001E00>17 46 4 10 17]106 dc[ 1F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F
801F801F801F801F80FF80FF80FF80>12 35 -1 0 15]108 dc[ FFF1FFE3FFC01F803F007E001F803F007E001F803F007E001F803F007E001F803F007E001F803F
007E001F803F007E001F803F007E001F803F007E001F803F007E001F803F007E001F803F007E00
1F803F007E001FC03F807E001FE03FC07E001FF07EE0FC00FFBFFE7FFC00FF9FFC3FF800FF87F0
0FE000>42 22 -2 0 47]109 dc[ 1F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E
001FC07E001FE07E001FF0FC00FFBFFC00FF9FF800FF87E000>26 22 -2 0 31]110 dc[<00FE
0007FFC00FFFE01F83F03F01F87E00FC7E00FCFE00FEFE00FEFE00FEFE00FEFE00FEFE00FEFE00
FE7E00FC7E00FC7E00FC3F01F81F83F00FFFE007FFC000FE00>23 22 -2 0 28]111 dc[ 0000FFF00000FFF000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F
8FE0001FBFF8001FFFFC001FE0FE001FC07F001F803F801F803F801F801FC01F801FC01F801FC0
1F801FC01F801FC01F801FC01F801FC01F801FC01F803F801F803F801FC07F001FF0FF00FFFFFE
00FFBFFC00FF87F000>26 32 -2 10 31]112 dc[ 1F80001F80001F80001F80001F80001F80001F80001F80001F83801F87C01FCFE01FCFE01FEFE0
FFFFC0FF7F80FF3E00>19 22 -2 0 23]114 dc[ E00780000F80007F8007FF001FFF003FFE007FFC00FFF000FE0000F00000F00700F00700780F00
7FFF001FFF0007F300>17 22 -2 0 22]115 dc[<01F80003FE0007FF000FE7000FC3800FC380
0FC3800FC3800FC3800FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000
FFFF00FFFF00FFFF003FC0000FC00007C00007C00003C00003C00001C00001C00001C00001C000
>17 32 -1 0 22]116 dc[<03F87FC007FE7FC00FFF7FC01F83FE001F80FE001F80FE001F807E
001F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E001F80
7E001F807E001F807E00FF83FE00FF83FE00FF83FE00>26 22 -2 0 31]117 dc[ C1FFE0FFC1FFE00780FE0003C1FC0001C1F80001E3F00000F7F000007FE000003FC000001F8000
003F0000007F0000007F800000FFC00001F9E00003F8E00007F0F00007E07800FFF0FFE0FFF0FF
E0FFF0FFE0>27 22 -1 0 30]120 dc[<1F0000007FC000007FE00000F1F00000E0780000FE38
0000FE3C00007C1C0000001C0000000E0000000E0000001F0000001F0000003F8000003F800000
7FC000007FC000007FC00000FCE00000FCE00001FCF00001F8700003F8780003F0380003F03800
07E01C0007E01C000FE01E000FC00E00FFF03FE0FFF03FE0FFF03FE0>27 32 -1 10 30]121 dc
[ 00E0FE00E07F00F03F80F01F80781FC07C0FE07FFFF07FFFF07FFFF0>20 22 -2 0 25]122 dc
dfend /fg df[<0F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F000
0F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F000FFF8FF80FFF8FF
80FFF8FF80FFF8FF800F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000780
780007FF7FF003FF3FF001FF1FF0007F07F0>28 32 0 0 27]11 dc[<0F00F00F00F00F00F00F
00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F0FF
F8F0FFF8F0FFF8F0FFF8F00F00000F00000F00000F00000F00000F00000F000007800007F9F003
F9F001F9F000F9F00001F0>20 33 0 0 24]12 dc[<0F00F00F00F00F00F00F00F00F00F00F00
F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F0FFF8F0FFF8F0FFF8
F0FFF8F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00780F007F8F003F8F001F8F000F8
F0>20 32 0 0 24]13 dc[14 11 -2
-21 23]34 dc[<0601800006018000060180000701C0000300C0000300C0000300C0000380E000
0180600001806000018060000180600001C0700000C03000FFFFFFFEFFFFFFFE00601800006018
00006018000060180000701C0000300C0000300C0000300C00FFFFFFFEFFFFFFFE00180600001C
0700000C0300000C0300000C0300000C0300000E03800006018000060180000601800006018000
0701C0000300C0000300C0000300C0>31 41 -3 9 38]35 dc[<07F00FC01FFE3FF03FFFFFF07F
FFFFF07C0FF030F807F000F00FF800F01F7C00F03E3E00F07C1E00F87C1F007CF80F803FF00780
3FE007C00FE003C007F003C003F803E003FC01E007FE018007BF0000079F8000078F80000787C0
000703C0000703C0000783C0000383C00003C7800003FF800001FF000000FE0000007C0000>28
32 -2 0 34]38 dc[5 11 -4 -21 13]39 dc[<00F001E003C007
8007800F001E001E001E003C003C003C007800780078007800F000F000F000F000F000F000F000
F000F000F000F000F000F000F00078007800780078003C003C003C001E001E001E000F00078007
8003C001E000F0>12 46 -2 12 18]40 dc[ 03C003C001E001E001E001E000F000F000F000F000F000F000F000F000F000F000F000F000F000
F001E001E001E001E003C003C003C00780078007800F001E001E003C007800F000>12 46 -3 12
18]41 dc[<00060000000600000006000000060000000600000006000000060000000600000006
0000000600000006000000060000000600000006000000060000FFFFFFF0FFFFFFF00006000000
060000000600000006000000060000000600000006000000060000000600000006000000060000
00060000000600000006000000060000>28 32 -3 5 35]43 dc[
5 11 -4 6 13]44 dc[10 4 -1 -8 15]45 dc[5 5 -4 0
13]46 dc[ 070003000300038001800180018001C000C000C000E00060006000700030003000380018001800
1C000C000C000E00060006000700030003>16 45 -3 11 23]47 dc[<03F0000FFC001FFE003F
FF003E1F007C0F80780780780780F807C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F0
03C0F003C0F003C0F003C0F003C07003807807807807807C0F803E1F003FFF001FFE000FFC0003
F000>18 30 -2 0 23]48 dc[<7FFF7FFF7FFF7FFF03C003C003C003C003C003C003C003C003C0
03C003C003C003C003C003C003C003C003C003C0F3C0FFC0FFC0FFC00FC001C000C0>16 30 -3
0 23]49 dc[ 00F800007C00003E00001F00000F000007800007800007C00003C00003C02003C06007C0F007C0
F00F80783F807FFF003FFE001FFC0007F000>18 30 -2 0 23]50 dc[<07F0001FFC003FFE007F
FF00F81F80E00F80C007C08007C00007C00007C00007C0000780000F80001F0003FE0003FC0003
FC0003FE00003F00001F00000F80000F80000780100F80380F807C1F003FFF001FFE000FFC0003
F000>18 30 -2 0 23]51 dc[<001E00001E00001E00001E00001E00001E00001E00FFFFF0FFFF
F0FFFFF0FFFFF0F81E00781E007C1E003C1E003E1E001E1E001F1E000F1E000F1E00079E00079E
00039E0003DE0001DE0000DE0000DE00005E00007E00003E00>20 30 -1 0 23]52 dc[<07E000
1FF8003FFE007FFF00FC3F00700F80600F802007C00007C00007C00007C00007C07C07C07C0F80
7E1F807FFF007FFE007FFC0079F0007800007800007800007800007800007800007800007FFF00
7FFF007FFF007FFF00>18 30 -2 0 23]53 dc[<03F00007FC000FFE001FFF003E1F003C078078
07807803C07803C0F003C0F003C0F003C0F003C0F803C0F80780FC0F80FFFF80FFFF00F7FE0079
FC007800007800003C00003C00001E00001F82000FFE0007FE0001FE00007C00>18 30 -2 0 23
]54 dc[<0F80000F80000F80000F80000F80000F800007C00007C00007C00007C00007C00003E0
0003E00003E00001F00001F00000F00000F800007800007C00003C00001E00001F00000F000007
800003C0FFFFC0FFFFC0FFFFC0FFFFC0>18 30 -2 0 23]55 dc[<03F0000FFC001FFE003FFF00
7E1F80780780F807C0F003C0F003C0F003C0F003C0F003C07807807C0F803FFF001FFE000FFC00
1FFE003E1F003C0F007807807807807807807807807C0F803E1F003FFF001FFE000FFC0003F000
>18 30 -2 0 23]56 dc[<0FC0003FF0007FF8003FFC00387E00001E00000F00000F8000078000
07800FE3C01FFBC03FFFC07FFFC07C0FC07807C0F007C0F003C0F003C0F003C0F003C0F00380F0
0780780780780F003E1F003FFE001FFC0007F80003F000>18 30 -2 0 23]57 dc[ 00000000000000000000F8F8F8F8F8>5 20 -4 0 13]58 dc[ 0000000000000000F8F8F8F8F8>5 26 -4 6 13]59 dc[ 00000000000000000000000000000000000000000000000000FFFFFFF0FFFFFFF0>28 12 -3 -5
35]61 dc[ 1F000FFFFE000FFFFE000FFFFE0007007C0007807C0007807C000380F80003C0F80003C0F80001
C1F00001C1F00001E1F00000E1E00000E3E00000F3E0000073C0000073C0000077C00000378000
003F8000003F8000001F0000001F0000>27 32 -1 0 30]65 dc[ F801F8F800F8F8007CF8007CF8007CF8007CF8007CF80078F800F8F803F0F80FF0FFFFC0FFFF80
FFFF80FFFFC0F807E0F801F0F800F8F800F8F800F8F800F8F800F8F801F0F803F0F80FE0FFFFC0
FFFF80FFFC00>22 32 -4 0 30]66 dc[<001FC000FFF001FFFC03FFFE07E03E0FC00E1F00023F
00003E00007C00007C00007C0000F80000F80000F80000F80000F80000F80000F80000F800007C
00007C00007C00003E00003F00001F00000FC01807E07C03FFFC01FFFC00FFF8001FC0>23 32
-3 0 29]67 dc[ 00F8001F00F8001F00F8001F00F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F800
0F80F8000F80F8000F80F8000F00F8001F00F8001F00F8001E00F8003E00F8007C00F8007C00F8
01F800F803F000FFFFE000FFFFC000FFFE0000>25 32 -4 0 33]68 dc[ FFFFF0F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000FFFFC0
FFFFC0FFFFC0FFFFC0F80000F80000F80000F80000F80000F80000F80000F80000F80000FFFFE0
FFFFE0FFFFE0FFFFE0>20 32 -4 0 27]69 dc[ 0000F80000F80000F80000F80000F80000F80000F80000FFFF80FFFF80FFFF80FFFF80F80000F8
0000F80000F80000F80000F80000F80000F80000F80000F80000FFFFE0FFFFE0FFFFE0FFFFE0>
19 32 -4 0 26]70 dc[<001FC000FFF801FFFE07FFFE0FE03E0FC01E1F001E3F001E3E001E7C
001E7C03FE7C03FEF803FEF803FEF80000F80000F80000F80000F80000F800007C00007C00007C
00003E00003F00001F00000FC00C0FE03E07FFFE01FFFE00FFF8001FE0>23 32 -3 0 30]71 dc
[ 3EF8003EF8003EFFFFFEFFFFFEFFFFFEFFFFFEF8003EF8003EF8003EF8003EF8003EF8003EF800
3EF8003EF8003EF8003EF8003EF8003EF8003E>23 32 -4 0 32]72 dc[ F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8>5 32 -4 0 13]73 dc[ 001F00F8003E00F8007E00F8007C00F800FC00F800F800F801F000F803F000F803E000F807E000
FC0FC000FE0F8000FE1F8000FF1F0000FFBE0000FFFE0000FBFC0000F9FC0000F8F80000F87C00
00F83E0000F81F0000F80F0000F80F8000F807C000F803E000F801F000F800F800F8007C00F800
3E00F8001F00>25 32 -4 0 32]75 dc[ 0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8
0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000>18 32
-4 0 25]76 dc[ 3EF03CF03EF038703EF078783EF078783EF070383EF0F03C3EF0F03C3EF0F03C3EF0E01C3EF1E0
1E3EF1E01E3EF1C00E3EF3C00F3EF3C00F3EF380073EF380073EF78007BEF70003BEF70003BEF7
0003BEFE0001FEFE0001FEFE0001FEFC0000FE>31 32 -4 0 40]77 dc[ F003FEF003DEF003DEF0079EF0079EF00F9EF00F1EF01F1EF01F1EF01E1EF03E1EF03C1EF07C1E
F07C1EF0781EF0F81EF0F01EF1F01EF1F01EF1E01EF3E01EF3C01EF3C01EF7801EF7801EFF801E
FF001EFF001EFE001E>23 32 -4 0 32]78 dc[<003F000000FFC00003FFF00007FFF8000FE1FC
001F807E001F003E003E001F007E001F807C000F807C000F80FC000FC0F80007C0F80007C0F800
07C0F80007C0F80007C0F80007C0F80007C0F80007C0780007807C000F807C000F803E001F003E
001F001F003E001F807E000FE1FC0007FFF80003FFF00000FFC000003F0000>26 32 -3 0 33]
79 dc[ 00F80000FFFF00FFFF80FFFFC0F807E0F803F0F801F0F800F8F800F8F800F8F800F8F800F8F800
F8F800F8F801F0F803F0F807E0FFFFC0FFFF80FFFC00>21 32 -4 0 29]80 dc[<00001F800000
3F0000003E0000007E000000FC000000FC00003FF80000FFF00003FFF00007FFF8000FE7FC001F
8FFE001F0FBE003E1F9F007E1F1F807C000F807C000F80F80007C0F80007C0F80007C0F80007C0
F80007C0F80007C0F80007C0F80007C0F80007C07C000F807C000F807C000F803E001F003E001F
001F003E001F807E000FE1FC0007FFF80003FFF00000FFC000003F0000>26 38 -3 6 33]81 dc
[ 00F81F00FFFE00FFFF00FFFFC0FFFFE0F807E0F801F0F800F0F800F8F800F8F800F8F800F8F800
F8F800F0F801F0F807E0FFFFC0FFFF80FFFC00>23 32 -4 0 29]82 dc[<03F8001FFE007FFF00
FFFF80FE0FC0F007C06003E00003E00003E00003E00003E00003E00007E0000FC000FFC003FF80
0FFF001FFE003FF8003F80007E00007C00007C00007C00007C00007C00003E01803F07C01FFFC0
0FFFC007FF8001FC00>19 32 -2 0 25]83 dc[<001F0000001F0000001F0000001F0000001F00
00001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F
0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F000000
1F0000001F0000001F0000001F0000FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0>26 32 -2 0 31]
84 dc[<00FE0007FF800FFFC01F83E03E00F07C00F87C007878003CF8003CF8003CF8003CF800
3CF8003CF8003CF8003CF8003CF8003CF8003CF8003CF8003CF8003CF8003CF8003CF8003CF800
3CF8003CF8003CF8003CF8003CF8003CF8003CF8003C>22 32 -4 0 31]85 dc[<001F0000001F
0000003F8000003F8000003D80000079C0000079C00000F9E00000F9E00000F0E00001F0F00001
F0F00001F0700003E0780003E0780003E0380007C03C0007C03C0007C01C000F801E000F801E00
1F800F001F000F001F000F003F0007803E0007803E0007807C0003C07C0003C07C0003C0F80001
E0F80001E0>27 32 -1 0 30]86 dc[<00F8001F0000F8001F0000F8003F0001FC003F8001EC00
3B8001EC003B8001EC00798003CE0079C003CE0079C003CE0079C007CE00F9E007C700F1E007C7
00F0E0078700F0E00F8701F0F00F8781F0F00F8381E0F00F0381E0701F0383E0781F03C3E0781F
01C3C0783E01C3C03C3E01C7C03C3E01E7C03C3E00E7803C7C00E7801E7C00E7801E7C00EF001E
7C007F000EF8007F000FF8007F000FF8007E000F>40 32 -1 0 43]87 dc[ 7C000FC03E001F801E001F001F003E000F803E0007807C0007C0F80003E0F80001E1F00001F1E0
0000F3C000007FC000007F8000003F0000001F0000001F0000003F0000007F800000FFC00000FB
C00001F3E00003E1F00003E0F00007C0F8000F807C001F803C001F003E003F001F007E000F007C
000F80>27 32 -1 0 30]88 dc[<000F8000000F8000000F8000000F8000000F8000000F800000
0F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000001FC000003FE000
003FE000007CF00000FCF00000F8780001F87C0001F03C0003F01E0007E01F0007C00F000FC00F
800F8007801F8003C03F0003E03E0001E07E0000F0FC0000F8>29 32 0 0 30]89 dc[ FFFFFCFFFFFCFFFFFC7E00003E00003F00001F00001F80000FC00007C00007E00003E00003F000
01F00001F80000FC00007C00007E00003E00003F00001F00001F80000FC00007C00007E00003E0
0003F0FFFFF8FFFFF8FFFFF8FFFFF8>22 32 -3 0 28]90 dc[ F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0FFFFFFFF>8 45 -3 11 13
]91 dc[ 0F0F0F0F0F0FFFFFFFFF>8 45 -1 11 13]93 dc[<1F0F3FEF7FFF7FFFF83FF01FF00FF00F7F0F
3FFF1FFF03FF000F000F400F701F7FFE7FFC3FF807E0>16 20 -2 0 22]97 dc[ FFFC00FFFE00FC3F00F80F00F00F80F00780F00780F00780F00780F00780F00780F00F80F00F00
FC1F00FFFF00FFFE00F7FC00F0F800F00000F00000F00000F00000F00000F00000F00000F00000
F00000F00000F00000F00000>17 32 -3 0 23]98 dc[<03FC0FFF1FFF3FFF3E0378007800F000
F000F000F000F000F000780078043E0E3FFE1FFE0FFC03F0>16 20 -2 0 20]99 dc[<0787801F
F7803FFF803FFF807C1F80780F80F80780F00780F00780F00780F00780F00780F00780F8078078
07807E1F803FFF803FFF801FF7800FC78000078000078000078000078000078000078000078000
0780000780000780000780000780>17 32 -2 0 23]100 dc[<01FC0007FF001FFF003FFF003E
03007C0000780000F00000F00000F00000FFFF80FFFF80FFFF807FFF807807003E1F003FFF001F
FE000FFC0003F000>17 20 -1 0 20]101 dc[<0F000F000F000F000F000F000F000F000F000F
000F000F000F000F000F000F00FFF0FFF0FFF0FFF00F000F000F000F000F000F000F00078007FE
03FE01FE007E>15 32 0 0 14]102 dc[<03FC000FFF003FFFC07FFFE07C03E0F000F0F000F0F0
00F0F803F07FFFE03FFFC03FFF807FFE0078000070000073E0007FF8003FFC003FFE003C1E0078
0F00780F00780F00780F00780F003C1E003FFFF01FFFF00FFFF003E1E0>20 30 -1 10 23]103
dc[ FCF1F8F000F000F000F000F000F000F000F000F000F000F000F000>16 32 -3 0 23]104 dc[<
787878787878787878787878787878787878787800000000000000F8F8F8F8F8>5 32 -2 0 11]
105 dc[<3F00FF80FFC0FFC043E001E001E001E001E001E001E001E001E001E001E001E001E001
E001E001E001E001E001E001E001E001E001E001E001E0000000000000000000000000000003E0
03E003E003E003E0>11 41 3 9 12]106 dc[ 00F8F000F9F000FFE000FFC000FFC000F78000F3C000F1E000F0F000F07800F03C00F01E00F01F
00F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000>17
32 -3 0 22]107 dc[ F0F0F0>4 32 -3 0 11]108 dc[ 07803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF807C03CFC0FE07C
FFFFFFFCFFFF7FF8F7FE3FF0F1FC0FE0>30 20 -3 0 37]109 dc[ 0FF00FF00FF00FF00FF00FF00FF00FF00FF80FFC1FFFFFFFFEF7FCF1F8>16 20 -3 0 23]110
dc[<01F80007FE001FFF803FFFC03E07C07C03E07801E0F801F0F000F0F000F0F000F0F000F0F0
00F07801E07C03E03E07C03FFFC01FFF8007FE0001F800>20 20 -1 0 23]111 dc[ 0000F00000F00000F00000F00000F00000F00000F00000F1F000F7F800FFFC00FFFE00FC3F00F8
1F00F00F80F00780F00780F00780F00780F00780F00780F00F80F00F00FC3F00FFFF00FFFE00F7
FC00F0F800>17 29 -3 9 23]112 dc[<00078000078000078000078000078000078000078000
07800007800F87801FF7803FFF807FFF807E1F80780F80F80780F00780F00780F00780F00780F0
0780F00780F807807C0F807E1F803FFF801FFF801FF78007C780>17 29 -2 9 23]113 dc[ 00F000F000F000F000F000F000F000F000F000F000F000F800F800FC00FF00FFE0F7E0F3E0F0E0
>11 20 -3 0 16]114 dc[<0FC07FF0FFF8FFFCF07C403C003C007C03F80FF81FF03FC07C0078
00780078187FFC3FFC1FFC07F0>14 20 -1 0 17]115 dc[<07C00FF00FF01FE01E201E001E00
1E001E001E001E001E001E001E001E001E00FFF0FFF0FFF0FFF01E001E001E001E001E001E00>
12 26 -1 0 16]116 dc[<3F8F7FEFFFFFFFFFF03FF00FF00FF00FF00FF00FF00FF00FF00FF00F
F00FF00FF00FF00FF00FF00F>16 20 -3 0 23]117 dc[<01E00003F00003F00007B800073800
0738000F3C000F3C000F1C001E1E001E1E001E1E003C0F003C0F003C0F00780780780780780380
F003C0F003C0>18 20 -1 0 21]118 dc[<07C03E0007E03E0007E07E000EE077000EE077000E
F077001EF0F7801E70F7801E70E3801C78E3803C79E3C03C79E3C03C39E3C07839C1E07839C1E0
783DC1E0781DC1E0F01F80F0F01F80F0F01F80F0>28 20 -1 0 31]119 dc[ 03C01E07800E0F000F0F00079E0003FC0001F80001F00000F00001F80003F80003FC00079E000F
0F001E0F003E07807C03C07801E0>20 20 0 0 21]120 dc[<7C00007E00007F00004780000380
0003C00001C00001C00000E00000E00001F00001F00003B00003B80003B800073800073C000F1C
000F1C000E1E001E1E001E0F003C0F003C0F007C0780780780780780F003C0F003C0>18 29 -1
9 21]121 dc[ 7FFE7FFF7FFF7FFF>16 20 -1 0 20]122 dc dfend /fh df[<70F8F8F870000000000070F8F8
F8F8F8F8F8F8F8F8F8F8F8F8F8F870>5 28 -9 0 24]33 dc[<3018783CF83EF83EF83EF83EF8
3EF83EF83EF83EF83EF83E783C2008>15 14 -4 -15 24]34 dc[<0C18001E3C001E3C001E3C00
1E3C001E3C001E3C007FFFC0FFFFE0FFFFE07FFFC00F1E000F1E000F1E000F1E000F1E000F1E00
7FFFC0FFFFE0FFFFE07FFFC0078F00078F00078F00078F00078F00078F00030600>19 28 -2 0
24]35 dc[<1803803C07C03E07C03E0FE01E0FE01F0FE01F0FE00F0FE00F8FE00F87C00787C007
C38007C00003C00003E00003E00001E00001F00001F00000F00000F80000F800007800387C007C
7C007C3C00FE3E00FE3E00FE1E00FE1F00FE1F00FE0F00FE0F807C0F807C0780380300>19 36
-2 4 24]37 dc[<70F8FC7E3E1F0F0F0F1F3F3F3E1C>8 14 -7 -14 24]39 dc[<387CFEFEFE7C
38>7 7 -8 0 24]46 dc[<7FFEFFFFFFFF7FFE03C003C003C003C003C003C003C003C003C003C0
03C003C003C003C063C0FBC0FFC0FFC03FC00FC007C003C001C001C0>16 28 -4 0 24]49 dc[<
7FFFE0FFFFE0FFFFE07FFFE03E01E01F81E00FC00007E00001F00000F800007C00003E00001F00
000F800007C00003C00003E00001E00001E07001E0F801E0F803E0F807C0FC1FC07FFF803FFF00
1FFE0007F800>19 28 -2 0 24]50 dc[<387CFEFEFE7C38000000000000387CFEFEFE7C38>7
20 -8 0 24]58 dc[<03800007C00007C00007C000038000000000000000000000000000000000
03800003C00003C00003C00003C00003E00003F00001F80000FE00007F00703F80F80F80F80780
F81F80FFFF007FFF003FFE000FF000>17 28 -3 0 24]63 dc[<01F80003FE000FFF000FFF801F
87C03E03E07C01E07C01E07801E0F801E0F80000F00000F00000F00000F00000F00000F00000F8
0000F801E07801E07C01E07C03E03E03E01F87E00FFFE00FFFE003FFE001F8E0>19 28 -2 0 24
]67 dc[ 001FFF001FFF001FFF001FFF001E0F001E0F001E0F001E00001E00F01E00F01E00F01E00F0FFFF
F0FFFFF0FFFFF0FFFFF0>20 28 -1 0 24]70 dc[<7F8FF0FFDFF8FFDFF87F8FF01E03C01E03C0
1E03C01E03C01E03C01E03C01E03C01E03C01E03C01FFFC01FFFC01FFFC01FFFC01E03C01E03C0
1E03C01E03C01E03C01E03C01E03C07F8FF0FFDFF8FFDFF87F8FF0>21 28 -1 0 24]72 dc[<7F
FF80FFFFC0FFFFC07FFF8001E00001E00001E00001E00001E00001E00001E00001E00001E00001
E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E0007FFF80FFFFC0FF
FFC07FFF80>18 28 -3 0 24]73 dc[<1FF0003FF8007FFC00FFFE00F83F00F80F00700F00000F
00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F
00000F00000F00000F0001FFE003FFE003FFE001FFE0>19 28 -2 0 24]74 dc[<7F87F0FFCFF8
FFCFF87F87F01E07C01E07801E0F801E0F001E1F001F1E001F3E001FBC001FFC001FFC001FF800
1FF8001EF0001EF8001E7C001E3C001E3E001E1F001E0F801E0F807F8FF0FFDFF8FFDFF87F8FF0
>21 28 -1 0 24]75 dc[ 71E03CF9E03CF9E03CF9E03CD9E03DDDE03DDDE03DDDE03DDDE03DDDE03DDDE03D8DE03D8DE03D
8DE03D8DE0FF8FF8FF8FF8FF07F8FF07F8>21 28 -1 0 24]77 dc[<7F8FC0FFCFC0FFDFC07F9F
C01E1BC01E1BC01E3BC01E3BC01E3BC01E3BC01E3BC01E73C01E73C01E73C01E73C01E73C01E73
C01EE3C01EE3C01EE3C01EE3C01EE3C01EC3C01EC3C07FCFF0FFDFF8FF9FF87F8FF0>21 28 -1
0 24]78 dc[<0FF8003FFE007FFF007FFF007C1F00F80F80F00780F00780F00780F00780F00780
F00780F00780F00780F00780F00780F00780F00780F00780F00780F00780F00780F80F807C1F00
7FFF007FFF003FFE000FF800>17 28 -3 0 24]79 dc[ 00001E00001E00001E00001E00001FFE001FFF001FFFC01FFFC01E07E01E01E01E01F01E00F01E
00F01E00F01E00F01E01F01E01E01E07E0FFFFC0FFFFC0FFFF00FFFE00>20 28 -1 0 24]80 dc
[<7F80F0FFC1F8FFC3FC7F87FC1E07BC1E07BC1E07801E07801E07801E07801E0F801E1F801FFF
001FFE001FFF001FFF801E1F801E07C01E03C01E03C01E03C01E03C01E07C01E1F807FFF80FFFF
00FFFC007FF800>22 28 -1 0 24]82 dc[ 7001E00001E00001E00003E00007C0007FC007FF801FFF003FFC007FC0007C0000F80000F00000
F00780F00780F807807C1F807FFF803FFF801FFF8007F380>19 28 -2 0 24]83 dc[<07FF8007
FF8007FF8007FF8000780000780000780000780000780000780000780000780000780000780000
7800007800007800007800007800007800F07878F07878F07878F07878FFFFF8FFFFF8FFFFF87F
FFF8>21 28 -1 0 24]84 dc[<00F80000F80001FC0001FC0001DC0001DC0001DC0003DE0003DE
0003DE00038E00078F00078F00078F00078F000707000F07800F07800F07800F07801E03C01E03
C01E03C01E03C0FF8FF8FF8FF8FF8FF8FF8FF8>21 28 -1 0 24]86 dc[<0F07800F8F800F8F80
0F8F800D8D801DDDC01DDDC01DDDC01DDDC01DDDC01DDDC01DDDC01DDDC03DFDE03DFDE03CF9E0
3CF9E03C01E03C01E03C01E03C01E03C01E07800F07800F0FF07F8FF07F8FF07F8FF07F8>21 28
-1 0 24]87 dc[<0FE1F81FFBF83FFFF87FFFF8FC3F80F80F80F00780F00780FC07807FFF803F
FF801FFF8007FF800007803807807C1F807FFF007FFE003FFC001FF000>21 20 -2 0 24]97 dc
[<073F000FFFC00FFFE00FFFF00FE3F80FC0F80F807C0F807C0F003C0F003C0F003C0F003C0F00
7C0F807C0F80F80FE1F80FFFF00FFFE00FFFC00F3F000F00000F00000F00000F00007F0000FF00
00FF00007F0000>22 28 0 0 24]98 dc[<01F80007FE001FFF003FFF803F07807C07C07803C0
F803C0F00000F00000F00000F00000F800007800007C07003F0F803FFF801FFF8007FF0001FE00
>18 20 -3 0 24]99 dc[<03F3F80FFBFC1FFFFC3FFFF87E1FC07C0FC0F807C0F807C0F003C0F0
03C0F003C0F003C0F803C0F807C07C07C07F0FC03FFFC01FFFC00FFFC003F3C00003C00003C000
03C00003C0001FC0003FC0003FC0001FC0>22 28 -1 0 24]100 dc[<01FC0007FF000FFF801F
FFC03F87C07E03E07801E0F801E0FFFFE0FFFFE0FFFFE0FFFFE0F801E07803E07C03C03F0FC01F
FF800FFF0007FE0001F800>19 20 -2 0 24]101 dc[<7FFF807FFF807FFF807FFF8001E00001
E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E000FFFFC0FFFFC0FF
FFC07FFFC001E00001E00001E1C001F3E000FFE0007FE0003FC0000F80>19 28 -1 0 24]102
dc[<03FE000FFF803FFFE07FFFF07E03F0F800F8F00078F00078F800F8FC01F87FFFF03FFFE01F
FFC03FFF003C00003C00003DF0003FFC003FFE001FFF001F1F003E0F803C07803C07803C07803E
0F801F1F701FFFF80FFFF807FFF801F1F0>21 31 -1 11 24]103 dc[<7FE1FCFFF3FEFFF3FE7F
E1FC0F01E00F01E00F01E00F01E00F01E00F01E00F01E00F01E00F01E00F81E00F81E00FE3E00F
FFE00FFFC00FFF800F3F000F00000F00000F00000F00007F0000FF0000FF00007F0000>23 28 0
0 24]104 dc[ 0001E00001E00001E00001E00001E0007FE000FFE000FFE0007FE0000000000000000000000000
0001C00003E00003E00003E00001C000>18 29 -3 0 24]105 dc[<3FC07FE0FFF0FFF8F87C70
3E001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E
001E0FFE1FFE1FFE0FFE0000000000000000001C003E003E003E001C>15 39 -2 10 24]106 dc
[ 000F7E000F3F000F1F800F7FF80F7FF80F7FF80F7FF80F00000F00000F00000F0000FF0000FF00
00FF0000FF0000>22 28 0 0 24]107 dc[<7FFFE0FFFFF0FFFFF07FFFE000F00000F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F0007FF000FFF000FFF0007FF000>20 28 -2 0 24]108 dc[<7F8F8F
80FFDFDFC0FFDFDFC07F9F9F801E1E1E001E1E1E001E1E1E001E1E1E001E1E1E001E1E1E001E1E
1E001E1E1E001E1E1E001E1E1E001F1F1E001F9F9E007FFFFE00FFFFFE00FFFDFC007EF8F800>
26 20 1 0 24]109 dc[<7FE1FCFFF3FEFFF3FE7FE1FC0F01E00F01E00F01E00F01E00F01E00F
01E00F01E00F01E00F01E00F81E00F81E00FE3E07FFFE0FFFFC0FFFF807F3F00>23 20 0 0 24]
110 dc[<01F0000FFE001FFF003FFF803E0F807C07C07803C0F803E0F001E0F001E0F001E0F001
E0F001E07803C07C07C03E0F803FFF801FFF000FFE0001F000>19 20 -2 0 24]111 dc[<7FE0
00FFF000FFF0007FE0000F00000F00000F00000F00000F00000F00000F3F000FFFC00FFFE00FFF
F00FE3F80FC0F80F807C0F807C0F003C0F003C0F003C0F003C0F007C0F807C0F80F80FE1F87FFF
F0FFFFE0FFFFC07F3F00>22 30 0 10 24]112 dc[<003FFC003FFC003FFC003FFC0003C00003
C00003C00003C00003C00003C007E3C00FFBC01FFFC03FFFC07E1FC07C0FC0F807C0F807C0F003
C0F003C0F003C0F003C0F807C0F807C07C0FC07E1FC03FFFC01FFFC00FFFC003F3C0>22 30 -2
10 24]113 dc[<7FFF00FFFF80FFFF807FFF0003C00003C00003C00003C00003C00003C00003C0
0003E00003E00003F00003F07003FCF87FFFF8FFFFF8FFDFF07FC7E0>21 20 -1 0 24]114 dc[
00F00000F00F00F80F00FFFF007FFF003FFF000FFF00>17 20 -3 0 24]115 dc[<007E0000FF
0001FF8001FFC003E3C003C3E003C1E003C1E003C1E003C0C003C00003C00003C00003C00003C0
0003C000FFFFC0FFFFC0FFFFC07FFFC003C00003C00003C00003C00001C000>19 25 -1 0 24]
116 dc[<03FDFC07FFFE0FFFFE0FFFFC0F07E00F01E00F01E00F01E00F01E00F01E00F01E00F01
E00F01E00F01E00F01E00F01E07F0FE0FF1FE0FF1FE07F0FE0>23 20 0 0 24]117 dc[<00F800
01FC0001FC0001FC0001DC0003DE0003DE0003DE00038E00078F00078F00078F000F8F800F0780
0F07800F07807F8FF0FF8FF8FF8FF87F8FF0>21 20 -1 0 24]118 dc[<0F8F800F8F800FDF80
0FDF800DDD801DDDC01DDDC01DDDC01DFDC01DFDC01DFDC01CF9C01C01C03C01E03C01E03C01E0
FFDFF8FFDFF8FFDFF8FFDFF8>21 20 -1 0 24]119 dc[<1E00003F80007FC0007FE0007FE000
7DF00000F00000F00000780000780000780000FC0000FC0000FC0001DC0001DE0001CE0003CE00
03CE0003CF00078F00078F000787800F87800F07800F07807F8FF0FF8FF8FF8FF87F8FF0>21 30
-1 10 24]121 dc dfend /fi df[<7FF9FFF0007FF9FFF0007FF9FFF0000FC03F00000FC03F00
000FC03F00000FC03F00000FC03F00000FC03F00000FC03F00000FC03F00000FC03F00000FC03F
00000FC03F00000FC03F00000FC03F00000FC03F0000FFFFFFF800FFFFFFF800FFFFFFF8000FC0
3F00000FC03F00000FC03F00000FC03F00000FC07F07C00FC0FF07C00FC0FF0FE007E0FF8FE003
F87FCFE001FFFFFFE0007FFDFFC00007F83F80>35 32 0 0 31]11 dc[<7FF9FFE07FF9FFE07F
F9FFE00FC03F000FC03F000FC03F000FC03F000FC03F000FC03F000FC03F000FC03F000FC03F00
0FC03F000FC03F000FC03F000FC03F000FC03F00FFFFFF00FFFFFF00FFFFFF000FC1FF000FC000
000FC000000FC03C000FC07E000FC07E0007C07E0007E07E0003F83E0001FFFE00003FFC000007
F800>27 32 0 0 29]12 dc[<100038003C001E000E0007000700078003803F807F80FF80FF80
FF00FF007E003C00>9 17 -3 9 15]44 dc[12 5 -1 -8 17]45 dc[
<3C7EFFFFFFFF7E3C>8 8 -3 0 15]46 dc[<01FC0007FF001FFFC01F8FC03F07E07E03F07E03
F07E03F0FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03F8FE03
F8FE03F87E03F07E03F07E03F03F07E01F8FC01FFFC007FF0001FC00>21 29 -2 0 26]48 dc[<
FFFF80FFFF80FFFF8003F00003F00003F00003F00003F00003F00003F00003F00003F00003F000
03F00003F00003F00003F00003F00003F00003F00003F00003F00003F000F3F000FFF000FFF000
0FF00001F000007000>17 29 -4 0 26]49 dc[ 01E00F00E00780E003C0E001E00000F00000F800007E00003F00003F80001FC0001FC0001FE018
0FE07E0FE0FF1FE0FF1FE0FF1FC0FF3FC07E7F807FFF001FFE0007F000>19 29 -3 0 26]50 dc
[<03FC000FFF003FFFC07C0FE07E07F0FF07F0FF07F8FF07F8FF07F87E07F83C07F80007F0000F
E0000FC001FF8001FC0001FF00003F80001FC01F1FC01F8FE03F8FE03F8FE03F8FE03F8FE01F1F
C00FFF8007FF0001FC00>21 29 -2 0 26]51 dc[<01FFFE01FFFE01FFFE000FC0000FC0000FC0
000FC0000FC0FFFFFEFFFFFEFFFFFEF007C07807C03C07C01E07C00E07C00F07C00787C003C7C0
01E7C001E7C000F7C0007FC0003FC0001FC0001FC0000FC00007C00003C0>23 29 -1 0 26]52
dc[<07F0001FFC003FFF007C3F80FE1FC0FE0FC0FE0FE0FE0FE07E0FE03C0FE0000FE0000FE038
0FC0380FC03E1F803FFF003FFE003BF8003800003800003800003E00003FE0003FF8003FFE003F
FF003FFF803FFF80300380>19 29 -3 0 26]53 dc[<01FC0007FF800FFFC01F87E03E03F03E03
F07E03F87E03F87E03F8FE03F8FE03F8FE03F8FE03F8FF03F0FF03F0FF87E0FFFFC0FEFF80FE3E
007E00007E03E07E07F03F07F01F07F01F87F00FE3E007FFE001FFC0003F00>21 29 -2 0 26]
54 dc[<03E00007F00007F00007F00007F00007F00007F00007F00007F00003F00003F00003F0
0001F00001F00000F80000F800007800003C00003C00E01E00E00F00E00780F003C0FFFFC07FFF
E07FFFF07FFFF87FFFF87FFFF8700000>21 30 -3 0 26]55 dc[<03FC000FFF803FFFC03F03E0
7C01F0F800F0F800F8F800F8F800F8F803F8FC07F87C1FF83E7FF01FFFE00FFFE00FFFC00FFF00
1FFF803FF7C03FE3C03F81E03E01E03C01E03C01E01C03E01E07C00FFF8007FF0001FC00>21 29
-2 0 26]56 dc[<07F0001FFC003FFF003E1F807F0FC07F07E07F07E07F03F03E03F00003F003
E3F80FFBF81FFFF83F0FF87E07F87E07F8FE03F8FE03F8FE03F8FE03F8FE03F0FE03F0FE03F07E
03E07E03E03F07C01FFF8007FF0001FC00>21 29 -2 0 26]57 dc[<3C7EFFFFFFFF7E3C000000
003C7EFFFFFFFF7E3C>8 20 -3 0 15]58 dc[ 00070001FC00038003F800038003F80003C007F80001FFFFF00001FFFFF00000FFFFE00000E00F
E00000F01FE00000701FC00000703FC00000383F800000383F8000003C7F8000001C7F0000001C
FF0000000EFE0000000EFE0000000FFE00000007FC00000007FC00000003F800000003F8000000
03F800000001F000000001F000000000E00000>35 31 -2 0 40]65 dc[ FFFFF007E007F807E003FC07E001FC07E001FE07E001FE07E001FE07E001FE07E001FE07E001FC
07E001FC07E003F807E00FF007FFFFE007FFFF8007FFFFE007E00FF007E007F807E003F807E003
FC07E003FC07E003FC07E003FC07E003FC07E003F807E007F0FFFFFFE0FFFFFFC0FFFFFE00>31
31 -2 0 37]66 dc[<0007FC00003FFF8000FFFFC003FE01F007F800780FE000381FC0001C3F80
001C3F80000E7F80000E7F00000E7F000000FF000000FF000000FF000000FF000000FF000000FF
000000FF0000007F00000E7F00000E7F80000E3F80001E3F80001E1FC0003E0FE0007E07F800FE
03FE03FE00FFFFDE003FFF0E0007FC06>31 31 -3 0 38]67 dc[ FFF00007F00FF80007F001FC0007F000FE0007F0007F0007F0007F0007F0003F8007F0003F8007
F0003F8007F0003FC007F0003FC007F0003FC007F0003FC007F0003FC007F0003FC007F0003FC0
07F0003FC007F0003FC007F0003F8007F0003F8007F0003F8007F0007F0007F0007F0007F000FE
0007F001FC0007F00FF800FFFFFFF000FFFFFFC000FFFFFE0000>34 31 -2 0 40]68 dc[ FFF0FFFFFFF0FFFFFFF007F007F807F001F807F0007807F0007807F0003807F0003807F0003807
F0701C07F0701C07F0701C07F0700007F1F00007FFF00007FFF00007FFF00007F1F00007F07070
07F0707007F0707007F0707007F000F007F000F007F001E007F003E007F007E0FFFFFFE0FFFFFF
E0FFFFFFE0>30 31 -2 0 34]69 dc[ 0007F0000007F0000007F0000007F0700007F0700007F0700007F0700007F1F00007FFF00007FF
F00007FFF00007F1F00007F0700007F0707007F0707007F0707007F0007007F000F007F000F007
F001E007F003E007F007E0FFFFFFE0FFFFFFE0FFFFFFE0>28 31 -2 0 33]70 dc[<0007FC0600
003FFF9E0000FFFFFE0003FE01FE0007F800FE000FE000FE001FC000FE003F8000FE003F8000FE
007F8000FE007F0000FE007F007FFFE0FF007FFFE0FF007FFFE0FF00000000FF00000000FF0000
0000FF00000000FF000000007F00000E007F00000E007F80000E003F80001E003F80001E001FC0
003E000FE0007E0007F800FE0003FE03FE0000FFFFDE00003FFF0E000007FC0600>35 31 -3 0
41]71 dc[ 0007F000FE0007F000FE0007F000FE0007F000FE0007F000FE0007F000FE0007F000FE0007F000
FE0007FFFFFE0007FFFFFE0007FFFFFE0007F000FE0007F000FE0007F000FE0007F000FE0007F0
00FE0007F000FE0007F000FE0007F000FE0007F000FE0007F000FE00FFFF9FFFF0FFFF9FFFF0FF
FF9FFFF0>36 31 -2 0 41]72 dc[ 07F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F000
07F00007F00007F00007F00007F00007F00007F000FFFF80FFFF80FFFF80>17 31 -1 0 20]73
dc[ 07F80007F00FF00007F01FE00007F01FE00007F03FC00007F87F800007FCFF000007FEFF000007
FFFE000007F7FC000007F3F8000007F1F8000007F0F8000007F07C000007F01E000007F00F0000
07F007800007F003E00007F001F00007F000F80007F0007C00FFFF81FFE0FFFF81FFE0FFFF81FF
E0>36 31 -2 0 41]75 dc[ 8007F003C007F003C007F001C007F001C007F001C007F001C007F0000007F0000007F0000007F0
000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007
F0000007F00000FFFFC000FFFFC000FFFFC000>26 31 -2 0 31]76 dc[ 07FFF8FFF83F07FFF807003F003F0007003F003F0007007F803F0007007F803F000700FDC03F00
0700FDC03F000700FDC03F000701F8E03F000701F8E03F000703F0703F000703F0703F000707E0
383F000707E0383F000707E0383F00070FC01C3F00070FC01C3F00071F800E3F00071F800E3F00
073F00073F00073F00073F00073F00073F00077E0003BF00077E0003BF0007FC0001FF0007FC00
01FF00FFFC0001FFF8FFF80000FFF8FFF80000FFF8>45 31 -2 0 50]77 dc[ 001E00FFF8003E000700003E000700007E00070000FE00070001FE00070003FE00070003FE0007
0007FE0007000FFE0007001FEE0007003FEE0007003FCE0007007F8E000700FF0E000701FF0E00
0701FE0E000703FC0E000707F80E00070FF00E00071FF00E00071FE00E00073FC00E00077F800E
0007FF000E0007FF000E0007FE000E00FFFC01FFF0FFF801FFF0FFF001FFF0>36 31 -2 0 41]
78 dc[<001FF80000FFFF0001FFFF8007F81FE00FF00FF01FC003F83FC003FC3F8001FC7F8001
FE7F8001FE7F0000FEFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
00FFFF0000FF7F0000FE7F0000FE7F8001FE3F8001FC1FC003F81FC003F80FE007F007F81FE001
FFFF8000FFFF00001FF800>32 31 -3 0 39]79 dc[ F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007FFFE00
07FFFF8007FFFFE007F00FF007F007F807F003F807F003FC07F003FC07F003FC07F003FC07F003
FC07F003FC07F003F807F007F807F00FF0FFFFFFE0FFFFFF80FFFFFE00>30 31 -2 0 36]80 dc
[<000001F0000003FC000003FC000007FE000007FE00000FFF00000FFF00000FFF00000F83001F
FF0300FFFF0001FFFF8007FC3FE00FFC3FF01FDFFBF83FCFF3FC3F87C1FC7F8001FE7F0000FE7F
0000FEFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF
7F0000FE7F8001FE7F8001FE3F8001FC1FC003F81FC003F80FE007F007F81FE001FFFF8000FFFF
00001FF800>32 40 -3 9 39]81 dc[ F07007F01FE07007F01FE00007F01FE00007F01FC00007F01FC00007F01FC00007F01FC00007F0
3F800007F07F000007FFFE000007FFFF000007FFFFC00007F01FE00007F00FF00007F007F00007
F007F80007F007F80007F007F80007F007F80007F007F80007F007F00007F00FF00007F01FE000
FFFFFFC000FFFFFF0000FFFFF80000>36 31 -2 0 39]82 dc[ 00F8F00078E0007CE0007CE0007C00007C0000FC0001FC001FFC03FFF80FFFF81FFFF03FFFE07F
FFC07FFF00FFF800FF0000FC0000F80038F80038F800787800787C00F83E03F81FFFF80FFF3803
FC18>22 31 -3 0 29]83 dc[<07FFFFC007FFFFC007FFFFC0000FE000000FE000000FE000000F
E000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000
0FE000000FE000E00FE00EE00FE00EE00FE00EE00FE00EF00FE01EF00FE01E700FE01C780FE03C
7E0FE0FC7FFFFFFC7FFFFFFC7FFFFFFC>31 30 -2 0 36]84 dc[<0007FE0000001FFF8000007F
FFE00000FF03F00001FC00F00003F800780003F800380007F0003C0007F0001C0007F0001C0007
F0001C0007F0001C0007F0001C0007F0001C0007F0001C0007F0001C0007F0001C0007F0001C00
07F0001C0007F0001C0007F0001C0007F0001C0007F0001C0007F0001C0007F0001C0007F0001C
0007F0001C0007F0001C00FFFF83FFE0FFFF83FFE0FFFF83FFE0>35 31 -2 0 40]85 dc[<0000
7000000000F800000000F800000001FC00000001FC00000003FE00000003FE00000003FE000000
07FF00000007F70000000FF78000000FE38000001FE3C000001FC1C000001FC1C000003F80E000
003F80E000007F80F000007F00700000FF00780000FE00380000FE00380001FC001C0001FC001C
0003FC001E0003F8000E0007F8000F0007F0000700FFFF007FF8FFFF007FF8FFFF007FF8>37 31
-1 0 40]86 dc[<0001C0007000000003C0007800000003E000F800000007E000FC00000007F0
01FC00000007F001FC0000000FF001FE0000000FF803FE0000000FF803FE0000001FF803FF0000
001FDC07F70000003FDC07F78000003F9E0FF38000003F8E0FE38000007F8E0FE1C000007F0F1F
E1C000007F071FC1C00000FE071FC0E00000FE03BF80E00001FE03BF80F00001FC03BF80700001
FC01FF00700003FC01FF00780003F801FF00380003F800FE00380007F000FE001C0007F001FC00
1C000FF001FC001E00FFFF1FFFC1FFE0FFFF1FFFC1FFE0FFFF1FFFC1FFE0>51 31 -1 0 54]87
dc[ 1FE00000781FE000003C3FC000001E7F8000000E7F8000000FFF00000007FE00000003FE000000
03FC00000007F800000007F00000000FF00000001FF80000003FFC0000003FDE0000007F8E0000
00FF0F000000FF07800001FE03C00003FC01C00003F801E000FFFF0FFF80FFFF0FFF80FFFF0FFF
80>35 31 -2 0 40]88 dc[<003FFFE000003FFFE000003FFFE0000001FC00000001FC00000001
FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000000
03FC00000003FE00000007FF0000000FF70000000FF38000001FE3C000003FC1C000003FC0E000
007F80F00000FF00700000FF00380001FE003C0003FC001C0003FC000E0007F8000F00FFFF007F
F8FFFF007FF8FFFF007FF8>37 31 -1 0 40]89 dc[<0FE0FE3FF9FE7FFDFE7E0FF0FC03F0FC03
F0FC03F0FC03F07E03F03FC3F00FFFF001FFF00E03F01F03F03F83F03F83F03F8FE01FFFC00FFF
8003FC00>23 20 -1 0 25]97 dc[<1C0FE0001E3FF8001FFFFC001FE0FE001FC07F001F803F00
1F803F801F803F801F803F801F803F801F803F801F803F801F803F801F803F801F803F001F803F
001FE07E001FFFFC001FFFF8001F8FF0001F8000001F8000001F8000001F8000001F8000001F80
00001F8000001F8000001F800000FF800000FF800000FF800000>25 32 -1 0 29]98 dc[<01FC
0007FF001FFF803F83C03F00E07F00E07E0000FE0000FE0000FE0000FE0000FE0000FE07007E0F
807E1FC03F1FC03F9FC01FFF8007FF0001FC00>19 20 -2 0 23]99 dc[<03F0FF800FFEFF801F
FFFF803F07FC007E01FC007E00FC00FE00FC00FE00FC00FE00FC00FE00FC00FE00FC00FE00FC00
FE00FC00FE00FC007E00FC007F00FC003F83FC001FFFFC000FFFFC0003F8FC000000FC000000FC
000000FC000000FC000000FC000000FC000000FC000000FC000000FC000007FC000007FC000007
FC00>25 32 -2 0 29]100 dc[<01FF0007FFC01FFFF03FE0F03F80787F00387E0000FE0000FE
0000FE0000FFFFF8FFFFF8FFFFF8FE01F87F01F87F03F03F87F01FFFE007FFC001FF00>21 20
-1 0 24]101 dc[<7FFC007FFC007FFC000FC0000FC0000FC0000FC0000FC0000FC0000FC0000F
C0000FC0000FC0000FC0000FC0000FC0000FC000FFFC00FFFC00FFFC000FC0000FC0000FC0000F
C0000FC3E00FC3E00FC7F007E7F003F0F001FFF0007FE0001FC0>20 32 -1 0 16]102 dc[<01
FF000FFFE03FFFF87F01FC7C007CF8003EF8003EF8003E7C00FE7FFFFC1FFFFC1FFFF83FFFF03F
FF803800003800003BFC001FFF001FFF803F0FC03E07C07E07E07E07E07E07E07E07E03E07DC3F
0FFE1FFFFE0FFFFE03FC7C>23 30 -1 10 26]103 dc[ 1F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E
001FC07E001FC07E001FF0FE001FBFFC001F9FF8001F87F0001F8000001F8000001F8000001F80
00001F8000001F8000001F8000001F8000001F800000FF800000FF800000FF800000>26 32 -2
0 29]104 dc[ 1F80FF80FF80FF80000000000000000000001F003F803F807F807F803F803F801F00>12 33 -2
0 15]105 dc[ 1FDFC0001FFF80001FFF00001FFE00001FBE00001F9F00001F8F80001F87C0001F81F0001F83FF
001F83FF001F83FF001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80
00001F800000FF800000FF800000FF800000>25 32 -1 0 28]107 dc[ 801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80
1F801F801F801F801F80FF80FF80FF80>12 32 -2 0 15]108 dc[ C0FFF1FFE3FFC01F803F007E001F803F007E001F803F007E001F803F007E001F803F007E001F80
3F007E001F803F007E001F803F007E001F803F007E001F803F007E001F803F007E001FC03F807E
001FC03F807E001F707FE0FE00FF3FFE7FFC00FF1FFC3FF800FF07F00FE000>42 20 -2 0 47]
109 dc[ 001F807E001F807E001F807E001F807E001F807E001FC07E001FC07E001F70FE00FF3FFC00FF1F
F800FF07F000>26 20 -2 0 29]110 dc[<01FF0007FFC01FFFF03F83F83F01F87E00FC7E00FC
FE00FEFE00FEFE00FEFE00FEFE00FEFE00FE7E00FC7E00FC3F01F83F83F81FFFF007FFC001FF00
>23 20 -1 0 26]111 dc[ 001F8000001F8000001F8FE0001FBFF8001FFFFC001FE0FE001FC07F001F807F001F803F801F80
3F801F803F801F803F801F803F801F803F801F803F801F803F801F807F001F807F001FE0FE00FF
FFFC00FFFFF800FF8FF000>25 29 -1 9 29]112 dc[ 80001F80001F80001F80001F80001F80001F80001F83801F87C01FCFE01FCFE01FEFE0FFFFC0FF
7F80FF3F00>19 20 -1 0 22]114 dc[ 7FF8FFE0FC00F00EF00E781E7FFE3FFE0FE6>16 20 -2 0 21]115 dc[<03F007F80FFC1F8C1F
8E1F8E1F8E1F8E1F801F801F801F801F801F801F801F801F80FFFCFFFCFFFC3F800F800F800780
07800380038003800380>15 29 -1 0 20]116 dc[<03F87FC007FE7FC00FFFFFC01F81FE001F
80FE001F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E001F807E00
1F807E001F807E001F807E00FF83FE00FF83FE00FF83FE00>26 20 -2 0 29]117 dc[<001C00
00003E0000003E0000007F0000007F000000FF800000FF800000FF800001F9C00001F9C00003F9
E00003F0E00007F0F00007E0700007E070000FC038000FC03800FFF0FF80FFF0FF80FFF0FF80>
25 20 -1 0 28]118 dc[<007803C000007803C00000FC07E00000FC07E00000FC07E00001FE0F
F00001FE0FF00001FE0FF00003F71FB80003F71F380007F7BF3C0007E3BE1C0007E3BE1C000FE3
FE1E000FC1FC0E000FC1FC0E001F80FC0700FFE7FF3FE0FFE7FF3FE0FFE7FF3FE0>35 20 -1 0
38]119 dc[ 7F8000003F0000007E000000FE000000FF000001FF800003F3C00007F1E0000FE1E000FFF3FF00
FFF3FF00FFF3FF00>25 20 -1 0 28]120 dc[<1E0000007F8000007FC00000F1E00000E07000
00FE780000FE3800007C380000001C0000001C0000003E0000003E0000007F0000007F000000FF
800000FF800000FF800001F9C00001F9C00003F9E00003F0E00007F0F00007E0700007E070000F
C038000FC03800FFF0FF80FFF0FF80FFF0FF80>25 29 -1 9 28]121 dc[ C07F07C03F83C03FC1E01FE1E00FE0E007F0E007F8E003FC0071FC0070FE0070FF00787F80383F
803E1FC03FFFE03FFFE03FFFE0>19 20 -1 0 23]122 dc[25 3
0 -11 26]123 dc dfend /fj df[<401000E03800701C00380E001806000C03000C0300060180
0601803E0F807F1FC07E1F807E1F803E0F801C0700>18 15 -6 -17 23]34 dc[<40E07038180C
0C06063E7F7E7E3E1C>8 15 -7 -17 13]39 dc[<030006000E000C001C001800380038007000
7000700070007000F000F000F000F000F000F000F000F00070007000700078007800380038003C
003C001C001C000E000E000F0007000380038001C000C000E0007000380018000E0007>16 46
-4 12 18]40 dc[ 380038003C003C001C001C001E001E001E000E000E000E000E000E000E000E000E000E000E000E
000E000E001C001C001C003800380030006000E000C0>15 46 -1 12 18]41 dc[<38007C00FC
007E007C003800000000000000000000000C000C000C000E00060006000700038003C001E000F0
0078007C383E7C3E7C3E3C1E381E1C3E0FFC03F0>15 32 -6 0 21]63 dc[ 1F000FC006000F8006000F8003000F8003000F8001800F8001801F8000FFFF0000FFFF0000601F
0000601F0000301F0000303F0000183E0000183E00000C3E00000C3E0000063E0000067E000003
7C0000037C000001FC000001FC000000FC000000F80000007800000078000000380000003800>
30 31 -2 0 34]65 dc[ 03E003F003E001F001F001F801F001F001F001F001F003F001F003E001F007E000FFFFC000FFFF
0000F80FC000F803E000F801F000F801F8007C00F8007C00FC007C00FC007C00FC007C00FC007C
00FC003E00F8003E01F007FFFFE007FFFF80>30 31 -1 0 32]66 dc[ 07E003E001E003E000E003E0007003E0003003E0003003E0001801F0001801F0181801F0180C01
F0180001F0180001F0380000FFFC0000FFFC0000F83C0000F80C0000F80C0000F80C18007C0618
007C001C007C001C007C001C007C001C007C001C003E003C003E007C07FFFFFC07FFFFFC>30 31
-1 0 31]69 dc[ 0003E0000001F0000001F0180001F0180001F0180001F0180001F0380000FFFC0000FFFC0000F8
3C0000F80C0000F80C0000F80C18007C0618007C001C007C001C007C001C007C001C007C001C00
3E003C003E007C07FFFFFC07FFFFFC>30 31 -1 0 30]70 dc[<003F808001FFF18003F03B8007
C00FC00F0007C01F0007C03E0007C03E0007C07C0007C07C0003E07C0003E0FC00FFFCFC00FFFC
FC000000FC0000007E0000007E0000007E0000007E0000003E0000303F0000301F0000380F8000
380F80003807C0003803E0007801F0007800FC00FC003F03BC000FFF0C0001FC04>30 31 -5 0
36]71 dc[ 0003E003E00003E003E00001F001F00001F001F00001F001F00001F001F00001F001F00001F001
F00000FFFFF80000FFFFF80000F800F80000F800F80000F800F80000F800F800007C007C00007C
007C00007C007C00007C007C00007C007C00007C007C00003E003E00003E003E0007FFE3FFF007
FFE3FFF0>36 31 -1 0 34]72 dc[ 03E00001F00001F00001F00001F00001F00001F00000F80000F80000F80000F80000F80000F800
007C00007C00007C00007C00007C00007C00003E00003E0007FFF007FFF0>20 31 0 0 16]73
dc[ F0018001F000C001F000C001F0000001F0000001F0000000F8000000F8000000F8000000F80000
00F8000000F80000007C0000007C0000007C0000007C0000007C0000007C0000003E0000003E00
0007FFF80007FFF800>26 31 -1 0 28]76 dc[ 00F803E0000300F803E0000300FC03E0000300FC03E0000300F603E0000301E603E0000181E301
F0000181E301F0000181E181F0000181E0C1F0000183C0C1F0000183C061F00000C3C060F80000
C3C030F80000C3C030F80000C3C018F80000C78018F80000C7800CF8000067800C7C0000678006
7C00006780067C00006F00037C00006F00037C00006F0001FC00003F0001BE00003F0000FE0007
FE0000FFF007FE00007FF0>44 31 -1 0 42]77 dc[<007F000003FFC00007C1F0000F8078001F
003E003E001F003E001F807E000F807C0007C07C0007E0FC0007E0FC0003E0FC0003F0FC0003F0
FC0003F07E0001F87E0001F87E0001F87E0001F83E0001F83F0001F81F0001F01F0001F00F8001
F007C001E003C003E001E003C000F00780007C1F00001FFE000003F800>29 31 -5 0 35]79 dc
[ 000001F0000001F0000001F0000001F0000001FFFC0000FFFF0000F80FC000F803E000F801F000
F801F800F801F8007C00FC007C00FC007C00FC007C00FC007C00FC007C00F8003E00F8003E03F0
07FFFFE007FFFF80>30 31 -1 0 31]80 dc[<81F800EFFE00FE0F007803807003C07001C06001
E06001E06001E00001F00001F00001F00003F0001FE001FFE003FFC007FFC00FFF000FFC000FC0
000F80000F00000F00180F00180F001807003807803803C07C01E0FC00FFDC003F04>22 31 -3
0 25]83 dc[<3FFFF8001FFFF800007E0000003E0000003E0000003E0000003E0000003E000000
3E0000001F0000001F0000001F0000001F0000001F0000001F0000000F8000000F8000000F8000
000F8000000F8000C00F80306007C0306007C0386007C0187007C0183007C0383807C0383803E0
381E03E0F81FFFFFF81FFFFFF8>29 31 -5 0 33]84 dc[<00C000C0000000E000E0000000E000
E0000001F001F0000001F001F0000001F801F8000001F801F8000001FC01FC000001FC01FC0000
03F601F6000003E603E6000003E303E3000003E303E3000003E183E1800003E183E1800007E1C3
E0C00007C0C7E0C00007C0E7C0600007C067C0600007C077C0300007C037C0300007C03FC01800
0FC01FC018000F801F801C000F800F800C000F800F800E000F800F8006000F800F8007001F801F
800F80FFF8FFF83FF0FFF8FFF83FF0>44 31 -6 0 47]87 dc[<0FFFE0000007FFE00000007C00
0000003C000000003E000000003E000000003E000000003E000000003E000000001E000000001F
000000001F000000001F000000001F800000003F800000003EC00000007E600000007E70000000
7C30000000FC18000000F80C000000F80E000001F806000001F003000003F003800003F001C000
03E000C00007E000E00007E000F800FFFC03FF007FFC03FF80>33 31 -5 0 34]89 dc[<781E00
FC3F00FC3F00FC3F00FC3F00F83E00C03000C03000601800601800300C00380E001C07000E0380
060180>17 15 -7 -17 23]92 dc[<1F83C03FF7E07C3FB0F80F98F80F98F80798F807987C0780
3E07801F83C00FFFC001FFC00003C00003C00603C00F03C00F83C00F878007FF0001FC00>21 20
-2 0 23]97 dc[ 01F03C01F03C01F03C01F03C01F01E01E01F01E01FC3C01EFF801E3F001E00000F00000F00000F
00000F00000F00000F00000780000F80007F80003F8000078000>20 32 -4 0 25]98 dc[<0FC0
1FF03C18780CF806F800F000F000F000F800F800F800F80078007C0C3C1E1E1F0F1F07FE01FC>
16 20 -4 0 20]99 dc[<0F8FF03FEFF0783F80781F80F00F80F00780F00780F00780F00780F8
03C0F803C0F803C0F803C07803C07C03C03C01E01E03E00F07E007FDE001F1E00001E00000F000
00F00000F00000F00000F00000F00000780000F80007F80003F8000078>21 32 -4 0 25]100
dc[<07E0001FF8003E0C00780600F80300F00000F00000F00000F00000F80000FFFF80FFFF80F8
07807807807C07803C07801E0F000F0F0007FE0000F800>17 20 -3 0 20]101 dc[ F0001F00000F00000F00000F00000F00000F00000F000007800007800007800007800007800007
800003C00003C00003C0003FFC003FFC0003C00001E00001E00001E00001E00001E00000F0F000
F0F00078F8003CF8000FF00003E0>21 32 -1 0 14]102 dc[<03F8001FFF003C07C07001E070
00F0E00070E000707000787000783C00F01FFFF00FFFE00FFFC01FFF001E00001C00000C00000E
FC0007FF000783C00783E00F81E00F81F00F81F00781F007C0F003C1F601E1FF00FFFF003F0E>
24 30 0 10 23]103 dc[ 807807807807807807807807807807C07803C07803E07803F87803DFF003C7E003C00001E00001
E00001E00001E00001E00001E00000F00001F0000FF00007F00000F000>23 32 -1 0 25]104
dc[ C001C00000000000000000000001C003E003F003F001F000E0>12 31 -1 0 13]105 dc[ F8FFCFF81F07E00F07C00F07800F0F800F0F000F1F000F1E0007FE0007FE0007BC00079C00078C
0007860003C38003C1C003C1F003C3FE03C3FE03C00001E00001E00001E00001E00001E00001E0
0000F00001F0000FF00007F00000F000>23 32 -1 0 24]107 dc[ 000F000F000F0007800780078007800780078003C003C003C003C003C003C001E001E001E001E0
01E001E000F001F00FF007F000F0>12 32 -1 0 13]108 dc[ 07C00F007803C00F007803C00F007803C00F007803C00F007803C00F007803C007803C01E00780
3C01E007803C01E007803C01E007803C01E007C03E01E003E03F01E007E03F01E03FF83DC1E01F
CFF87FC003C3F01F80>37 20 -1 0 39]109 dc[ 0F00F00F00F00F00F007807807807807807807807807807807C07803C07807E0783FF8781FDFF0
03C7E0>23 20 -1 0 25]110 dc[<07E0001FFC003C1E00780F00F00780F003C0F003C0F003E0
F003E0F801F0F801F0F801F0F801F07801F03C01E03C01E01E03C00F878003FF0000FC00>20 20
-3 0 23]111 dc[ 0007800000078F800007BFE00007F0F00003E0780003C03C0003C03E0003C01F0003C01F0003C0
1F0001E00F8001E00F8001E00F8001E00F8001E00F8001E00F8000F00F0000F81F000FFE1E0007
F7FC0000F1F800>25 29 1 9 25]112 dc[ 0F00000F000007800007800007800007800007800007C30003C78007E7C03FF7C01FFF8003CF00
>18 20 -1 0 18]114 dc[ 003C0C1C0E1C0E0E0E07FE01F2>15 20 -2 0 18]115 dc[<1E003F8078C078C0786078607860
786078003C003C003C003C003C003C001E001E001E00FFF8FFF83E000F00070007000300030003
000180>13 28 -4 0 18]116 dc[<0FC7F81FF7F83C1FC03C0FC03C07C03C03C03C03C03C03C0
3C03C01E01E01E01E01E01E01E01E01E01E01E01E00F00F01F01F0FF0FF07F07F00F00F0>21 20
-3 0 25]117 dc[<03800003800003C00003C00003E00007E00007B00007B000079800079C000F
8C000F0E000F06000F03000F03001F01801E01801E03E0FFC7F8FFC7F8>21 20 -4 0 24]118
dc[<0300E0000700E0000780F0000780F00007C0F80007C1F80007E1FC000FE1EC000F31EE000F
31C6000F19C7000F1BC3000F0FC3801F0FC1801E07C1C01E07C0C01E0380E01E0780F0FF9FF3FC
FF9FF3FC>30 20 -4 0 33]119 dc[<3C0000007F000000E3800000C1800000F8C00000786000
000060000000300000003000000038000000380000003C0000003C0000003E0000007E0000007B
0000007B0000007980000079C00000F8C00000F0E00000F0600000F0300000F0300001F0180001
E0180001E03E000FFC7F800FFC7F80>25 29 0 9 24]121 dc[
44 2 -2 -11 45]124 dc dfend /fk df[<780F800000FC1FE00000F61E700000FF1F380000FF
9F380000738E1C000003801C000003C01E000003C01E000003C00E000001E00F000001E00F0000
01E00F000001E00F000001E007800000F007800000F007800000F007800000F007800000F003C0
00007803C000007803C000007803C000007803C000007803C000003C01E000003C01E00007FFFF
FF0003FFFFFF80003C01E000003E00F000001E00F000001E00F000001E00F000001E00F000000F
0E79C0000F1F7BE000071F3BE000038F39E00001FF1FE000007C0780>35 41 1 9 28]11 dc[<
78000000FC000000F6000000FF000000FB8000007380000003C0000003C0000003C0000001C00F
0001E01F8001E03CC001E03C6001E03C6000F03C6000F01E3000F01E0000F01E0000F01E000078
0F0000780F0000780F0000780F0000780780007C0780003C0780003C078003FFFFC003FFFFC000
3C0000001E0000001E0000001E0000001E0000000E00C0000F01E0000F01F0000701F00003C0F0
0001FFE000007F80>28 41 1 9 26]12 dc[<78000000FC000000F6000000FF000000FF800000
738000000380000003C0000003C0000001C0078001E00FC001E01E6001E01E3001E01E3001E01E
3000F00F1800F00F0000F00F0000F00F0000F00780007807800078078000780780007803C00078
03C0003C03C0003C03C007FFFFE003FFFFE0003C01E0001E01E0001E00F0001E00F0001E00F000
1E00F0000F0778000F0FF800070FF8000387F80001FFBC00007E3C>30 41 1 9 27]13 dc[<78
0F80000000FC1FE0000000F61E70000000FF1F38000000FF9F1C000000738E1C00000003801E00
000003C00E00000003C00F00000003C00F003C0001E00F007E0001E00F00F30001E00780F18001
E00780F18001E00780F18000F0078078C000F00780780000F003C0780000F003C0780000F003C0
3C00007803C03C00007803C03C00007801E03C00007801E01E00007801E01E00003C01E01E0000
3C01E01E0007FFFFFFFF0003FFFFFFFF00003C00F00000001E00F00000001E00F00000001E0078
0000001E00780000001E00780300000F03F80780000F07FC07C0000707DC07C0000383CE03C000
01FFC7FF8000007F01FE00>42 41 1 9 40]14 dc[<804000C06000603000301800180C000C06
000C06000603000603003B1D807F3F807F3F807F3F803E1F001C0E00>17 15 -8 -17 23]34 dc
[<60300000603000007038000030180000381C0000180C00001C0E00000C0600000E0700000603
00000703800003018000030180000381C000FFFFFFF8FFFFFFFC00603000007038000030180000
30180000381C0000180C0000180C00001C0E003FFFFFFF3FFFFFFE0003018000030180000381C0
000180C00001C0E00000C0600000E070000060300000703800003018000030180000381C000018
0C00001C0E00000C06>32 41 -5 9 37]35 dc[<00FF800007FFF0000F807C001C000E00380003
0078000180700000C0700000C0F0000060F0000060780000307800383078007C3038E07E303FF8
6C301F0C60300F0C6030070C30300F8C18600FFC0E600F7807C00F000180078000C00781006007
83C0300387C01803C3E01801C3E00C00E0E01C0070C03C003F801E000F000C>31 32 -5 0 35]
38 dc[<80C06030180C0C06063B7F7F7F3E1C>8 15 -10 -17 14]39 dc[<0C00001C00001800
00380000300000700000700000700000700000700000F00000F00000F00000F00000F00000F000
007000007000007000007000007800007800003800003800003C00003C00001C00001E00001E00
000E00000F000007000007000003800003800001C00001C00000E000006000007000003800001C
00000C00000600000300000180>17 46 -6 12 19]40 dc[ 0006000007000003800001C00001C00000E00000E000007000007000003800003800003C00001C
00001C00001E00000E00000E00000F00000F000007000007000007800007800007800003800003
80000380000380000380000380000380000380000380000380000300000700000700000600000E
00000C00001800>17 46 0 12 19]41 dc[<007000000030000000300000003000000038000000
1800000018000000180000001C0000000C0000000C0000000C0000000E0000FFFFFFF0FFFFFFF0
0006000000070000000300000003000000030000000380000001800000018000000180000001C0
000000C0000000C0000000C000>28 28 -6 3 35]43 dc[<40E06030181C0C0C061E3E3F3F1E0E
>8 15 -3 9 14]44 dc[<7FE0FFE07FF07FF0>12 4 -3 -8 16]45 dc[<70F8FCFC7C38>6 6 -5
0 14]46 dc[ 0000000700000003000000038000000180000001C0000000E00000006000000070000000300000
0038000000180000001C0000000E000000060000000700000003000000038000000180000001C0
000000E000000060000000700000003000000038000000180000001C0000000E00000006000000
07000000030000000380000001C0000000C0000000E00000006000000060>27 45 0 11 23]47
dc[<1F80003FE000787000F03C00E01C00E00E00E00F00E00700E00780E00780F00380F003C0F0
03C0F003C07801E07801E07801E07801E03C00E03C00F01C00F01E00F00E00F00E00F00700E003
80E001E1C000FFC0003F00>20 29 -5 0 23]48 dc[ C003C001E001E001E001E000F000F000F000F0007800780078067807BC01FC003C001C000E0006
0002>15 29 -5 0 23]49 dc[ 0003C00000E000003800001E000007000003C00001E00700E00FC0F00CE0780C60780C30780E30
7806187803387803307801807000E0E0007FC0001F80>21 29 -3 0 23]50 dc[<0F80003FF000
707800601C00700E00F80F007C07807C078038078000078000078000078000070000070000FE00
00FF000007800001C00001E00380F007C0F00660F006307806707807607003807001E0E0007FC0
001F80>21 29 -4 0 23]51 dc[<00C00001E00001E00000F00000F00000F00000F00000780000
7F0080FF80FFF8007F3C00303C00183C000C3C00061E00071E00039E0001DE0001CE0000E00000
7000007000003800003800003C00001C00001E00000E00000F00000F0000070000078000078000
07800003C00003C0000180>19 38 -3 9 23]52 dc[<1F00007FC000E1F000C07800E03C00F03E
00F81E00F81F00781F00001F00000F80000F80000F00180F000C0F000F0E000FFC000CF8000600
0006000006000006000003000003000003FC0003FF0001FFC001FFE0018060>19 29 -5 0 23]
53 dc[<1F00003FC00070E000E07000E03800E03C00E01C00E01E00E01E00E01E00F00F00F00F
00F00F00F80F007C0E007E0E007BBC0039F8003C00001C00001C00000E00000F07800707C00387
C001C3C000F0C0003FC0000F00>18 29 -6 0 23]54 dc[<03000007800003C00003C00003C000
01C00001E00001E00000E00000F00000F000007000007800003800003C00001C00001C00000E00
000600000700C003006003807001803800C03E0FE01FFFE01FFC700FF8300CF018>21 29 -6 0
23]55 dc[<1F80003FE000707000E01800E00C00E00E00E00600E00700E00700700700700F0038
1F001C3F000EFF0007FE0003FC0007FC0007FE000FE7000F83800F01C00F01C00700E00700E003
00E00181C000E1C0007F80001F00>19 29 -5 0 23]56 dc[<3E00007F8000E1C000F0E000F870
00F83800781C00001E00000E00000F0000070007E7800FFF801C0F801C07C01C07C01C03C01C03
C01E01C01E01E01E01E01E01E00F01E00701E00781C00381C001E1C0007F80003E00>19 29 -5
0 23]57 dc[<7000F800FC00FC007C003800000000000000000000000000000000000E001F001F
801F800F800700>9 20 -5 0 14]58 dc[<4000E0006000300018001C000C000C0006001E003E
003F003F001E000E0000000000000000000000000000000000038007C007E007E003E001C0>11
29 -3 9 14]59 dc[ 0F8000E00F80007FFF80003FFF8000300F8000181F8000181F00000C1F00000C1F0000061F0000
031F0000031F0000019F0000019F000000DF000000DF0000007F0000003F0000003F0000001F00
00001F0000000E0000000E0000000600>29 31 -2 0 34]65 dc[ 07C01F0007C00F8007C007C003E003C003E003E003E003E003E003E001F001E001F001E001F003
E001F003E000F807C000FFFF8000FFFF0000F80FC0007C03E0007C01F0007C00F8007C00F8003E
007C003E007C003E007C003E007C001F007C001F0078001F00F801FFFFF001FFFFC0>30 31 -3
0 32]66 dc[<00FE000003FFC00007C0F0000F0038001E000C003C0006007C0003007800030078
00018078000180F80000C0F8000000F8000000780000007C0000007C0000007C0000003C000000
3E0000003E0000301F0000300F0000300F8000380780003803C0003801E0007800F0007C007C00
FC001F819C0007FF0C0000FC06>31 31 -6 0 33]67 dc[ 0007C00F8007C007C003E003C003E001E003E000F003E000F001F0007801F0007C01F0007C01F0
007C00F8003E00F8003E00F8003E00F8003E007C001E007C001E007C001E007C001E003E001E00
3E001E003E001E003E003C001F003C001F0078001F01F001FFFFE001FFFF80>31 31 -3 0 34]
68 dc[ 6003E0006001F0306001F0303001F0300001F0300000F8380000FFF80000FFF80000F83800007C
1C00007C0C00007C0C18007C0C18003E0018003E000C003E000C003E000C001F001C001F001C00
1F003C01FFFFFC01FFFFFE>31 31 -3 0 31]69 dc[ C0000007C0000003E0000003E0000003E0000003E0000001F0300001F0300001F0300001F03000
00F8380000FFF80000FFF80000F83800007C1C00007C0C00007C0C30007C0C30003E0030003E00
18003E0018003E0018001F0038001F0038001F007801FFFFF801FFFFFC>30 31 -3 0 30]70 dc
[<00FE040003FF8C000FC1DE001F007E001E003E003C003E007C001F0078001F0078001F007800
1F00F8000F80F801FFF0F801FFF0F80000007C0000007C0000007C0000007C0000003E0000003E
0000601F0000600F0000600F8000700780007003C0007001E000F000F000F8007C01F8001F03B8
0007FF180001FC0C>30 31 -6 0 35]71 dc[ 07C01F000007C01F000003E00F800003E00F800003E00F800003E00F800001F007C00001F007C0
0001F007C00001F007C00000F803E00000FFFFE00000FFFFE00000F803E000007C01F000007C01
F000007C01F000007C01F000003E00F800003E00F800003E00F800003E00F800001F007C00001F
007C00001F007C0001FFF3FFE001FFF3FFE0>35 31 -3 0 34]72 dc[ C00007C00007C00003E00003E00003E00003E00001F00001F00001F00001F00000F80000F80000
F80000F800007C00007C00007C00007C00003E00003E00003E00003E00001F00001F00001F0001
FFF801FFF8>21 31 -2 0 18]73 dc[<1F8000003FE0000070F80000F87C0000FC3E0000FC3E00
007C1F00003C1F0000001F0000001F0000000F8000000F8000000F8000000F80000007C0000007
C0000007C0000007C0000003E0000003E0000003E0000003E0000001F0000001F0000001F00000
01F0000000F8000000F8000000F800001FFF80001FFF80>25 31 -2 0 24]74 dc[ FFFC7FF80007C00FC00007C00F800007C00F800007C01F800003E01F000003E01F000003E03F00
0003E03E000001F03E000001F03E000001F87C000001FC7C000000FE7C000000FBF8000000F9F8
000000F8F80000007C700000007C300000007C1C0000007C0E0000003E070000003E018000003E
00C000003E006000001F003000001F001C00001F001F0001FFF87FE001FFF87FE0>35 31 -3 0
35]75 dc[ 030003E0030001F0018001F0018001F0000001F0000000F8000000F8000000F8000000F8000000
7C0000007C0000007C0000007C0000003E0000003E0000003E0000003E0000001F0000001F0000
001F000001FFFC0001FFFC00>25 31 -3 0 29]76 dc[ 00000603C03E00000603E03E00000603F03E00000303F01F00000303D81F00000303D81F000003
03CC1F00000183CC0F80000183C60F80000183C60F80000183C30F800000C3C187C00000C3C187
C00000C3C0C7C00000C3C0C7C00000678063E00000678063E00000678033E00000678033E00000
378019F0000037800DF0000037800DF00000378007F000001F8006F800001F8003F800001F8003
F80001FF8001FFC001FF8001FFC0>42 31 -3 0 41]77 dc[ 0006000F000006000F000006000F000003001F800003001F800003001F800003003F800001803E
C00001803EC00001807CC00001807CC00000C07C600000C0FC600000C0F8600000C0F860000061
F830000061F030000061F030000063F030000033E018000033E018000033E018000037C0180000
1FC00C00001FC00C00001F801E0001FF80FFE001FF80FFE0>35 31 -3 0 34]78 dc[<00FE0000
07FF80000F83E0001F00F8003E003C003C001E007C000F0078000F80780007C0F80003C0F80003
E0F80001E0F80001F0F80001F07C0000F87C0000F87C0000F83C0000F83E0000783E0000781F00
00781F0000780F8000780780007803C000F001E000F000F001E0007803E0001E07C0000FFF0000
01FC00>29 31 -6 0 35]79 dc[ E0000003E0000003E0000003E0000001F0000001F0000001F0000001F0000000FFF80000FFFF00
00F80F8000F803E0007C01E0007C00F0007C00F8007C00F8003E007C003E007C003E007C003E00
7C001F0078001F0078001F01F001FFFFE001FFFF80>30 31 -3 0 31]80 dc[<0000F0000001F8
000001FC000003FE000003FE000003870000018100000181800001808000FF008007FF80000FC3
E0001EC1F8003EE33C003C7E1E007C1C0F0078000F80780007C0F80003C0F80003E0F80001E0F8
0001F0F80001F07C0000F87C0000F87C0000F83C0000F83E0000F83E0000781F0000781F000078
0F800078078000F803C000F001E000F000F001E0007803E0001F07C0000FFF000001FC00>29 40
-6 9 35]81 dc[ 0003E03E0003E03E0001F01F0001F01F0001F01E0001F03E0000F83C0000FFF80000FFFE0000F8
1F00007C07C0007C03E0007C01F0007C01F0003E00F8003E00F8003E00F8003E00F8001F00F800
1F00F0001F03E001FFFFC001FFFF00>29 31 -3 0 33]82 dc[<81FC0000E7FF00007E07800078
01C0007001E0007000F0003000700030007800300078000000780000007C0000007C000000FC00
0007F800007FF80000FFF00001FFE00003FFC00003FE000007F0000007C0000007C0000003C003
0003C0030003C0030001E0030000E0078000700780003C1F80001FF9800007E0C0>26 31 -3 0
26]83 dc[ 000000F80000007C0000007C0000007C0000007C0000003E0000003E0000003E0000003E000000
1F0000001F0000C01F00C0C01F00C0600F80C0600F8060300F8060300F80603807C0601807C0E0
1E07C1E01FFFFFE00FFFFFF0>28 31 -8 0 33]84 dc[<07E000000FF800003C1C000038070000
7801800078018000F800C000F8006000F8006000F80060007C0030007C0030007C0030007C0030
003E0018003E0018003E0018003E0018001F000C001F000C001F000C001F000C000F8006000F80
06000F8006000F80060007C0030007C0030007C007807FFE3FF87FFE3FF8>29 31 -9 0 34]85
dc[<038000000380000003C0000003E0000003E0000003F0000003F0000003F8000003FC000003
EC000007E6000007E6000007C3000007C3800007C1800007C0C00007C0C00007C0600007C07000
07C0300007C018000FC018000F800C000F800C000F8006000F8003000F8003000F8001800F8003
C0FFF80FFCFFF80FFC>30 31 -9 0 34]86 dc[<06001C00000006001C0000000F001E0000000F
801E0000000F801F0000000FC01F0000000FC01F8000000FE01F8000000FE01FC000000FB01FE0
00000FB01F6000000F981F3000000F981F3000000F8C1F1800000F8E1F1800000F861F0C00000F
831F0C00000F831F0600000F819F0600000F819F0300000F80FF0300000F80FF0180000F807F01
C0000F807E00C0000F803E0060000F803E0060000F803E0030001F803E0030001F803E003C00FF
F1FFE1FF80FFF9FFE1FF80>41 31 -9 0 45]87 dc[ 0F800001C01F800000C01F000000601F000000303F000000183F0000001C3E0000000E7E000000
067E000000037C00000001FC00000000FC00000000F800000000F800000001F800000001F80000
0001FC00000003FE00000003F700000003E300000007E180000007E0C0000007C060000007C070
00000FC03800000FC03E0000FFF8FFE000FFF8FFE0>35 31 -2 0 34]88 dc[<7FFC00007FFE00
0003E0000003E0000003E0000003E0000001E0000001F0000001F0000001F0000000F0000000F8
000000F8000000FC000000FE000001FE000001F3000001F1800003F1C00003F0C00003E0600003
E0300007E0180007E01C0007C00C0007C006000FC003000FC003800F8003E0FFF80FFCFFF807FC
>30 31 -9 0 34]89 dc[<0F0F003F9F8070FCC0707C60F03C60F03C60F01E30F01E00F01E00F0
1E00780F00780F00780F003C0F003C07801C07800E0F80070F8003FBC000F180>20 20 -4 0 23
]97 dc[<0F80003FE00038F000703800703C00F01C00F01E00F00F00F00F00F00F007807807807
807807807807803C07803C07003E07003F8E001FFE001E78001E00001E00000F00000F00000F00
000F00000780000780000780003F80003FC00003C000>17 32 -4 0 21]98 dc[<07E0001FF800
381E00700700700200F00000F00000F00000F00000F000007800007800007800003C06001C0F00
1E0F800F0F8003878001FF00007E00>17 20 -4 0 21]99 dc[<0F0F003F9F8070FCC0707C60F0
3C60F03C60F01E30F01E00F01E00F01E00780F00780F00780F003C0F003C07801C07800E0F8007
0F8003FBC000F3C00003C00003C00001E00001E00001E00001E00000F00000F00000F00007F000
07F8000078>21 32 -4 0 23]100 dc[<07E0001FF8003C1E00780700700200700000F00000F0
0000F00000F000007FE0007FFC00780E003C03003C01801E01800F018007830001FF00007C00>
17 20 -4 0 21]101 dc[<780000FC0000F60000FF0000FF000077800003800003C00003C00003
C00003C00001E00001E00001E00001E00001E00000F00000F00000F00000F00000F00000780000
7800007800007800007800003C0007FFE007FFE0003C00003C00003E00001E00001E00001E0000
1E70000EF8000FF80007780003F80001E0>21 41 1 9 14]102 dc[<3F8000FFF000F0F800F83C
00F81E00701E00001E00000F00000F0003CF000FFF000E3F801C0F801C07803C07803C03C03C03
C03C03C03C03C01E01E01E01E01E01E00F01E00700F00780F00381F001E3F000FF78003E30>21
29 -2 9 21]103 dc[<600780F00FE0780E70781E30780E18780F183C0F0C3C07803C07803C07
801E03C01E03C01E03C01E03C00F01E00F01E00F81C00FE3C007FF80079F0007800007800003C0
0003C00003C00003C00001E00001E00001E0000FE0000FF00000F000>22 32 -2 0 23]104 dc[
<0F001F803CC03CC03C603C601E301E001E000F000F0007800780C78063C063C033C033C01F80
0F0000000000000000000000000000E001F001F000F00060>12 31 -3 0 14]105 dc[<7C0000
FF0000F78000FBC000F9E00071E00001E00000F00000F00000F00000F000007800007800007800
007800003C00003C00003C00003C00001E00001E00001E000C1E00060F00060F00030F00018F00
00FE00007C000000000000000000000000000000000000000007000007800007C00007C0000380
>18 40 1 9 14]106 dc[<600F00F01F80781CC0783C60783C60783C603C1E303C3C003C3C003C
F8001FF0001F80001F81C01E41E00F21F00F11F00F18F00F0E300783E00781E007800007800003
C00003C00003C00003C00001E00001E00001E0000FE0000FF00000F000>20 32 -2 0 21]107
dc[<3C007E00F300F180F180F18078C07800780078003C003C003C003C001E001E001E001E000F
000F000F000F00078007800780078003C003C003C01FC01FE001E0>11 32 -3 0 12]108 dc[<
1803003C003C07807F001E03C073801E03C0F1801E03C070C01E03C078C00F01E078600F01E03C
000F01E03C000F01E03C000780F01E000780F01E000780F01E00C780F01E0063C0780F0063C078
0F0063E07C0E0033F8F71E001F9FE3FC000F07C0F800>35 20 -3 0 37]109 dc[<1801E03C03
F81E039C1E078C1E03861E03C60F03C30F01E00F01E00F01E00780F00780F00780F0C780F063C0
7863C07863E07033F8F01F9FE00F07C0>24 20 -3 0 26]110 dc[<07C0001FF000383800701E
00700F00F00700F00780F003C0F003C0F003C07801E07801E07801E03C01E01C01E01E01C00F01
C003838001FF00007C00>19 20 -4 0 23]111 dc[ 000F0000078000078000079E0007BF8003E1C003E0E003C07003C07801E07801E03C01E03C01E0
3C00F01E00F01E00F01E18F01E0C781E0C781E0C7C1C067E1C03F3F801E1E0>23 29 0 9 23]
112 dc[<0FFF000FFF0000F000007800007800007800007800003C00003C000F3C003FFC0038FE
00703E00701E00F01E00F00F00F00F00F00F00F00F007807807807807807803C07801C03C01E03
C00E07C0078FC003FDE000F860>19 29 -4 9 21]113 dc[<1800003C00001E00001E00001E00
001E00000F00000F00000F00000F0000078000078000078700C7878063C7C063C7C063C3C033E1
801FBF000F1E00>18 20 -3 0 19]114 dc[<1F803FE06070F018F81CF81C781E003E01FE07FC
0FFC0FF81FE01E000E0E0E0F060F070703FE00FC>16 20 -3 0 19]115 dc[<1E003F8079C078
C0786078603C303C003C003C001E001E001E001E000F000F000F000F00FFF0FFF00780078003C0
03C003C003C001E000C0>12 28 -4 0 15]116 dc[<03E3C007F7E00F1F300F0F180E0F180F0F
180F078C0F07800F07800F07800783C00783C00783C0C3C3C063C1E061C1E031E1E039C1E01FC0
F0078060>22 20 -3 0 24]117 dc[<01E00007F8000F0C000F06000F06000F03000F03000F01
800F01800F01800780C00780C00780C0C3C0C063C0E061C0E031E1E039C3E01FC3C00781C0>19
20 -3 0 21]118 dc[<01F0F80007FBFC00071F86000F0F83000F0781000F0781800F0781800F
0780C00F0780C00F0780C00783C0600783C0600783C060C3C3C06063C1E07061C1E07031E1E0F0
39C1E1F01FC0F1E0078060E0>28 20 -3 0 30]119 dc[<387C007CFE00E7C300F3C180FBC0C0
FBC0C079E06039E00001E00001E00000F00000F00000F380C0F3C0607BE0607BE03079E0187CE0
0FE7C007C380>19 20 -3 0 21]120 dc[<1F00003FC00070F0007878007C3C007C1C00381E00
000E00000F0001EF0007FF000F1F800F07800F07800F07800F03C00F03C00F03C00F03C00781E0
0781E00781E0C3C1E063C0F061C0F031E0F039C0F01FC078078030>21 29 -3 9 22]121 dc[<
C0780060FC007FFE003FFF001803800C01800600C003000001800000C000006000003000001800
000C000006000C03000FFF8007FFC003F0C000E060>19 20 -2 0 19]122 dc dfend /fl df[<
C0000CE0001C7000383800701C00E00E01C006018007038003870001CE0000FC00007800007800
00FC0001CE000387000703800601800E01C01C00E0380070700038E0001CC0000C>22 24 -6 1
35]2 dc[<018001C001800180C183E187F99F7DBE1FF807E007E01FF87DBEF99FE187C1830180
018001C00180>16 20 -3 -1 23]3 dc[<07E01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFF7FFE7FFE3FFC1FF807E0>16 18 -3 -2 23]15 dc[ 0000000000000000000000000000000000000000000000000000C0000003C000000F8000003E00
0000F8000003E000000F8000003E000000F8000003E000000F8000003E000000F8000000E00000
00F80000003E0000000F80000003E0000000F80000003E0000000F80000003E0000000F8000000
3E0000000F80000003C0000000C0>26 36 -4 7 35]20 dc[<000000C00C000003C03C00000F80
F800003E03E000007807800001F01F000007C07C00000F00F000003C03C00000F80F800003E03E
000007807800001E01E000007C07C00000F00F000000F00F0000007C07C000001E01E000000780
78000001E01E000000F80F8000003C03C000000F00F0000007C07C000001F01F00000078078000
001E01E000000F80F8000003C03C000000C00C>38 30 -3 4 45]28 dc[<000000060000000006
0000000003000000000180000000018000000000C00000000070FFFFFFFFF8FFFFFFFFFC000000
007000000000C000000001800000000180000000030000000006000000000600>38 16 -3 -3
45]33 dc[ 000003000003800001800001C00000C00000E00000600000700000300000300000380000180000
1C00000C00000E000006000007000003000003800001800001C00000C00000E000006000007000
003000003800001800001C00000C>22 42 -6 10 0]54 dc[<001F007F00F801E003C003C003C0
03C003C003C003C003C003C003C003C003C003C003C003C007800F00FE00F800FE000F00078003
C003C003C003C003C003C003C003C003C003C003C003C003C003C003C001E000F8007F001F>16
45 -3 11 23]102 dc[ C003C003C003C003C001E000F0007F001F007F00F001E003C003C003C003C003C003C003C003C0
03C003C003C003C003C003C003C007801F00FE00F800>16 45 -3 11 23]103 dc[<0003000300
0700060006000E000C000C001C0018001800380030003000700060006000E000C000C001C00180
018001800380030003000700060006000E000C000C001C00180018003800300030007000600060
00E000C000C000>16 45 -3 11 23]110 dc dfend /fm df[<78FCFCFCFC78>6 6 -3 0 13]
58 dc[<00000040000001C0000007C000001F0000007C000001F0000007C000001F0000007C00
0001F0000007C000001F0000007C000000F0000000F00000007C0000001F00000007C0000001F0
0000007C0000001F00000007C0000001F00000007C0000001F00000007C0000001C000000040>
26 28 -4 3 35]60 dc[<80000000E0000000F80000003E0000000F80000003E0000000F80000
003E0000000F80000003E0000000F80000003E0000000F80000003C0000003C000000F8000003E
000000F8000003E000000F8000003E000000F8000003E000000F8000003E000000F8000000E000
000080000000>26 28 -4 3 35]62 dc[<180070003C01FC001E01CE001E03C6001E03C3001E01
E3000F01E1800F00F0000F00F0000F00F000078078000780780007807800C780780063C03C0063
E03C0063F0380033F878003F8FF0000E07E000>25 20 -1 0 27]110 dc dfend /fn df[ FF00FFC3FF000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F
00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F000FFFFFF80FFFFFF80
0F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F01F0380781F87C03C1F87C01E0FE
7C00FFEFF8001F83F0>30 32 0 0 27]11 dc[ 00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F0FFFFF0FF
FFF00F00000F00000F00000F00000F00000F00E00F01F00781F003C0F001E0E000FFC0001F80>
24 32 0 0 25]12 dc[ F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F0FFFFF0FFFFF00F00F00F00F00F00
F00F00F00F00F00F00F00F00F00781F003C1F001E1F000FFF0001FB0>24 32 0 0 25]13 dc[<
FFE3FF3FF8FFE3FF3FF80F007807800F007807800F007807800F007807800F007807800F007807
800F007807800F007807800F007807800F007807800F007807800F007807800F007807800F0078
07800F007807800F00780780FFFFFFFF80FFFFFFFF800F007800000F007800000F007800000F00
7800000F007800000F007807000F00F80F800780FC0F8003C0FE078001F07F0700007FE7FE0000
1FC0FC00>37 32 0 0 38]14 dc[ 800F007807800F007807800F007807800F007807800F007807800F007807800F007807800F0078
07800F007807800F007807800F007807800F007807800F00780780FFFFFFFF80FFFFFFFF800F00
7807800F007807800F007807800F007807800F007807800F007807800F00F807800780FC0F8003
C0FE0F8001F07F0F80007FE7FF80001FC0FD80>37 32 0 0 38]15 dc[<78FCFCFCFC78000000
0000303030303878787878787878787CFCFCFCFCFCFC78>6 32 -3 0 13]33 dc[<200800701C
00380E001806000C03000C03000601800601800601807E1F80FE3F80FE3F80FC3F00FC3F00781E
00>17 15 -2 -17 23]34 dc[<0601800006018000060180000701C0000300C0000300C0000300
C0000300C0000380E0000180600001806000018060000180600001C07000FFFFFFFEFFFFFFFE00
60180000601800006018000060180000701C0000300C0000300C0000300C00FFFFFFFEFFFFFFFE
00180600001C0700000C0300000C0300000C0300000C0300000E03800006018000060180000601
8000060180000701C0000300C0000300C0000300C0>31 41 -3 9 38]35 dc[<07E00FC01FFC3F
E03E0EF8707C03E0387C03C018F807C000F80FE000F81F3000F83E3000783C1800787C0C003CF8
0C001CF006000FF0060007E0030003E0030003C0018003E003E003F01FFC07B81FFC0798000007
8C00000786000007860000078300000783000007830000038300000383000001C6000000FC0000
00780000>30 32 -2 0 35]38 dc[<207038180C0C0606067EFEFEFCFC78>7 15 -3 -17 13]
39 dc[<006000C001800380070006000E001C001C003C003800380078007000700070007000F0
00F000F000F000F000F000F000F000F000F000F000F00070007000700070007800380038003C00
1C001C000E00060007000380018000C00060>11 46 -3 12 18]40 dc[ 000C000E000700070007800380038003C001C001C001C001C001E001E001E001E001E001E001E0
01E001E001E001E001E001C001C001C001C003C0038003800780070007000E000C001C00380030
006000C000>11 46 -3 12 18]41 dc[<00060000000600000006000000060000000600000006
0000000600000006000000060000000600000006000000060000000600000006000000060000FF
FFFFF0FFFFFFF00006000000060000000600000006000000060000000600000006000000060000
00060000000600000006000000060000000600000006000000060000>28 32 -3 5 35]43 dc[<
207038180C0C0606067EFEFEFCFC78>7 15 -3 9 13]44 dc[10 3 -1 -9 15]
45 dc[<78FCFCFCFC78>6 6 -3 0 13]46 dc[ 0018001C000C000C000E0006000600070003000300038001800180018001C000C000C000E00060
0060007000300030003800180018001C000C000C000E00060006000700030003>16 45 -3 11
23]47 dc[<03F0000FFC001E1E003C0F003C0F00780780780780780780F807C0F807C0F807C0F8
07C0F807C0F807C0F807C0F807C0F807C0F807C0F807C0F807C0F807C078078078078078078038
07003C0F001E1E000FFC0003F000>18 29 -2 0 23]48 dc[<7FFF7FFF03C003C003C003C003C0
03C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C0F3C0FFC00F
C001C000C0>16 29 -3 0 23]49 dc[ C003800001C00000E00000F000007800003C00001E00001F00000F80000F80000FC03007C07807
C0FC07C0FC0FC0FC0F80F80F80601F00383E001FFC0007F000>18 29 -2 0 23]50 dc[<07F000
1FFC00383E00781F00FC0F80FC0F80FC0FC0780FC0300FC0000FC0000FC0000F80000F00001E00
003C0003F00003F800003C00001E00001F00001F003C1F807C0F807C0F807C1F80381F00383E00
1FFC0007F000>18 29 -2 0 23]51 dc[<01FFE001FFE0001E00001E00001E00001E00001E0000
1E00FFFFF0FFFFF0E01E00601E00301E00381E00181E000C1E000E1E00061E00031E00039E0001
9E0000DE0000FE00007E00003E00003E00001E00000E00000E00>20 29 -1 0 23]52 dc[<07E0
001FF800383E00600F00F00F80F80780F807C0F807C07807C00007C00007C00007C00007803007
80380F003E1E0037FC0031F0003000003000003000003000003000003FC0003FF0003FFC003FFE
003FFF00380300>18 29 -2 0 23]53 dc[<03F00007FC000E1E001C0F003C07803807807807C0
7807C07807C0F807C0F807C0F807C0F807C0FC0780FC0700FE0F00FBFE00F9FC00F80000780000
7800007800003C07001C0F801E0F800F078007830001FE00007C00>18 29 -2 0 23]54 dc[<03
800007C00007C00007C00007C00007C00007C00007C00003C00003C00003C00003C00001C00001
C00001E00000E00000E000006000003000003000001800C00C00C00C00C00600E003007FFF807F
FF807FFFC07FFFC0600000>18 30 -3 0 23]55 dc[<03F0000FFC003C0E00780300700380E001
80E001C0E001C0E001C0E003C07007C0701F80387F801CFF000FFE0007FC001FF8001FFC003F8E
007E07007C03807803807003807003803003803807001C1E000FFC0003F000>18 29 -2 0 23]
56 dc[<0FC0001FF000307800781C007C1E007C0F00380F000007800007800007800007C00FE7
C01FF7C03C1FC0380FC0780FC0F807C0F807C0F807C0F807C0F80780F80780F807807807807807
003C0E001E1E000FF80003F000>18 29 -2 0 23]57 dc[<78FCFCFCFC78000000000000000078
FCFCFCFC78>6 20 -3 0 13]58 dc[<2060303818180C0C0C7CFCFCFCF8700000000000000000
78FCFCFCFC78>6 29 -3 9 13]59 dc[ 000000000000000000000000000000000000FFFFFFF0FFFFFFF0>28 12 -3 -5 35]61 dc[<0F
001F801F801F801F800F0000000000000000000000060006000600060006000700030003800380
01C001F000F80078707CF87CF87CF07C607870F83FF00FC0>14 32 -3 0 21]63 dc[<001FF000
00FFFF0001E00FC0070000F00E0000000C000000180F0780303FDFC03070FC6060F07C6061E03C
2061E03C30C1C03C30C3C03C30C3C03C30C3C03C30C3C03C30C3C03C30C3C03C30C1C03C3061E0
3C6061E03C6060F060603070C0C0303FC0C0180F01800C0003000E00070007000E0001E0780000
FFF000001F8000>28 32 -3 0 35]64 dc[ 000F8003000F8001801F0001801F0001FFFF0000FFFE0000C03E0000C03E0000607C0000607C00
00607C000030F8000030F8000030F8000019F0000019F0000019F000000FE000000FE000000FE0
000007C0000007C0000007C000000380000003800000038000>31 31 -1 0 34]65 dc[ 00FFFFFE0007C03F0007C00F8007C00FC007C007C007C007E007C007E007C007E007C007E007C0
07E007C007C007C00FC007C00F8007C01F0007FFFE0007FFFC0007C07E0007C01F0007C01F8007
C00F8007C00FC007C00FC007C00FC007C00FC007C00FC007C00F8007C01F0007C03F00FFFFFC00
FFFFF000>27 31 -1 0 32]66 dc[<001FC000007FF80001F81C0003E00600078003000F000180
1F0001803E0000C03E0000C07E0000C07C0000C07C000000FC000000FC000000FC000000FC0000
00FC000000FC000000FC0000007C0000C07C0000C07E0000C03E0001C03E0001C01F0001C00F00
03C0078007C003E00FC001F819C0007FF0C0001FC040>26 31 -3 0 33]67 dc[ FE0007C03F0007C00F8007C003C007C003E007C001F007C001F007C000F807C000F807C000F807
C000FC07C000FC07C000FC07C000FC07C000FC07C000FC07C000FC07C000FC07C000FC07C000F8
07C000F807C000F807C001F007C001F007C003E007C007C007C00F8007C03F00FFFFFE00FFFFF0
00>30 31 -1 0 35]68 dc[ 6007C0006007C0006007C0003007C0603007C0603007C0600007C0600007C0E00007FFE00007FF
E00007C0E00007C0600007C0600007C060C007C060C007C000C007C000C007C001C007C0018007
C0018007C0038007C00F80FFFFFF80FFFFFF80>28 31 -1 0 31]69 dc[ C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0600007C06000
07C0600007C0600007C0E00007FFE00007FFE00007C0E00007C0600007C0600007C060C007C060
C007C000C007C000C007C001C007C0018007C0018007C0038007C00F80FFFFFF80FFFFFF80>26
31 -1 0 30]70 dc[<000FE020007FFCE001F80FE003E007E007C003E00F8003E01F0003E03E00
03E03E0003E07E0003E07C0003E07C00FFFCFC00FFFCFC000000FC000000FC000000FC000000FC
000000FC0000007C0000607C0000607E0000603E0000E03E0000E01F0000E00F8001E007C003E0
03E007E001F81CE0007FF860000FE020>30 31 -3 0 36]71 dc[ 07C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007
C007C007C007C007C007FFFFC007FFFFC007C007C007C007C007C007C007C007C007C007C007C0
07C007C007C007C007C007C007C007C007C007C007C007C007C0FFFC7FFEFFFC7FFE>31 31 -1
0 34]72 dc[ C007C007C007C007C007C007C007C007C007C007C007C007C0FFFEFFFE>15 31 0 0 16]73 dc[
<0FC0003FF00070F800F87C00FC3E00FC3E00FC3E00783E00003E00003E00003E00003E00003E
00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E
00003E00003E00003E000FFFE00FFFE0>19 31 -1 0 23]74 dc[ 07C007C007C00FC007C00F8007C01F0007C01F0007C03E0007C07E0007C07C0007C0F80007E0F8
0007F1F00007FBF00007DFE00007CFC00007C7C00007C3800007C1800007C0C00007C0600007C0
300007C0180007C00C0007C0060007C0030007C0038007C003E0FFFE0FFEFFFE0FFE>31 31 -1
0 35]75 dc[ 07C00307C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C000
07C00007C00007C00007C00007C000FFFF00FFFF00>24 31 -1 0 28]76 dc[ F0FFFE0F00F007C00600F007C00601F807C00601F807C00601F807C00603CC07C00603CC07C006
03CC07C006078607C006078607C006078607C0060F0307C0060F0307C0060F0307C0061E0187C0
061E0187C0063C00C7C0063C00C7C0063C00C7C006780067C006780067C006780067C006F00037
C006F00037C006F00037C007E0001FC007E0001FC0FFE0001FFEFFC0000FFE>39 31 -1 0 42]
77 dc[ C006003FC006003EC006007CC00600FCC00600F8C00601F0C00603F0C00603E0C00607E0C00607
C0C0060F80C0061F80C0061F00C0063E00C0067E00C0067C00C006F800C006F800C007F000C007
F001E0FFE01FFEFFC01FFE>31 31 -1 0 34]78 dc[<003FC00000FFF00003F0FC0007C03E000F
801F001F000F801F000F803E0007C07E0007E07E0007E07C0003E0FC0003F0FC0003F0FC0003F0
FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F07C0003E07C0003E03E0007C03E0007
C01F000F801F000F800F801F0007C03E0003F0FC0000FFF000003FC000>28 31 -3 0 35]79 dc
[ 000007C0000007C0000007C0000007C0000007FFF00007FFFC0007C03E0007C01F0007C00F8007
C00F8007C00FC007C00FC007C00FC007C00FC007C00FC007C00F8007C00F8007C01F0007C03E00
FFFFFC00FFFFF000>26 31 -1 0 31]80 dc[<0000078000000FC000001FE000001FE000003FF0
00003FF000003C300000381000003010003FF01000FFF00003F0FC0007F07E000FB0DF001F1F8F
801F0F0F803E0007C07E0007E07E0007E07C0003E0FC0003F0FC0003F0FC0003F0FC0003F0FC00
03F0FC0003F0FC0003F0FC0003F0FC0003F07C0003E07E0007E03E0007C03E0007C01F000F801F
000F800F801F0007C03E0003F0FC0000FFF000003FC000>28 40 -3 9 35]81 dc[ FE1FFC07C03F8E07C07F0607C07E0607C07E0007C07E0007C07E0007C07C0007C07C0007C07C00
07C0780007C0780007C0F00007C0E00007FFC00007FFF80007C07C0007C03E0007C01F0007C01F
0007C01F8007C01F8007C01F8007C01F8007C01F0007C01F0007C03E0007C07C00FFFFF800FFFF
C000>31 31 -1 0 33]82 dc[<83F800CFFC00FE0E00F00700E00780E00380C003C0C003C0C003
C00003C00007C00007C0000F8000FF8007FF801FFF003FFE007FFC007FE000FE0000F80000F800
00F00180F00180F001807003807003803807803C1F800FF98007E080>18 31 -3 0 25]83 dc[<
07FFFF0007FFFF00000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F80
00000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F
8000C00F8030C00F8030C00F8030C00F8030E00F8070600F8060600F8060700F80E07C0F81E07F
FFFFE07FFFFFE0>28 31 -2 0 33]84 dc[<0007E000001FF800007C1C0000F0060001E0030003
E0018003C0018007C000C007C000C007C000C007C000C007C000C007C000C007C000C007C000C0
07C000C007C000C007C000C007C000C007C000C007C000C007C000C007C000C007C000C007C000
C007C000C007C000C007C000C007C001E0FFFE1FFEFFFE1FFE>31 31 -1 0 34]85 dc[<000380
0000038000000380000007C0000007C000000FE000000FE000000FE000001FB000001F3000001F
3000003E1800003E1800003E1800007C0C00007C0C0000FC0E0000F8060000F8060001F8030001
F0030001F0030003E0018003E0018003E0018007C000C007C000C00FC000E00FC001F0FFF807FE
FFF807FE>31 31 -1 0 34]86 dc[<000600060000000E00070000000F000F0000000F000F0000
001F000F8000001F801F8000001F801F8000003F801FC000003EC03EC000003EC03EC000003EC0
3EC000007C607C6000007C607C6000007C607C600000F830F8300000F830F8300000F830F83000
01F019F0180001F019F0180001F019F0180003E00FF00C0003E00FE00C0003E00FE00C0007C00F
E0060007C007C0060007C007C006000F800FC003000F800F8003000F800F800F80FFF8FFF83FF0
FFF8FFF83FF0>44 31 -1 0 47]87 dc[ 1F8000C03F0000E03E0000607E0000307C000038FC000019F800000DF000000FF0000007E00000
07E000000FC000000F8000001FC000001FC000003FE000007E6000007C300000FC380000F81800
01F80C0003F00E0003E00E0007E01F807FFC7FF87FFC7FF8>31 31 -1 0 34]88 dc[<007FFF00
00007FFF00000003E000000003E000000003E000000003E000000003E000000003E000000003E0
00000003E000000003E000000003E000000003E000000007E000000007F00000000FF80000000F
980000001F9C0000001F0C0000003F060000007E060000007E03000000FC03800000F801800001
F801C00001F000C00003F000600003E000600007E000F800FFFC03FF80FFFC03FF80>33 31 0 0
34]89 dc[ E00C03E00C01F00001F80000F80000FC00007C00003E00003E00C01F00C01F00C00F80E00FC0E0
07C06007E07003E07801F07E01F07FFFF87FFFF8>22 31 -3 0 28]90 dc[ C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FEFE>7
45 -4 11 13]91 dc[<3C0F007E1F807E1F80FE3F80FE3F80FC3F00C03000C03000C030006018
00601800300C00380E001C0700080200>17 15 -3 -17 23]92 dc[ 0606060606060606060606060606060606060606060606060606060606060606FEFE>7 45 -1
11 13]93 dc[<3C7E7EFEFEFCC0C0C0606030381C08>7 15 -2 -17 13]96 dc[<0FC1E03FF3F0
7C1FF8F80F98F80798F80798F807987C07807C07803F07800FFF8003FF800007800007801C0780
3E07803E0F003E1E001FFC0007F000>21 20 -1 0 23]97 dc[<0C1F000E7FC00EC1E00F80F00F
00F80F00780F00780F007C0F007C0F007C0F007C0F007C0F007C0F007C0F00780F00780F80F00F
E1E00F7FC00F1F800F00000F00000F00000F00000F00000F00000F00000F00000F0000FF0000FF
00000F0000>22 32 0 0 25]98 dc[<03F00FFC1F0E3E033C037C007800F800F800F800F800F8
00F8007800781C3C3E3C3E1E3E0FFC03F0>16 20 -2 0 20]99 dc[<03E3FC0FFBFC1E1FC03C07
C07803C07803C07803C0F803C0F803C0F803C0F803C0F803C0F803C07803C07803C07C03C03C07
C01E0FC00FFBC003E3C00003C00003C00003C00003C00003C00003C00003C00003C00003C0003F
C0003FC00003C0>22 32 -2 0 25]100 dc[<01F80007FE000F07001E03803C01807C00007800
00F80000F80000F80000FFFF80FFFF80F80780780780780F003C0F003C0F001E1E000FFC0003F0
00>17 20 -1 0 20]101 dc[ 000F00000F00000F00000F00000F00000F00000F00000F00000F0000FFF000FFF0000F00000F00
000F00000F00000F00000F00000F0700078F80078F8003CF8000FF00003E00>17 32 0 0 14]
102 dc[<03FC000FFF003E07C07801E07000E0E00070E00070E000707000F07801E03FFFE01FFF
C03FFF803FFE0038000030000030000033F0001FFC001E1E003C0F007C0F807C0F807C0F807C0F
807C0F803C0F601E1F700FFFF003F1E0>20 30 -1 10 23]103 dc[ F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F80F00FC0
F00FE1E00F7FC00F1F800F00000F00000F00000F00000F00000F00000F00000F00000F0000FF00
00FF00000F0000>24 32 0 0 25]104 dc[ 000F000F000F000F000F000F007F007F000F00000000000000000000000E001F003F003F001F00
0E00>11 31 0 0 13]105 dc[<3F007FC0F9E0F8F0F87870780078007800780078007800780078
00780078007800780078007800780078007800780078007800F807F807F8007800000000000000
00000000F001F801F801F801F800F0>13 40 3 9 14]106 dc[ 07C00F0F800F0F000F1F000F1E000FBC000FFC000F78000F38000F18000F0C000F06000F07000F
07C00F0FF80F0FF80F00000F00000F00000F00000F00000F00000F00000F00000F0000FF0000FF
00000F0000>22 32 0 0 24]107 dc[ 000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00FF00FF00
0F00>12 32 0 0 13]108 dc[ 007803C00F007803C00F007803C00F007803C00F007803C00F007803C00F007803C00F007803C0
0F007803C00F007803C00F807C03C00FC07E03C0FFE0F70780FF3FE1FF000F0FC07E00>38 20 0
0 39]109 dc[ F00F00F00F00F00F00F00F00F00F80F00FC0F0FFE1E0FF7FC00F1F80>24 20 0 0 25]110 dc[<
01F80007FE001F0F803C03C03C03C07801E07801E0F801F0F801F0F801F0F801F0F801F0F801F0
7801E07801E03C03C03C03C01F0F8007FE0001F800>20 20 -1 0 23]111 dc[ 0F00000F00000F00000F00000F00000F00000F00000F1F000F7FC00FC3E00F81F00F00F80F00F8
0F00780F007C0F007C0F007C0F007C0F007C0F007C0F007C0F00F80F00F80F81F0FFE1E0FF7FC0
0F1F80>22 29 0 9 25]112 dc[<003FFC003FFC0003C00003C00003C00003C00003C00003C000
03C003E3C00FFBC01E1FC03E07C07C07C07C03C07803C0F803C0F803C0F803C0F803C0F803C0F8
03C07803C07C03C07C07C03E07C01F1DC00FF9C003E0C0>22 29 -2 9 24]113 dc[ 0F000F000F000F000F000F000F000F000F000F000F000F000F0E0F9F0F9FFFDFFFFE0F7C>16 20
0 0 18]114 dc[<8F80FFE0F070E030E038C038C038007803F81FF03FE07FC0FF00F000E030E0
30E03070703FF00FB0>13 20 -2 0 18]115 dc[<03C007E00F301E181E181E181E181E181E00
1E001E001E001E001E001E001E001E001E00FFF8FFF83E001E000E000E000600060006000600>
13 28 -1 0 18]116 dc[<01F8FF03FEFF0707F00F01F00F01F00F00F00F00F00F00F00F00F00F
00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F0FF0FF0FF0FF00F00F0>24 20 0 0 25]
117 dc[<00700000700000700000F80000F80001FC0001EC0001EC0003EE0003C60003C6000783
000783000783000F01800F01800F01C01F01E0FFC7F8FFC7F8>21 20 -1 0 24]118 dc[<00E0
1C0000E01C0000F03C0001F03E0001F03E0001F87E0003F87F0003D87B0003D8730003CCF30007
8CF180078CE1800787E1800F07E0C00F07C0C00F03C0C01E03C0E01E03C0F0FF9FF3FCFF9FF3FC
>30 20 -1 0 33]119 dc[ 003C0000780000780000FC0001EE0001E60003C3000783800783E07FE7FC7FE7FC>23 20 0 0
24]120 dc[<3C00007F0000E38000C18000F8C00070C000006000006000006000007000007000
00700000F80000F80001FC0001EC0001EC0003EE0003C60003C6000783000783000783000F0180
0F01800F01C01F01E0FFC7F8FFC7F8>21 29 -1 9 24]121 dc[ 1F030F83078307C003E001E061F060F86078703C303E381E3FFF3FFF>16 20 -1 0 20]122 dc[
22 2 0 -11 23]123 dc[44 2 0 -11 45]
124 dc dfend /fo df[<7FE1FFC07FE1FFC07FE1FFC00FC0FC000FC0FC000FC0FC000FC0FC00
0FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC00FFFFFFC0FFFFFF
C0FFFFFFC00FC0FC000FC0FC000FC0FC000FC0FC000FC0FC1E0FC0FC3F07C0FC3F07E0FE3F03F8
7F1F00FFFFFE001FE1FC>32 29 0 0 28]11 dc[<0030006001C003C0038007000F001E001E00
3E003C003C007C007C007C00FC00F800F800F800F800F800F800F800F800F800FC007C007C007C
003C003C003E001E001E000F000700038003C001C000600030>12 41 -3 10 19]40 dc[ 600038003C001C000E000F000780078007C003C003C003E003E003E003F001F001F001F001F001
F001F001F001F001F003F003E003E003E003C003C007C0078007800F000E001C003C0038006000
C000>12 41 -3 10 19]41 dc[<387CFEFEFE7C38>7 7 -3 0 13]46 dc[ 007000007000007800003800003800003C00001C00001C00001E00000E00000F00000700000700
0007800003800003800003C00001C00001E00000E00000E00000F0000070000070000078000038
00003C00001C00001C00001E00000E00000E00000F00000700000700000780000380000180>17
41 -3 10 24]47 dc[<07F8001FFE003FFF007C1F80FE1FC0FE0FC0FE0FE0FE0FE07C0FE0380F
E0000FE0000FC0001F80001F0003F80003FC00003F00001F803C1F807E0FC07E0FC07E0FC07E0F
C03C1F801FFF000FFE0003F800>19 27 -2 0 24]51 dc[<03F80007FE001FFF003F0F803E07C0
7C07C07C07E07C07E0FC07E0FC07E0FC07E0FC07E0FC07C0FE07C0FE0780FFFF00FDFE00FC2000
7C07807C0FC03E0FC03E0FC01F0FC00F87C007FF8003FF00007E00>19 27 -2 0 24]54 dc[<03
F8001FFE003FFF007E0F807C03C0F803C0F803E0F803E0F807E0F80FE07C3FE03CFFC01FFFC00F
FF801FFF003FFE003FFF007FE7807FC3807F03C07C03C07803C03803C03C0F801FFF000FFE0003
F800>19 27 -2 0 24]56 dc[ FFC003FFFF8003FFFF8001C07F0001C07F0001E0FF0000E0FE0000E0FE000071FC000071FC0000
7BFC00003BF800003BF800001FF000001FF000001FF000000FE000000FE0000007C0000007C000
0007C00000038000>31 28 -2 0 36]65 dc[ 0FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007E00FE00FC00FE03F800FFFFE
000FFFFF000FE01F800FE00FC00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FC00FE0
1FC0FFFFFF80FFFFFF00FFFFF800>28 28 -2 0 34]66 dc[<001FE00000FFFC0003FFFE0007F8
0F000FE003801F8001C03F0001C03F0000E07F0000E07E0000E0FE000000FE000000FE000000FE
000000FE000000FE000000FE000000FE0000E07E0000E07F0000E03F0001E03F0001E01F8003E0
0FE007E007F81FE003FFFDE000FFF8E0001FE060>27 28 -3 0 34]67 dc[ FFFFFFC00FE01FE00FE007F00FE003F80FE001F80FE000FC0FE000FC0FE000FC0FE000FE0FE000
FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000FC0FE000FC0FE001FC0FE0
01F80FE003F80FE007F00FE01FE0FFFFFFC0FFFFFF00FFFFF800>31 28 -2 0 37]68 dc[ FF80FFFFFF80FFFFFF800FE01FC00FE007C00FE003C00FE001C00FE001C00FE1C1C00FE1C0E00F
E1C0E00FE1C0E00FE3C0000FFFC0000FFFC0000FFFC0000FE3C0000FE1C3800FE1C3800FE1C380
0FE1C3800FE007800FE007000FE00F000FE03F00FFFFFF00FFFFFF00FFFFFF00>27 28 -2 0 31
]69 dc[ 000FE1C0000FE1C0000FE1C0000FE3C0000FFFC0000FFFC0000FFFC0000FE3C0000FE1C3800FE1
C3800FE1C3800FE1C3800FE007800FE007000FE00F000FE03F00FFFFFF00FFFFFF00FFFFFF00>
25 28 -2 0 30]70 dc[<000FF818007FFE7801FFFFF807FC07F80FE003F81FC003F83F8003F8
3F0003F87F0003F87E00FFFFFE00FFFFFE00FFFFFE000000FE000000FE000000FE000000FE0000
00FE0000387E0000387F0000383F0000783F8000781FC000F80FE001F807FC07F801FFFF78007F
FE38000FF018>32 28 -3 0 38]71 dc[ 07F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FFFFFF00FFFFFF00F
FFFFF00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F0
FFFE7FFFFFFE7FFFFFFE7FFF>32 28 -2 0 37]72 dc[ F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007
F00007F00007F00007F00007F00007F00007F000FFFF80FFFF80FFFF80>17 28 0 0 18]73 dc[
FE000FE1FC000FF3FC000FFBF8000FFFF0000FFFF0000FEFE0000FE7C0000FE3C0000FE1E0000F
E0F0000FE07C000FE01E000FE00F000FE007800FE003C0FFFE0FFFFFFE0FFFFFFE0FFF>32 28
-2 0 37]75 dc[ E0070FE0070FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000F
E0000FE000FFFF80FFFF80FFFF80>24 28 -2 0 29]76 dc[ FF0E00F803F00E01FC03F00E01FC03F00E03FE03F00E03FE03F00E03FE03F00E07E703F00E07E7
03F00E0FC383F00E0FC383F00E1F81C3F00E1F81C3F00E1F81C3F00E3F00E3F00E3F00E3F00E7E
0073F00E7E0073F00E7E0073F00EFC003BF00EFC003BF00FF8001FF00FF8001FF0FFF8001FFFFF
F0000FFFFFF0000FFF>40 28 -2 0 45]77 dc[ F00E0007F00E000FF00E000FF00E001FF00E003FF00E007FF00E00FF700E00FE700E01FE700E03
FC700E07F8700E07F0700E0FF0700E1FE0700E3FC0700E7F80700E7F00700EFF00700FFE00700F
FC0070FFF807FFFFF807FFFFF007FF>32 28 -2 0 37]78 dc[<003FE00001FFFC0003F07E000F
C01F801F800FC03F800FE03F0007E07F0007F07E0003F07E0003F0FE0003F8FE0003F8FE0003F8
FE0003F8FE0003F8FE0003F8FE0003F8FE0003F87E0003F07E0003F07F0007F03F0007E01F0007
C01F800FC00FC01F8003F07E0001FFFC00003FE000>29 28 -3 0 36]79 dc[ 00FFFE00000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0
00000FFFFC000FFFFF000FE03F800FE01FC00FE00FC00FE00FE00FE00FE00FE00FE00FE00FE00F
E00FE00FE00FC00FE01FC00FE03F80FFFFFF00FFFFFE00FFFFF000>27 28 -2 0 33]80 dc[<00
0003C0000007E000000FF000000FF000001FF800001FF800001FF800001C08003FF80801FFFC00
03F07E000FF07F801FB0EFC03F9FCFE03F0F07E07F0007F07E0003F07E0003F0FE0003F8FE0003
F8FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE0003F87E0003F07E0003F07F0007F03F00
07E01F800FC01F800FC00FC01F8003F07E0001FFFC00003FE000>29 36 -3 8 36]81 dc[ 03FE00FFFE0FFF00FFFE1FC3800FE03F83800FE03F80000FE03F80000FE03F80000FE03F80000F
E03F80000FE03F80000FE03F80000FE07F00000FE0FE00000FFFFC00000FFFFE00000FE03F8000
0FE01FC0000FE00FC0000FE00FE0000FE00FE0000FE00FE0000FE00FE0000FE00FC0000FE01FC0
000FE03F8000FFFFFF0000FFFFFC0000FFFFF00000>33 28 -2 0 36]82 dc[ FF80FC07C0F003E0E001E0E001F0E001F00001F00003F0000FF001FFF00FFFE01FFFE03FFFC07F
FF807FFF00FFFC00FF8000FC0000F800E0F800E0F801E07801E07C07E03FFFE01FFEE007F860>
20 28 -3 0 27]83 dc[<07FFFF0007FFFF0007FFFF00001FC000001FC000001FC000001FC000
001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0
00E01FC070E01FC070E01FC070E01FC070F01FC0F0701FC0E0781FC1E07C1FC3E07FFFFFE07FFF
FFE07FFFFFE0>28 28 -2 0 33]84 dc[<000FF800007FFE0000FFFF8001FC07C003F001E007E0
00E007E000700FE000700FE000700FE000700FE000700FE000700FE000700FE000700FE000700F
E000700FE000700FE000700FE000700FE000700FE000700FE000700FE000700FE000700FE00070
FFFE07FFFFFE07FFFFFE07FF>32 28 -2 0 37]85 dc[<0001C000000003E000000003E0000000
07F000000007F000000007F00000000FF80000000FF80000001FFC0000001FDC0000003FDE0000
003F8E0000003F8E0000007F870000007F07000000FF07800000FE03800001FE03C00001FC01C0
0001FC01C00003FC00E00003F800E00007F800F00007F000700007F0007000FFFE03FF80FFFE03
FF80FFFE03FF80>33 28 -1 0 36]86 dc[<000780078000000780078000000F8007C000000FC0
0FC000000FC00FC000001FE01FE000001FE01FE000003FE01FF000003FF03FF000003FF03FF000
007FF03FF800007F387F3800007F387F380000FE3CFF1C0000FE1CFE1C0001FE1CFE1E0001FC1F
FE0E0001FC0FFC0E0003FC0FFC0F0003F807F8070003F807F8070007F007F8038007F007F00380
0FF007F003C00FE00FF001C0FFFCFFFE1FFCFFFCFFFE1FFCFFFCFFFE1FFC>46 28 -1 0 49]87
dc[ 7F8000003C7F0000001CFF0000001FFE0000000FFC00000007FC00000007F800000007F0000000
0FF00000001FE00000001FF00000003FF00000007FB80000007F3C000000FF1E000001FE0E0000
01FC0F000003FC0780007FFF3FFE007FFF3FFE007FFF3FFE00>33 28 -1 0 36]88 dc[ FFFFFCFFFFFC7F01FC3F807C3FC03C1FC01C1FE01E0FE01E07F00E07F80E03F80E03FC0E01FC00
00FE0000FF00007F00E07F80E03F80E01FC0F01FE0F00FE0780FF07C07F07F03F87FFFFC7FFFFC
7FFFFC>23 28 -3 0 29]90 dc[<0FC3F83FF7F87E3FF8FC1FC0FC0FC0FC0FC0FC0FC07E0FC03F
8FC01FFFC003FFC00C0FC01E0FC03F0FC03F0F803F1F801FFE0007F800>21 18 -1 0 23]97 dc
[<1C1F801EFFE01FE1F01F80F81F807C1F807C1F807E1F807E1F807E1F807E1F807E1F807E1F80
7C1F807C1F80F81FE1F01FFFE01F9F801F80001F80001F80001F80001F80001F80001F80001F80
00FF8000FF8000FF8000>23 29 -1 0 27]98 dc[<03F8000FFE001F07003E03807E03807C0000
FC0000FC0000FC0000FC0000FC0000FC0C007C1E007C3F003E3F001F3F000FFE0003F800>17 18
-2 0 21]99 dc[<03F3FE0FFFFE1F0FFE3E03F07C03F07C03F0FC03F0FC03F0FC03F0FC03F0FC
03F0FC03F07C03F07C03F03E03F01F07F00FFFF003FBF00003F00003F00003F00003F00003F000
03F00003F00003F0001FF0001FF0001FF0>23 29 -2 0 27]100 dc[<01FC000FFF801F83C03E
01C07E00E07C0000FC0000FC0000FC0000FFFFE0FFFFE0FC03E07C03E07C03C03E07C01F0F800F
FF0001FC00>19 18 -1 0 22]101 dc[<7FFC007FFC007FFC000FC0000FC0000FC0000FC0000F
C0000FC0000FC0000FC0000FC0000FC0000FC0000FC000FFF800FFF800FFF8000FC0000FC0000F
C0000FC0000FC3C00FC7E00FC7E007E7E003F3E000FFC0003F80>19 29 0 0 15]102 dc[<03FE
001FFFC03E03E07C01F0F800F8F800F8F800F87801F83FFFF81FFFF03FFFE03FFFC03FFF007800
0030000033F0001FFC003E1F003C0F007C0F807C0F807C0F807C0FB03C0F783E1F780FFFF803F1
F0>21 27 -1 9 24]103 dc[ F81F81F81F81F81F81F81F81F81FC1F81FC1F81FF1F01FBFF01F8FC01F80001F80001F80001F80
001F80001F80001F80001F8000FF8000FF8000FF8000>24 29 -1 0 27]104 dc[ F01F801F801F801F801F801F801F801F801F801F801F801F80FF80FF80FF800000000000000000
00000E001F003F803F803F801F000E00>12 30 0 0 13]105 dc[<1FE07FF8FC7CFC7EFC3FFC3F
783F003F003F003F003F003F003F003F003F003F003F003F003F003F003F003F003F01FF01FF01
FF00000000000000000000001C003E007F007F007F003E001C>16 38 4 8 15]106 dc[ FFC7FCFFC7FC1F8FC01F8F801F9F801FBF001FBE001FFE001FFC001FF8001FF8001FBC001F9E00
1F8F001F9FF81F9FF81F9FF81F80001F80001F80001F80001F80001F80001F80001F8000FF8000
FF8000FF8000>22 29 -1 0 25]107 dc[ 801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F80FF80FF80FF80>12
29 0 0 13]108 dc[ 1F80FC07E01F80FC07E01F80FC07E01F80FC07E01F80FC07E01F80FC07E01F80FC07E01FC0FE07
E01FC0FE07E0FFF0FB87C0FFBFF1FF80FF8FE07F00>38 18 -1 0 41]109 dc[ FFF3FF1F81F81F81F81F81F81F81F81F81F81F81F81F81F81F81F81F81F81F81F81FC1F81FC1F8
FFF1F0FFBFF0FF8FC0>24 18 -1 0 27]110 dc[<01FC000FFF801F07C03E03E07C01F07C01F0
FC01F8FC01F8FC01F8FC01F8FC01F8FC01F87C01F07C01F03E03E01F07C00FFF8001FC00>21 18
-1 0 24]111 dc[ E1F01F80F81F80FC1F807C1F807E1F807E1F807E1F807E1F807E1F807E1F807C1F80FC1F80F8FF
E1F0FFFFE0FF9F80>23 26 -1 8 27]112 dc[<003FFC003FFC003FFC0007E00007E00007E000
07E00007E007E7E00FFFE03F1FE03E07E07E07E07C07E0FC07E0FC07E0FC07E0FC07E0FC07E0FC
07E07C07E07E07E03E07E01F0FE00FF9E003F0E0>22 26 -2 8 25]113 dc[ F8001F80001F80001F80001F80001F80001F80001F80001F80001F86001F8F001F9F801F9F80FF
DF80FF7F00FF3C00>17 18 -1 0 20]114 dc[ F8FFF0FFC0F800F038F03870783FF80FD8>14 18 -2 0 19]115 dc[<03E007F80F981F9C1F9C
1F9C1F9C1F801F801F801F801F801F801F801F80FFFCFFFC3FFC0F800F80078007800380038003
800380>14 26 -1 0 19]116 dc[<03F9FF07FDFF0F87FF1F83F81F81F81F81F81F81F81F81F8
1F81F81F81F81F81F81F81F81F81F81F81F81F81F8FF8FF8FF8FF8FF8FF8>24 18 -1 0 27]
117 dc[<00780000780000FC0000FC0001FE0001FE0001FE0003F70003F70007F78007E38007E3
800FC1C00FC1C01FC1E0FFE3FCFFE3FCFFE3FC>22 18 -1 0 25]118 dc[<00F01E0000F01E00
00F83E0001F83F0001FC7F0001FC7F0003FC7F8003FEFF8007FEFBC007EFF9C007E7F1C00FC7F0
E00FC3F0E01FC3E0F01F87E070FF8FF9FEFF8FF9FEFF8FF9FE>31 18 -1 0 34]119 dc[ FEFF9FFEFF9FFE0F0FC0079FC003DF8001FF0000FE0000FE0000FC0001FC0003FC0007FE0007EF
000FC780FFC7FCFFC7FCFFC7FC>23 18 -1 0 25]120 dc[<3E00007F8000E3C000E1E000FCE0
00FCF00078700000700000780000780000FC0000FC0000FE0001FE0001FE0003FF0003F70007F7
8007E38007E3800FC1C00FC1C01FC1E0FFE3FCFFE3FCFFE3FC>22 26 -1 8 25]121 dc[ 00FFFF007E1F007F0F003F87001F87800FC3800FE38007E38003F00073F80071F80070FC0078FE
00387F003E3F003FFF803FFF80>17 18 -1 0 21]122 dc dfend /fp df[ 801E07801E07801E07801E07801E07801E07801E07801E07801E07801E07801E0780FFFFF0FFFF
F01E07801E07801E07801E07801E07801E07860F07CF0787CF01FFFE007E3C>24 26 0 0 22]
11 dc[ 801E07801E0780FFFF80FFFF801E00001E00001E00001E00001E03001E07800F078007838001FF
00007E00>20 26 0 0 21]12 dc[ 1E03C0F01E03C0F01E03C0F01E03C0F01E03C0F01E03C0F01E03C0F01E03C0F0FFFFFFF0FFFFFF
F01E03C0001E03C0001E03C0001E03C0001E03C0601E03C0F00F03E0F007C1F07001FFBFE0007F
0FC0>31 26 0 0 32]14 dc[<404060603030181818180C0C0C0C7C7CFCFCFCFCF8F87070>14
12 -1 -14 19]34 dc[<4060303038181878F8F8F070>5 12 -3 7 11]44 dc[
10 3 0 -7 13]45 dc[<70F8F8F870>5 5 -3 0 11]46 dc[<07E01FF83C3C381C700E700E700E
F00FF00FF00FF00FF00FF00FF00FF00FF00FF00F700E700E700E381C3C3C1FF807E0>16 24 -1
0 19]48 dc[ 80078007800780FF80FF8007800180>12 24 -3 0 19]49 dc[ 0C060C0300038001C000E000F000780078007C603CF03CF07CE07C607870F03FE00F80>14 24
-2 0 19]50 dc[<0F803FE070F0E078F078F07C607C007C007C0078007000E00F800FC001E000
F000F000F87878787878F830F03FE00F80>14 24 -2 0 19]51 dc[<07FF07FF00780078007800
780078FFFFFFFFE0787078307838781C780C7806780778037801F801F800F8007800780038>16
24 -1 0 19]52 dc[<1F003F8071C078E07870307800380038003C1FBC3FFC707C707CF03CF03C
F03CF03CF038F0387038707038701FE00780>14 24 -2 0 19]57 dc[<70F8F8F8700000000000
0070F8F8F870>5 16 -3 0 11]58 dc[<4060303038181878F8F8F07000000000000070F8F8F8
70>5 23 -3 7 11]59 dc[<0E001F001F001F000E000000000000000000060006000600060006
000700030003C001E000F06078F078F078E07860F03FE01F80>13 26 -2 0 18]63 dc[ C0FF81FFC01E003C000C003C0006007800060078000600780003FFF00003FFF0000300F0000181
E0000181E0000181E00000C3C00000C3C00000C3C000006780000067800000778000003F000000
3F0000003F0000001E0000001E0000001E0000000C0000>26 26 -1 0 29]65 dc[ F00F00F80F007C0F003C0F003E0F003E0F003E0F003E0F003E0F007C0F00780F01F00FFFE00FFF
E00F01F00F00F80F007C0F007C0F007C0F007C0F007C0F00F80F01F0FFFFE0FFFF80>23 26 -1
0 27]66 dc[<003F0001FFC003E0700F80381F00181E000C3C000C7C0006780006780006F80000
F80000F80000F80000F80000F800007800067800067C00063C000E1E000E1F001E0F803E03E06E
01FFC6003F02>23 26 -2 0 28]67 dc[ 1E000F001F000F000F000F000F000F000F800F000F800F000F800F000F800F000F800F000F800F
000F800F000F800F000F000F000F000F001E000F001E000F003C000F0078000F01F000FFFFE000
FFFF8000>25 26 -1 0 29]68 dc[<003F820001FFE60003E07E000F801E001F001E001E001E00
3C001E007C001E0078001E007803FFC0F803FFC0F8000000F8000000F8000000F8000000F80000
0078000600780006007C0006003C000E001E000E001F001E000F803E0003E06E0001FFC600003F
0200>26 26 -2 0 30]71 dc[ 0F000F000F000F000F000F000F000F000F000F000F00FFF0FFF0>12 26 -1 0 14]73 dc[ FFC0FFF0FFC00F003E000F003C000F0078000F0078000F00F0000F01F0000F01E0000F03C0000F
87C0000FC780000F6F00000F3F00000F1E00000F0C00000F0600000F0300000F0180000F00C000
0F0060000F0030000F0018000F003E00FFF07FC0FFF07FC0>26 26 -1 0 30]75 dc[ FFE00F03E00F00E00F00600F00700F00700F00300F00300F00300F00000F00000F00000F00000F
00000F00000F00000F00000F00000F00000F00000F00000F00000F0000FFF800FFF800>20 26
-1 0 24]76 dc[ F00C1E60F00C1E60F00C3C30F00C3C30F00C3C30F00C7818F00C7818F00C7818F00CF00CF00CF0
0CF00CF00CF00DE006F00DE006F00DE006F00FC003F00FC003F0FFC003FFFF8001FF>32 26 -1
0 35]77 dc[<007F000001FFC00007C1F0000F0078001E003C003E003E003C001E007C001F007C
001F00F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F8078000F00
7C001F003C001E003E003E001E003C000F00780007C1F00001FFC000007F0000>25 26 -2 0 30
]79 dc[ 800FFFE00F01F00F00F80F00780F007C0F007C0F007C0F007C0F007C0F00780F00F80F01F0FFFF
E0FFFF80>22 26 -1 0 26]80 dc[<00001C0000003E0000007F0000007F000000FF800000E180
0000C080007FC08001FFC00007E1F0000F6378001E3E3C003E1C3E003C001E007C001F0078000F
00F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F8078000F007C00
1F003C001E003E003E001E003C000F00780007C1F00001FFC000007F0000>25 33 -2 7 30]81
dc[ 01C0000F03C0000F0380000FFF00000FFFC0000F03E0000F01F0000F00F0000F00F8000F00F800
0F00F8000F00F8000F00F0000F01F0000F03E000FFFFC000FFFE0000>26 26 -1 0 28]82 dc[<
87E0DFF8FC1CF00EE006C007C007C0070007000F001E01FE0FFC1FF83FF07F80F800F000E006E0
06E006600E701E383E1FF60FC2>16 26 -2 0 21]83 dc[<03FFF00003FFF000001E0000001E00
00001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E
0000001E0000001E0000001E0000C01E0180C01E0180C01E0180E01E0380601E0300601E030078
1E0F007FFFFF007FFFFF00>25 26 -1 0 28]84 dc[<003F000000FFC00001E0E0000380300007
801800070018000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C00
0F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F001E
00FFF0FFC0FFF0FFC0>26 26 -1 0 29]85 dc[<003000C000003801C000007801E000007801E0
00007C03E000007C03E00000FC03F00000F607B00000F607B00001E607980001E70F980001E30F
180003C30F0C0003C30F0C0003C19E0C0007819E0E0007819E06000780FC06000780FC06000F00
FC03000F007803000F007803001E007801801E00F803C0FFC7FF1FF0FFC7FF1FF0>36 26 -1 0
39]87 dc[ C0FEFE>7 37 -3 9 11]91 dc[<38387C7CFCFCFCFCF8F8C0C0C0C060606060303018180808>
14 12 -3 -14 19]92 dc[ 0606060606060606FEFE>7 37 0 9 11]93 dc[<1F1E003FFF00787D80F03D80F03D80F03C00F8
3C007C3C003FFC000FFC00003C00303C00783C007878007FF0001FC000>17 16 -1 0 19]97 dc
[<187C001DFF001F87801E03C01E01C01E01E01E01E01E01E01E01E01E01E01E01E01E01C01E03
C01F87801FFF001E7E001E00001E00001E00001E00001E00001E00001E00001E0000FE0000FE00
00>19 26 0 0 21]98 dc[<07E00FF83E18380C7800F000F000F000F000F000F0007018383C3C
3C0FFC07F0>14 16 -1 0 17]99 dc[<07CFE01FFFE03C3F00780F00700F00F00F00F00F00F00F
00F00F00F00F00F00F00700F00780F003C1F001FFF0007CF00000F00000F00000F00000F00000F
00000F00000F00000F00007F00007F00>19 26 -1 0 21]100 dc[<07E00FF03E18380C7800F0
00F000F000F000FFFCFFFC703C78383C781FF007C0>14 16 -1 0 17]101 dc[ 1E001E001E001E001E001E001E001E001E001E001E00FFC0FFC01E001E001E001E001E001E180F
3C073C03F800F0>14 26 0 0 12]102 dc[<07E03FFC781EF00FE007E007F00F7FFF3FFE3FFC7F
F07000700037803FE038707878787878787878787838771FFF078E>16 24 -1 8 19]103 dc[<
FFCFF0FFCFF01E07801E07801E07801E07801E07801E07801E07801E07801E07801E07801F0780
1F87801EFF001E7E001E00001E00001E00001E00001E00001E00001E00001E0000FE0000FE0000
>20 26 0 0 21]104 dc[ FE00FE00000000000000000000001C003E003E003E001C00>10 26 0 0 11]105 dc[<3E007F80
F3C0F1E061E001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E001E00F
E00FE00000000000000000000001C003E003E003E001C0>11 33 3 7 12]106 dc[ E01E1F001E3E001E3C001E7C001E78001FF0001FF0001FE0001EE0001E70001E38001E1E001E3F
C01E3FC01E00001E00001E00001E00001E00001E00001E00001E0000FE0000FE0000>19 26 0 0
20]107 dc[ 001E001E001E001E001E001E001E00FE00FE00>10 26 0 0 11]108 dc[ 03C0781E03C0781E03C0781E03C0781E03C0781E03C0781E03C0781E03C0781E03C0781E03C078
1F03E0781F87F0F8FEFF9FF0FE3E07C0>32 16 0 0 33]109 dc[ 1E07801E07801E07801E07801E07801E07801E07801E07801F07801F8780FEFF00FE7E00>20 16
0 0 21]110 dc[<07E01FF83C3C781E700EF00FF00FF00FF00FF00FF00F700E781E3C3C1FF807
E0>16 16 -1 0 19]111 dc[ 001F87801E03C01E03C01E01E01E01E01E01E01E01E01E01E01E01E01E03C01E03C01F8780FFFF
00FE7E00>19 23 0 7 21]112 dc[<007FE0007FE0000F00000F00000F00000F00000F0007CF00
1FEF003C3F00781F00780F00F00F00F00F00F00F00F00F00F00F00F00F00780F00781F003C3F00
1FF70007C300>19 23 -1 7 20]113 dc[ 001E301F781F78FFF8FEE0>13 16 0 0 15]114 dc[ C0FF80FC00E060E06060E03FE01F60>12 16 -1 0 15]115 dc[<0F801FC03C603C603C603C60
3C603C003C003C003C003C003C003C00FFC0FFC03C001C001C000C000C000C000C00>11 23 -1
0 15]116 dc[<03E7F00FFFF01E1F801E0F801E07801E07801E07801E07801E07801E07801E07
801E07801E07801E0780FE3F80FE3F80>20 16 0 0 21]117 dc[<01C00001C00001C00003E000
03E00007F00007B00007B0000FB8000F18000F18001E0C001E0C001E0E00FF1F80FF1F80>17 16
-1 0 20]118 dc[<0180C00001C1C00003C1E00003C1E00003E3E00007E3F00007E3B0000FB7B8
000F3798000F3718001F1F1C001E1F0C001E1E0C003E1E0E00FE7F9F80FE7F9F80>25 16 -1 0
28]119 dc[ 07B8000798000F1E007F9FC07F9FC0>19 16 0 0 20]120 dc[<780000FE0000C70000F3000061
800001800001800001C00001C00001C00003E00003E00007F00007B00007B0000FB8000F18000F
18001E0C001E0C001E0E00FF1F80FF1F80>17 23 -1 7 20]121 dc[ 1E181F180F18078067C063C061E061F070F07FF87FF8>13 16 -1 0 17]122 dc[ FFFFFFFFF8>37 2 0 -9 38]124 dc dfend /fq df[<1803803807C01C0E601C0E301C07301C
07000E07000E03800F0380CF038067838067C3803E7F801C3E00>20 14 0 0 21]110 dc dfend
/fr df[ 00FFFFE0FFFFE01C07001C07001C07001C07001C0F0C0E0F9E070F9E03FFFE007C7C>23 23 0 0
21]11 dc[<40603030181878F8F8F070>5 11 -2 6 10]44 dc[<70F8F8F870>5 5 -2 0 10]
46 dc[ 00030003800180018001C000C000E000600060007000300030003800180018>13 33 -2 8 18]
47 dc[<07C01FF03C78783C701C701CF01EF01EF01EF01EF01EF01EF01EF01EF01E701C701C78
3C3C781FF007C0>15 21 -1 0 18]48 dc[<7FF07FF00700070007000700070007000700070007
00070007000700070007000700F700FF000F000300>12 21 -2 0 18]49 dc[ 3818180C180E000700038001C000E000F0007800787078F878F878F8F071F03FE01F80>13 21
-2 0 18]50 dc[<0FC03FF07038F83CF81EF81E701E001E003C007807E007E000F00078103C78
3C783C783C30781FF00FC0>15 21 -1 0 18]51 dc[<03FE03FE0070007000700070FFFEFFFEE0
707070307018701C700E700670077003F001F000F000F00070>15 21 -1 0 18]52 dc[<1F003F
C060E0F070F078F078607800780078607070E07FC06F8060006000600060007F807FE07FF06030
>13 21 -2 0 18]53 dc[<07C01FF03C38381C701E701EF01EF01EF01EF81CF81CFFF8F7F0F080
70007018383C1C3C0E1C07F801F0>15 21 -1 0 18]54 dc[<06000F000F000F000F000F000700
07000700030003800180018000C00060C030C018E0187FFC7FFE7FFE6000>15 22 -2 0 18]55
dc[<0FC03FF07838700CE00EE00EE00EE03E70FC3DFC1FF80FE03FF03F387C1C700C600C600C30
381FF007C0>15 21 -1 0 18]56 dc[<1F803FC070F078387838301C001C021E1FDE3FFE703E70
3EF01EF01EF01EF01CF01C703838381FF007C0>15 21 -1 0 18]57 dc[ 0C01E00C01E00603C007FFC007FFC0030780030780030780018F00018F00018F0000DE0000DE00
00DE00007C00007C00007C00003800003800003800>23 23 -1 0 26]65 dc[ 01E01E00F01E00781E00781E00781E00781E00781E00F01E01E01FFFC01FFF801E03C01E01E01E
00F01E00F01E00F01E00F01E01E01E03E0FFFF80FFFF00>21 23 -1 0 25]66 dc[<00FC0003FF
000F81801E00C03C0060380060780030700030F00030F00000F00000F00000F00000F00000F000
307000307800303800703C00701E00F00F83F003FF3000FC10>20 23 -2 0 25]67 dc[ FFFFC01E01E01E00F01E00781E003C1E001C1E001C1E001E1E001E1E001E1E001E1E001E1E001E
1E001E1E001C1E003C1E00381E00781E00F01E03E0FFFFC0FFFF00>23 23 -1 0 27]68 dc[ FFF0FFFFF01E00F01E00701E00301E00381E00181E0C181E0C181E0C181E1C001FFC001FFC001E
1C001E0C001E0C301E0C301E00301E00701E00601E01E0FFFFE0FFFFE0>21 23 -1 0 24]69 dc
[ 001E1C001E0C001E0C301E0C301E00301E00701E00601E01E0FFFFE0FFFFE0>20 23 -1 0 23]
70 dc[<00FF0803FFF807C0F80E00781C0078380078780078780078F007FEF007FEF00000F000
00F00000F00000F000187800187800183800381C00380E007807C1F803FF9800FE08>23 23 -2
0 28]71 dc[ 1FFFF01FFFF01E00F01E00F01E00F01E00F01E00F01E00F01E00F01E00F0FFC7FEFFC7FE>23 23
-1 0 26]72 dc[ 000F000F000F000F000F00FFF0FFF0>12 23 0 0 13]73 dc[ 01E01E03E01E03C01E07801E0F801F0F001F9E001EFE001E7C001E38001E18001E0C001E06001E
03001E01801E00C01E00E0FFC1FEFFC1FE>24 23 -1 0 27]75 dc[ C01E00C01E00E01E00601E00601E00601E00601E00001E00001E00001E00001E00001E00001E00
001E00001E00001E00001E0000FFE000FFE000>19 23 -1 0 22]76 dc[ 0E03C0181F03C0181F03C0183D83C0183D83C0183D83C01878C3C01878C3C01878C3C018F063C0
18F063C018F063C019E033C019E033C01BC01BC01BC01BC01BC01BC01F800FC01F800FC0FF800F
F8FF0007F8>29 23 -1 0 32]77 dc[ B01807B0180F30181E30183E30183C3018783018F83018F03019E0301BE0301BC0301F80301F80
30FF01FEFE01FE>23 23 -1 0 26]78 dc[<00FC0003FF000F87C01E01E03C00F0380070780078
780078F0003CF0003CF0003CF0003CF0003CF0003CF0003C7000387800783800703C00F01E01E0
0F03C003FF0000FC00>22 23 -2 0 27]79 dc[ 00001E00001E00001E00001FFE001FFF801E03C01E01E01E00F01E00F01E00F01E00F01E00F01E
01E01E03C0FFFF80FFFE00>20 23 -1 0 24]80 dc[<0000F00001F80001F80003FC00038C0003
0400FF0403FF000FC7C01EC5E03CFCF0387870780078700038F0003CF0003CF0003CF0003CF000
3CF0003CF0003C7000387800783800703C00F01E01E00F87C003FF0000FC00>22 29 -2 6 27]
81 dc[ 001FFF801E03C01E01E01E00F01E00F01E00F01E00F01E01E01E03C0FFFF80FFFC00>24 23 -1
0 26]82 dc[<87E0DFF0F838E01CC00EC00EC00E000E001E007C07FC1FF83FF07FC0FC00F000E0
0CE00CE01C601C787C3FEC0FC4>15 23 -2 0 20]83 dc[<0FFFC00FFFC0007800007800007800
007800007800007800007800007800007800007800007800007800007800C0780CC0780CC0780C
E0781C6078187078387FFFF87FFFF8>22 23 -1 0 25]84 dc[<007E0001FF800381C00700600E
00601E00301E00301E00301E00301E00301E00301E00301E00301E00301E00301E00301E00301E
00301E00301E00301E0030FFC1FEFFC1FE>23 23 -1 0 26]85 dc[<003800003800003800007C
00007C0000FE0000F60000F60001E30001E30001E30003C18003C18007C1C00780C00780C00F80
E00F00600F00601E00301E0070FFC1FEFFC1FE>23 23 -1 0 26]86 dc[<007007000000700700
00007007000000F80F800000F80F800000F80F800001FC1FC00001EC1EC00001EC1EC00003CE3E
600003C63C600003C63C600007877C3000078378300007837830000F037818000F01F018000F01
F018001E01F00C001E01E00C001E01E00E00FF8FFC7F80FF8FFC7F80>33 23 -1 0 36]87 dc[<
FF87FEFF87FE0E01E00603E00703C00307C0038780018F0000DF0000FE00007E00003C00007800
00F80000FC0001FC0003E60003C70007C3000781800F03C0FFC7FCFFC7FC>23 23 -1 0 26]88
dc[ E00000F00000F800C07800C07C00C03C00E01E00E01F00F80F00FFFF80FFFF80>17 23 -2 0 22
]90 dc[<1F1C7FFE787BF03BF03BF03878383FF80FF83038783878707FE01FC0>16 14 -1 0 18
]97 dc[<18FC001BFE001F0F001C07801C03C01C03C01C03C01C03C01C03C01C03C01C03801F07
001FFF001CFC001C00001C00001C00001C00001C00001C00001C0000FC0000FC0000>18 23 0 0
20]98 dc[<07C01FF03C3078187000F000F000F000F000703078783C781FF807E0>13 14 -1 0
16]99 dc[<0FCFC01FFFC0383E00700E00F00E00F00E00F00E00F00E00F00E00F00E00780E003C
1E001FFE000FCE00000E00000E00000E00000E00000E00000E00000E00007E00007E00>18 23
-1 0 20]100 dc[<07C01FF03C3078187000F000F000F000FFF8FFF8707838701FE00FC0>13 14
-1 0 16]101 dc[ 001C001C001C300E780E7807F801F0>13 23 0 0 11]102 dc[<0FE03FF8783CE00EE00EE00EE0
1E7FFC3FF87FF060006F807FE07070F078F078F078F07870773FFF0F9E>16 21 -1 7 18]103
dc[ FE001CFC001C00001C00001C00001C00001C00001C00001C0000FC0000FC0000>19 23 0 0 20]
104 dc[8 23 0 0 10]105 dc[<3E
00FF00F380F1C061C001C001C001C001C001C001C001C001C001C001C001C001C001C00FC00FC0
0000000000000000038007C007C007C00380>10 29 3 6 11]106 dc[ 3C001C78001C70001EF0001FE0001DC0001CC0001C70001C38001C7F801C7F801C00001C00001C
00001C00001C00001C00001C0000FC0000FC0000>18 23 0 0 19]107 dc[ 1C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FC00FC00>
9 23 0 0 10]108 dc[ 0701C01C0701C01C0701C01C0701C01F0FC3C0FFFEFF80FCFC3F00>29 14 0 0 30]109 dc[ 9FE0FF9FE01C07001C07001C07001C07001C07001C07001C07001C07001C07001F0F00FFFE00FC
FC00>19 14 0 0 20]110 dc[<07C01FF03838701CF01EF01EF01EF01EF01E701C701C38381FF0
07C0>15 14 -1 0 18]111 dc[ 0F001C07801C03C01C03C01C03C01C03C01C03C01C03C01C07801F0F00FFFF00FCFC00>18 20 0
6 20]112 dc[<007FC0007FC0000E00000E00000E00000E000F8E001FEE003C3E00781E00F00E
00F00E00F00E00F00E00F00E00F00E00780E003C3E001FF6000FC600>18 20 -1 6 19]113 dc[
13 14 0 0 14]114 dc[
<9F00FFC0E0E0C0E0C0E001E01FC07F80FE00E000E0C0E0C07FC01FC0>11 14 -1 0 14]115 dc
[<0F001F8038C038C038C038C0380038003800380038003800FF80FF8078003800180018001800
1800>10 20 -1 0 14]116 dc[<07E7E00FFFE01C1F001C0F001C07001C07001C07001C07001C
07001C07001C07001C0700FC3F00FC3F00>19 14 0 0 20]117 dc[<018003C003C003C0076007
600E700E300E301C181C18381CFE3FFE3F>16 14 -1 0 19]118 dc[<03030007038007878007
87800F86C00ECEC00ECEC01CCC601CFC601C7C60387870387870FCFCFCFCFCFC>22 14 -1 0 25
]119 dc[16 14 -1 0
19]120 dc[<7800FE00C600F30063000180018003C003C003C0076007600E700E300E301C181C
18381CFE3FFE3F>16 20 -1 6 19]121 dc[ C1C0E0E0FFF0FFF0>13 14 -1 0 16]122 dc dfend /fs df[<1F003F8071C060C0E0E0E0E0E0
E0E0E0E0E0E0E0E0E0E0E060C071C03F801F00>11 16 -1 0 15]48 dc[ 001C001C001C001C001C001C001C009C00FC007C000C00>9 16 -2 0 15]49 dc[ C0306018600E000700038001C001E000E0E0E0E1E0C3C07F801F00>11 16 -1 0 15]50 dc[<3F
007F80E1C0E1E041E001E001C003C00F000F80038023C073C073C03F801F00>11 16 -1 0 15]
51 dc[<1FE01FE0038003800380FFE0FFE0E380738033801B801F800F80078007800380>11 16
-1 0 15]52 dc[<3F007F80E1C0E0E040E000E060E070C07F806F00600060007E007F007F8060
80>11 16 -1 0 15]53 dc[<1F003F8070C060E0E0E0E0E0E0E0F0E0FFC0FF80E200600071C039
C01FC00780>11 16 -1 0 15]54 dc[<08001C001C001C001C001C000C000C000E0006000300C1
80C1807FC07FE07FE06000>11 17 -2 0 15]55 dc[<1F003F8071C0E0E0E0E0E0E073E03FC01F
803F8079C060C060C061C03F801F00>11 16 -1 0 15]56 dc[<3E007F00738071C000C008E03F
E07FE0E1E0E0E0E0E0E0E0E0C071C03F801F00>11 16 -1 0 15]57 dc dfend bop 348 373 a
fn(PC-CHOICES)16 b(OBJECT-ORIENTED)h(OPERA)l(TING)f(SYSTEM)942 898 y(BY)801
985 y(LUP)g(YUEN)f(LEE)647 1081 y(B.S.,)f(Univ)o(ersit)o(y)g(of)h(T)l(oron)o
(to,)e(1991)893 1648 y(THESIS)463 1744 y(Submitted)h(in)h(partial)f(ful\014ll\
men)o(t)f(of)h(the)i(requiremen)o(ts)417 1800 y(for)e(the)h(degree)h(of)f(Mas\
ter)f(of)h(Science)h(in)f(Computer)f(Science)671 1856 y(in)h(the)g(Graduate)g
(College)f(of)h(the)483 1913 y(Univ)o(ersit)o(y)f(of)h(Illinois)f(at)h(Urbana\
-Champaign,)e(1992)821 2398 y(Urbana,)h(Illinois)g eop bop 348 478 a fn(PC-CH\
OICES)16 b(OBJECT-ORIENTED)h(OPERA)l(TING)f(SYSTEM)776 584 y(Lup)g(Y)l(uen)g
(Lee,)f(M.S.)643 641 y(Departmen)o(t)e(of)i(Computer)f(Science)483 697 y(Univ)
o(ersit)o(y)g(of)h(Illinois)f(at)h(Urbana-Champaign,)e(1992)711 753 y(Ro)o
(y)i(H.)g(Campb)q(ell,)e(Advisor)108 916 y(Maximizing)h(soft)o(w)o(are)h(reus\
e)j(is)e(the)h(cen)o(tral)f(consideration)g(in)h(the)g(dev)o(elopmen)o(t)f
(of)g(PC-Choices,)37 1029 y(a)g(p)q(ort)g(of)f(the)h(Choices)g(ob)s(ject-orie\
n)o(ted)f(op)q(erating)g(system)f(for)h(generic)h(PCs)g(based)g(on)g(the)g
(In)o(tel)f(386)37 1142 y(micropro)q(cessor.)27 b(Not)17 b(only)h(do)q(es)g
(PC-Choices)g(reuse)g(source)g(co)q(de,)h(in)f(the)g(form)f(of)g(Choices)h
(system)37 1255 y(co)q(de)g(and)f(Unix)h(application)d(co)q(de,)j(it)e(reuses)
i(binary)f(co)q(de,)g(in)g(the)g(form)f(of)g(BIOS/MS-DOS)j(system)37 1368 y
(co)q(de)g(and)f(MS-DOS)h(application)d(co)q(de.)29 b(Soft)o(w)o(are)17 b(in)
o(terfaces)g(suc)o(h)h(as)g(the)g(Unix)g(user)g(in)o(terface)f(and)37 1481 y
(the)i(BIOS/MS-DOS)g(programming)c(in)o(terface)i(are)h(reused)g(in)g(PC-Choi\
ces)g(as)g(w)o(ell.)27 b(Soft)o(w)o(are)17 b(reuse)37 1594 y(helps)f(signi\
\014can)o(tly)e(in)h(the)g(rapid)g(dev)o(elopmen)o(t)f(of)g(p)q(ortable,)h
(reliable)f(and)h(easy-to-use)g(soft)o(w)o(are.)108 1707 y(This)j(thesis)g
(describ)q(es)h(the)f(design)h(and)f(implemen)o(tatio)o(n)e(of)i(the)g(PC-Cho\
ices)g(op)q(erating)g(system)37 1819 y(in)i(detail.)32 b(The)19 b(mec)o(hanis\
ms)e(emplo)o(y)o(ed)h(to)h(reuse)h(binary)f(co)q(de)h(are)f(fully)g(do)q(cume\
n)o(ted)g(in)h(the)f(the-)37 1932 y(sis.)j(Ob)s(ject-orien)o(ted)16 b(framew)
o(orks)d(are)j(do)q(cumen)o(ted)g(with)f(a)g(no)o(v)o(el)h(mo)q(del-in)o(terf\
ace-implem)o(en)o(t)o(atio)o(n)37 2045 y(approac)o(h)h(that)e(emplo)o(ys)g
(n)o(umerous)h(graphical)f(illustrations.)22 b(The)16 b(full)g(source)h(co)q
(de)g(for)f(PC-Choices)37 2158 y(that)e(accompanies)e(the)i(thesis)g(is)f(a)o
(v)m(ailable)g(from)f(the)i(author)f(up)q(on)i(request.)k(The)14 b(binary)g
(distribution)37 2271 y(of)h(PC-Choices)g(ma)o(y)f(b)q(e)h(obtained)g(from)f
(man)o(y)g(MS-DOS)h(soft)o(w)o(are)e(arc)o(hiv)o(es)i(around)g(the)g(w)o(orld\
.)956 2760 y(iii)g eop bop 831 1298 a fn(T)l(o)15 b(m)o(y)f(paren)o(ts)795
1354 y(and)h(all)f(m)o(y)g(friends)774 1410 y(in)h(Canada)g(and)g(USA)957 2760
y(iv)g eop bop 627 542 a fe(A)n(CKNO)n(WLEDGEMENTS)108 927 y fn(I)15 b(o)o
(w)o(e)e(m)o(uc)o(h)g(gratitude)g(to)h(m)o(y)f(advisor,)g(Professor)g(Ro)o
(y)h(Campb)q(ell,)f(for)g(inspiring)g(me)h(to)f(carry)h(out)37 1012 y(the)20 b
(PC-Choices)f(pro)s(ject.)31 b(I)20 b(thank)f(the)h(Choices)f(researc)o(hers)
g(for)g(their)f(help)i(and)g(kindness:)28 b(Chris)37 1096 y(Bac)o(hmann,)17 b
(T)l(o)q(dd)h(Bisk)o(e,)g(John)g(Co)q(olidge,)e(Amitabh)g(Da)o(v)o(e,)h(Da)o
(vid)g(Dykstra,)f(Na)o(y)o(eem)g(Islam,)g(Da)o(v)o(e)37 1181 y(Kohr,)j(Willy)
d(Liao,)h(P)o(eter)h(Madan)o(y)l(,)f(Rob)q(ert)h(McGrath,)f(Amit)f(P)o(arghi,)
h(Da)o(vid)g(Raila,)g(Aamo)q(d)f(Sane,)37 1266 y(Mohlale\014)d(Se\014k)m(a,)h
(Rob)g(Slater,)f(See-Mong)g(T)l(an,)h(Lun)g(Xiao)f(and)g(Johnn)o(y)h(Zw)o(eig\
.)19 b(I)13 b(am)f(also)h(grateful)f(to)37 1351 y(Anda)j(Harney)f(for)f(helpi\
ng)h(out)g(b)q(ehind)h(the)f(scenes,)h(and)f(to)g(all)f(PC-Choices)h(users)g
(around)g(the)g(w)o(orld.)825 1364 y
4736286 6536066 0 0 30785863 42626580 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Title: THANKS.EPS
%%Creator: Freelance Plus 3.01
%%CreationDate: 1/1/1980
%%Pages: 1
%%DocumentFonts: (atend)
%%BoundingBox: 0 0 468 648
%%EndComments

%%BeginProcSet: Freelance Plus
/Freelance_Plus dup 100 dict def load begin
[ ] {bind} stopped { (patching the bind operator...) = flush
/*bind /bind load def /bind { dup xcheck { *bind } if } *bind def } if pop
/bdf {bind def} bind def /ldf {load def} bdf
/mt /moveto ldf /rt /rmoveto ldf /l2 /lineto ldf /c2 /curveto ldf
/sg /setgray ldf /gs /gsave ldf /ef /eofill ldf /rl2 /rlineto ldf
/st /stroke ldf /gr /grestore ldf /np /newpath ldf
/sv /save ldf /su /statusdict ldf /rs /restore ldf
/sw /setlinewidth ldf /sd /setdash ldf /cp /closepath ldf /ed {exch def } bdf
/cfnt {findfont exch makefont setfont} bdf
/itr {transform round exch round exch itransform} bdf
/fres 72 0 matrix currentmatrix dtransform
exch dup mul exch dup mul add sqrt def
/res fres def /mcm matrix currentmatrix bdf
%%EndProcSet
end
%%EndProlog

%%BeginSetup
Freelance_Plus begin
save newpath
.1 .1 scale
/ecm matrix currentmatrix bdf
/sem {ecm setmatrix} bdf
-90 rotate
-7200 -720 translate
0 setlinecap
0 setlinejoin
1.42 setmiterlimit%%EndSetup

0.000 sg
6 sw
sv np [] 0 sd
5082 2544 itr mt
3130 2544 itr l2
3130 4284 itr l2
5082 4284 itr l2
5082 2544 itr l2
rs

1.000 sg
sv np [] 0 sd
3188 4022 itr mt
4927 4022 itr l2
4846 3867 itr l2
4792 3679 itr l2
4806 3654 itr l2
4852 3674 itr l2
4961 3907 itr l2
5062 4017 itr l2
5075 4106 itr l2
5022 4126 itr l2
3221 4126 itr l2
3202 4166 itr l2
3154 4146 itr l2
3127 4051 itr l2
3161 3992 itr l2
3188 4022 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
3646 3639 itr mt
3646 4126 itr l2
3613 4156 itr l2
3625 4241 itr l2
3652 4290 itr l2
3700 4270 itr l2
3700 3639 itr l2
3646 3639 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
3349 3545 itr mt
4927 3546 itr l2
4846 3392 itr l2
4792 3203 itr l2
4806 3178 itr l2
4852 3198 itr l2
4961 3431 itr l2
5062 3541 itr l2
5075 3630 itr l2
5022 3650 itr l2
3349 3648 itr l2
3315 3689 itr l2
3269 3668 itr l2
3269 3555 itr l2
3309 3514 itr l2
3349 3545 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
3349 3128 itr mt
3315 3152 itr l2
3269 3117 itr l2
3269 3033 itr l2
3315 3008 itr l2
3349 3038 itr l2
4246 3038 itr l2
4253 3128 itr l2
3349 3128 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
4219 3599 itr mt
4219 3003 itr l2
4239 2964 itr l2
4273 2969 itr l2
4287 2998 itr l2
4287 3599 itr l2
4219 3599 itr l2
gs 0.000 sg
ef gr
rs

0.000 sg
sv np [] 0 sd
3343 3082 itr mt
3296 3082 itr l2
3296 3594 itr l2
3343 3594 itr l2
3343 3082 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
3660 3082 itr mt
3613 3082 itr l2
3613 3594 itr l2
3660 3594 itr l2
3660 3082 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
3970 3092 itr mt
3923 3092 itr l2
3923 3604 itr l2
3970 3604 itr l2
3970 3092 itr l2
gs 0.000 sg
ef gr
rs

1.000 sg
sv np [] 0 sd
3836 2542 itr mt
3674 2766 itr l2
3641 2780 itr l2
3641 2820 itr l2
3668 2860 itr l2
3694 2880 itr l2
3715 2860 itr l2
4578 2860 itr l2
4497 2965 itr l2
4423 3084 itr l2
4395 3133 itr l2
4416 3163 itr l2
4456 3153 itr l2
4665 2885 itr l2
4699 2874 itr l2
4713 2835 itr l2
4665 2755 itr l2
4625 2755 itr l2
4605 2770 itr l2
3762 2770 itr l2
3870 2597 itr l2
3870 2572 itr l2
3850 2552 itr l2
3836 2542 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
3127 2655 itr mt
3181 2785 itr l2
3269 2874 itr l2
3336 2909 itr l2
3370 2909 itr l2
3403 2850 itr l2
3383 2794 itr l2
3282 2750 itr l2
3241 2730 itr l2
3181 2626 itr l2
3147 2631 itr l2
3127 2655 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
3893 3718 itr mt
3948 3848 itr l2
4036 3937 itr l2
4103 3973 itr l2
4136 3973 itr l2
4170 3913 itr l2
4151 3858 itr l2
4049 3813 itr l2
4008 3793 itr l2
3948 3689 itr l2
3914 3694 itr l2
3893 3718 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
3315 3098 itr mt
3214 3182 itr l2
3161 3202 itr l2
3127 3271 itr l2
3174 3351 itr l2
3235 3322 itr l2
3248 3267 itr l2
3315 3192 itr l2
3315 3098 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
4273 3535 itr mt
4664 3257 itr l2
4806 3128 itr l2
4907 3008 itr l2
4954 2924 itr l2
4947 2879 itr l2
4914 2870 itr l2
4813 2989 itr l2
4664 3152 itr l2
4502 3277 itr l2
4266 3450 itr l2
4273 3535 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
3596 1080 itr mt
3674 969 itr l2
3720 896 itr l2
3756 836 itr l2
3797 794 itr l2
3792 886 itr l2
3761 962 itr l2
3715 1045 itr l2
3626 1191 itr l2
3227 1683 itr l2
3212 1725 itr l2
3186 1721 itr l2
3155 1667 itr l2
3129 1648 itr l2
3145 1602 itr l2
3175 1602 itr l2
3596 1080 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
3311 2244 itr mt
3756 1672 itr l2
3948 1405 itr l2
4062 1247 itr l2
4155 1106 itr l2
4227 927 itr l2
4258 797 itr l2
4280 751 itr l2
4305 725 itr l2
4321 755 itr l2
4326 816 itr l2
4310 943 itr l2
4274 1057 itr l2
4227 1175 itr l2
4150 1312 itr l2
4036 1470 itr l2
3642 1981 itr l2
3368 2328 itr l2
3368 2366 itr l2
3326 2366 itr l2
3305 2324 itr l2
3264 2285 itr l2
3280 2232 itr l2
3311 2244 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
3311 1530 itr mt
3311 2266 itr l2
3358 2217 itr l2
3358 1488 itr l2
3311 1530 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
3533 1274 itr mt
3652 1431 itr l2
3813 1629 itr l2
3864 1556 itr l2
3689 1381 itr l2
3565 1233 itr l2
3533 1274 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
4353 1180 itr mt
4431 1070 itr l2
4477 997 itr l2
4513 935 itr l2
4555 894 itr l2
4550 986 itr l2
4518 1062 itr l2
4472 1145 itr l2
4384 1290 itr l2
3985 1783 itr l2
3969 1826 itr l2
3944 1821 itr l2
3913 1767 itr l2
3887 1748 itr l2
3903 1703 itr l2
3933 1703 itr l2
4353 1180 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
4068 2344 itr mt
4513 1772 itr l2
4706 1504 itr l2
4820 1348 itr l2
4912 1207 itr l2
4985 1027 itr l2
5016 898 itr l2
5037 852 itr l2
5063 826 itr l2
5078 856 itr l2
5083 916 itr l2
5068 1042 itr l2
5031 1157 itr l2
4985 1276 itr l2
4907 1412 itr l2
4794 1570 itr l2
4400 2081 itr l2
4125 2429 itr l2
4125 2466 itr l2
4084 2466 itr l2
4063 2424 itr l2
4022 2386 itr l2
4038 2332 itr l2
4068 2344 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
4068 1630 itr mt
4068 2367 itr l2
4115 2317 itr l2
4115 1589 itr l2
4068 1630 itr l2
gs 0.000 sg
ef gr
rs

sv np [] 0 sd
4292 1375 itr mt
4410 1531 itr l2
4571 1730 itr l2
4622 1657 itr l2
4446 1482 itr l2
4322 1332 itr l2
4292 1375 itr l2
gs 0.000 sg
ef gr
rs

0.000 sg
sv np [] 0 sd
5082 725 itr mt
3131 725 itr l2
3131 2466 itr l2
5082 2466 itr l2
5082 725 itr l2
rs

/Ich 256 array def StandardEncoding Ich copy pop /bullet/paragraph/section/dieresis/tilde/ring
/circumflex/grave/acute/quotedblleft/quotesingle
/ellipsis/endash/emdash/guilsinglleft/guilsinglright
/quotedblbase/quotesinglbase/quotedblright/OE/oe
/Ydieresis/fi/fl/dagger/daggerdbl/Ccedilla/udieresis
/eacute/acircumflex/adieresis/agrave/aring/ccedilla
/ecircumflex/edieresis/egrave/idieresis/icircumflex
/igrave/Adieresis/Aring/Eacute/ae/AE/ocircumflex
/odieresis/ograve/ucircumflex/ugrave/ydieresis
/Odieresis/Udieresis/oslash/sterling/Oslash/florin
/aacute/iacute/oacute/uacute/ntilde/Ntilde/ordfeminine
/ordmasculine/questiondown/exclamdown/guillemotleft
/guillemotright/Aacute/Acircumflex/Agrave/cent/yen
/atilde/Atilde/currency/Ecircumflex/Edieresis/Egrave
/dotlessi/Iacute/Icircumflex/Idieresis/Igrave/Oacute
/germandbls/Ocircumflex/Ograve/otilde/Otilde/Uacute
/Ucircumflex/Ugrave/macron/cedilla/periodcentered
Ich 127 97 getinterval astore pop
/Ienc { /ncs Ich def /nfn ed /bfn ed /bfd bfn findfont def
/nf bfd maxlength dict def bfd{exch dup dup /FID ne exch /Encoding ne and
{exch nf 3 1 roll put}{pop pop} ifelse }forall nf/FontName nfn put
nf/Encoding ncs put nfn nf definefont pop}bdf

/IencO { /ncs Ich def /nfn ed /bfn ed /lnw ed /bfd bfn findfont def
/nf bfd maxlength 4 add dict def bfd{exch dup dup /FID ne exch /Encoding ne and
{exch nf 3 1 roll put}{pop pop} ifelse }forall nf/FontName nfn put nf/Encoding ncs put
nf/PaintType 2 put nf/StrokeWidth lnw put
nfn nf definefont pop}bdf

/IencSO { /nfn ed /bfn ed /lnw ed /bfd bfn findfont def
/nf bfd maxlength 4 add dict def bfd{exch dup /FID ne { exch nf 3 1 roll put}{pop pop} ifelse }forall
nf/FontName nfn put nf/PaintType 2 put
nf/StrokeWidth lnw put nfn nf definefont pop}bdf

/Times-Roman /Flfon6 Ienc
[2836 0 0.00 2836 -251 -1929] /Flfon6 cfnt

3127 4451 itr mt
sv 90.000 rotate
(!)
show
rs

rs end

%%Trailer
%%DocumentFonts: Times-Roman

endTexFig
963 2760 a(v)g eop bop 661 374 a fe(T)-5 b(ABLE)20 b(OF)g(CONT\
ENTS)37 596 y fi(Chapter)37 698 y(1)43 b(In)o(tro)q(duction)h fm(:)22 b(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)96 b fn
(1)106 754 y(1.1)45 b(Reuse)16 b(for)f(P)o(ortabilit)o(y)21 b fm(:)h(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)60 b fn(3)106 811 y(1.2)45 b
(P)o(enalties)14 b(for)h(Reuse)25 b fm(:)d(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)60 b fn(5)106 867 y(1.3)45 b(Application)14 b(Prog\
ramming)e(Mo)q(del)30 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)60 b fn(6)106 924 y
(1.4)45 b(Implemen)o(tation)13 b(of)h(the)i(Application)e(Programm)o(ing)e
(Mo)q(del)32 b fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)60
b fn(7)106 980 y(1.5)45 b(Organization)14 b(of)h(Thesis)23 b fm(:)g(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)60 b fn(8)106 1037 y(1.6)45 b(Do)q
(cumen)o(ting)14 b(F)l(ramew)o(orks)25 b fm(:)d(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)37 b fn(10)37 1139 y fi(2)43 b(Kernel)16 b(Subsystem)o(s)34 b
fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)73 b fn
(11)106 1195 y(2.1)45 b(Virtual)14 b(Memory)g(Subsystem)31 b fm(:)23 b(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(11)210 1252 y(2.1.1)51 b(Virtual)
14 b(Memory)f(Mo)q(del)45 b fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn
(11)210 1308 y(2.1.2)51 b(Virtual)14 b(Memory)f(In)o(terface)31 b fm(:)23 b
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(13)210 1364 y(2.1.3)51 b(Virtual)14 b(Memo\
ry)f(Implemen)o(tation)30 b fm(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(17)106 1421 y(2.2)45 b
(Pro)q(cess)15 b(Subsystem)29 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)37 b fn(21)210 1477 y(2.2.1)51 b(Pro)q(cess)15 b(Mo)q
(del)41 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn
(21)210 1534 y(2.2.2)51 b(Pro)q(cess)15 b(In)o(terface)28 b fm(:)22 b(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(26)210 1590 y(2.2.3)51 b(Pro)q
(cess)15 b(Implemen)o(tation)26 b fm(:)c(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn
(30)106 1647 y(2.3)45 b(Exception)15 b(Subsystem)f fm(:)22 b(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(36)210 1703 y(2.3.1)51 b(Excep\
tion)15 b(Mo)q(del)27 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)37 b fn(36)210 1760 y(2.3.2)51 b(Exception)15 b(In)o(terface)e fm(:)22 b
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(37)210 1816 y(2.3.3)51 b
(Exception)15 b(Implemen)o(tation)c fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn
(38)106 1873 y(2.4)45 b(Virtual)14 b(PC)h(Subsystem)26 b fm(:)d(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(42)210 1929 y(2.4.1)51 b(Virtu\
al)14 b(PC)h(Mo)q(del)39 b fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)37 b fn(42)210 1985 y(2.4.2)51 b(Virtual)14 b(PC)h(In)o(terface)25 b fm
(:)e(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(47)210 2042 y(2.4.3)51 b
(Virtual)14 b(PC)h(Implemen)o(tatio)o(n)25 b fm(:)d(:)g(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37
b fn(52)106 2098 y(2.5)45 b(In)o(terpro)q(cess)16 b(Comm)o(unicati)o(on)c(Sub\
system)33 b fm(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(60)210 2155 y(2.5.1)51 b(In)o(terpro)q
(cess)15 b(Comm)o(unicatio)o(n)e(Mo)q(del)45 b fm(:)23 b(:)f(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(61)210 2211
y(2.5.2)51 b(In)o(terpro)q(cess)15 b(Comm)o(unicatio)o(n)e(In)o(terface)32 b
fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)h(:)37 b fn(62)210 2268 y(2.5.3)51 b(In)o(terpro)q(cess)15 b(Comm)o(unicat\
io)o(n)e(Implemen)o(tation)30 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)37 b fn(65)37 2370 y fi(3)43 b(Kernel)16 b(Pro)q(cedur\
es)45 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)73
b fn(68)106 2426 y(3.1)45 b(Bo)q(otstrapping)13 b fm(:)23 b(:)f(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(68)106 2483 y
(3.2)45 b(Initialization)d fm(:)23 b(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(74)106 2539 y(3.3)45 b(Application)14 b
(Dispatc)o(hing)28 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)37 b fn(80)106 2595 y(3.4)45 b(T)l(ermination)17 b fm(:)22 b(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(80)957
2760 y(vi)g eop bop 37 42 a fi(4)43 b(Device)16 b(Driv)o(ers)26 b fm(:)c(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)73 b fn
(82)106 98 y(4.1)45 b(Device)15 b(Driv)o(er)f(Arc)o(hitecture)45 b fm(:)23 b
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(82)106 154 y(4.2)45 b(Mouse)15
b(Driv)o(er)28 b fm(:)23 b(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)37 b fn(86)106 211 y(4.3)45 b(Ethernet)15 b(Driv)o(er)
i fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)37 b fn(87)106 267 y(4.4)45 b(Serial)15 b(P)o(ort)f(Driv)o(er)e fm(:)23 b
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(90)37
369 y fi(5)43 b(Libraries)22 b fm(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)73 b fn(92)106 426 y(5.1)45 b
(General)15 b(Purp)q(ose)g(Library)h fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)37 b fn(92)106 482 y(5.2)45 b(System)14 b(In)o(terface)i
(Library)f fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn
(94)210 539 y(5.2.1)51 b(Heap)15 b(allo)q(cator)37 b fm(:)23 b(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(94)210 595 y(5.2.2)51 b(Consol\
e)14 b(input)h(and)h(output)28 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn
(96)210 652 y(5.2.3)51 b(T)l(erminal)13 b(redirection)29 b fm(:)23 b(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(96)210 708 y(5.2.4)51 b(Startup)14 b
(pro)q(cedure)39 b fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn
(97)210 764 y(5.2.5)51 b(Initialization)13 b(of)h(global)g(ob)s(jects)j fm
(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(99)106 821 y(5.3)45 b(File)15 b(System)f
(Library)42 b fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)14 b fn(101)106 877 y(5.4)45 b(Application)14 b(Dispatc)o(her)h(Library)28
b fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(102)210 934 y(5.4.1)51 b
(Application)14 b(Dispatc)o(her)g(In)o(terface)36 b fm(:)22 b(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn
(102)210 990 y(5.4.2)51 b(Application)14 b(Dispatc)o(her)g(Implemen)o(tation)
34 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)14 b fn(104)37 1092 y fi(6)43 b(Applications)i fm(:)22 b(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)50 b fn
(110)106 1149 y(6.1)45 b(Cho)q(cs)37 b fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(110)106
1205 y(6.2)45 b(Utilities)32 b fm(:)23 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(111)106 1262 y(6.3)45 b
(MGR)h fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(112)37 1363 y fi(7)43 b(Conclusion)i fm
(:)23 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)50 b fn(115)37 1465 y fi(APPENDIX)43 b fm(:)22 b(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)50 b fn
(117)37 1567 y fi(A)29 b(Prim)n(er)14 b(on)k(Application)e(Program)o(m)m(i)o
(ng)d fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)50 b fn(117)106 1624 y(A.1)34 b(In)o(tro)q(duc\
tion)14 b fm(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)14 b fn(117)106 1680 y(A.2)34 b(Ob)s(jects)15 b(in)g(Choic\
es)32 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14
b fn(118)210 1737 y(A.2.1)40 b(In)o(tro)q(duction)45 b fm(:)22 b(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(118)210 1793 y(A.2.2)40 b
(Smart)13 b(p)q(oin)o(ters)33 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)14 b fn(119)106 1850 y(A.3)34 b(The)16 b(Standard)f(Nameserv)o
(er)22 b fm(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(121)106
1906 y(A.4)34 b(Input/Output)16 b(from)e(the)h(terminal)38 b fm(:)23 b(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)14 b fn(122)106 1962 y(A.5)34 b(Input/Output)16 b(from)
e(\014les)33 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn
(124)106 2019 y(A.6)34 b(Using)15 b(Timers)29 b fm(:)23 b(:)f(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(127)210 2075 y(A.6\
.1)40 b(F)l(ree)15 b(Running)h(Timers)10 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)14 b fn(127)210 2132 y(A.6.2)40 b(Timeout)13 b(Timers)40 b fm
(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(128)106 2188 y
(A.7)34 b(Pro)q(cess)15 b(creation,)f(comm)o(unication)e(and)k(sync)o(hroniza\
tion)43 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b
fn(129)210 2245 y(A.7.1)40 b(Pro)q(cess)15 b(Creation)28 b fm(:)22 b(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(130)210 2301 y(A.7.2)40 b(Pro)
q(cess)15 b(Sync)o(hronization)23 b fm(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14
b fn(131)210 2358 y(A.7.3)40 b(Pro)q(cess)15 b(Comm)o(unicati)o(on)25 b fm
(:)d(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(133)106 2414 y(A.8)34 b(Learning)
15 b(to)g(t)o(yp)q(e)36 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)14 b fn(134)210 2471 y(A.8.1)40 b(Line.h)28 b fm(:)23 b
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn
(134)210 2527 y(A.8.2)40 b(T)o(yp)q(e1.cc)45 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(135)106 2583 y(A.9)34 b
(T)o(yping)15 b(tutor)f(with)h(t)o(w)o(o)e(pro)q(cesses)44 b fm(:)23 b(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)14 b fn(139)950 2760 y(vii)g eop bop 37 42 a fi(B)32 b
(Class)16 b(Hierarc)o(h)o(y)f(Chart)32 b fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)50 b fn(145)37 143 y fi(C)31 b(Class)16 b(Index)30
b fm(:)23 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)50 b fn(154)37 245 y fi(D)29 b(File)16 b(Index)28 b fm(:)22 b
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)50 b fn(162)37 347 y fi(E)35 b(V)l(ariable)16 b(and)i(F)l(unction)f
(Index)30 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)50 b fn(168)37 488 y fi
(BIBLIOGRAPHY)15 b fm(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)50 b fn(169)944 2760 y(viii)g eop bop 746 374 a fe(LIS\
T)20 b(OF)h(T)-5 b(ABLES)106 596 y fn(2.1)45 b(Default)14 b(prop)q(erties)h
(of)g fg(Pro)q(cesses)44 b fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn
(23)106 653 y(2.2)45 b(Beha)o(viour)15 b(of)g(metho)q(ds)f(for)h(passing)f
(bu\013ers)h(to)g(16-bit)f(routines)42 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)37 b fn(49)106 709 y(2.3)45 b(Virtual-8086)13 b(mo)q(de)i
(privileged)f(instructions)35 b fm(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(55)106 807 y(5.1)45 b
(Messages)15 b(for)f(terminal)f(redirection)i(proto)q(col)24 b fm(:)e(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37
b fn(98)106 863 y(5.2)45 b(La)o(y)o(ers)15 b(of)g(the)g(application)f(dispatc)
o(her)h(library)37 b fm(:)23 b(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(103)106 961 y(7.1)45 b(PC)15 b(con\
\014gurations)f(kno)o(wn)h(to)g(w)o(ork)f(with)h(PC-Choices)23 b fm(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(116)106
1059 y(A.1)34 b(Argumen)o(ts)14 b(for)h fg(FileStream::setO\013set\(\))23 b fm
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)14 b fn(125)957 2760 y(ix)g eop bop 729 374 a fe(LIST)
21 b(OF)f(FIGURES)106 596 y fn(1.1)45 b(PC-Choices)15 b(information)d(sheet)
24 b fm(:)e(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)60 b fn(2)106 694 y(2.1)45 b
(A)15 b fg(Domain)30 b fm(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(12)106 751 y(2.2)45 b(Kernel)16 b
fg(Domain)e fn(and)h(Application)f fg(Domains)19 b fm(:)j(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn
(13)106 807 y(2.3)45 b(Metho)q(ds)15 b(for)g(adding)g fg(Memo)o(ryObjects)g fn
(to)g(a)g fg(Domain)45 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(14)106 863 y(2.4)45 b(Using)15 b(Applicati\
on)f fg(Domains)h fn(and)g fg(HeapMemo)o(ryObjects)h fn(in)f(the)h(k)o(ernel)
k fm(:)i(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(15)106 920 y(2.5)45 b(Using)15
b(Application)f fg(Domains)h fn(and)g fg(HeapMemo)o(ryObjects)h fn(in)f(an)g
(application)f(program)34 b fm(:)j fn(15)106 976 y(2.6)45 b(Dynamic)14 b(memo\
ry)e(allo)q(cation)i(in)h(an)g(application)f(program)h fm(:)22 b(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(16)106 1033 y(2.7)45 b(Ph)
o(ysical)14 b(memory)f(organization)h fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)h(:)37 b fn(18)106 1089 y(2.8)45 b(Virtual)14 b(memory)f(organization)36 b
fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(20)106 1146 y(2.9)45 b(A)
15 b fg(Pro)q(cessContainer)30 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(22)106 1202 y(2.10)22 b(Relationship)15 b
(b)q(et)o(w)o(een)g fg(Pro)q(cesses)i fn(and)e fg(Domains)45 b fm(:)22 b(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn
(24)106 1259 y(2.11)22 b fg(Pro)q(cess)16 b fn(State)f(T)l(ransitions)45 b fm
(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(25)106 1315 y(2.12)
22 b fg(Pro)q(cess)16 b fn(constructors)37 b fm(:)22 b(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(26)106 1372 y(2.13)22 b(Creating)
14 b(and)i(running)f(a)g fg(PreemptableSystemPro)q(cess)42 b fm(:)22 b(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(28)106 1428
y(2.14)22 b(Using)15 b(a)g fg(Semapho)o(re)g fn(for)f(m)o(utual)f(exclusion)
35 b fm(:)22 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(29)106 1484 y(2.15)22 b fg(Exceptions)17 b
fn(and)f(the)f fg(Exception)i fn(T)l(able)27 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)37 b fn(36)106 1541 y(2.16)22 b(Exception)15 b(handling)k fm(:)j(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(37)106 1597 y(2.17)
22 b(Adding)16 b(an)f fg(Exception)h fn(to)f(the)g fg(Exception)i fn(T)l(able)
30 b fm(:)23 b(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)37 b fn(37)106 1654 y(2.18)22 b(Handling)15 b(exceptions)g
(with)g(an)g fg(Aw)o(aitedInterruptException)26 b fm(:)c(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(38)106 1710 y(2.19)22 b(Using)15 b
(an)g fg(Aw)o(aitedInterruptExcept)q(ion)29 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)37 b fn(39)106 1767 y(2.20)22 b(The)16 b fg(VirtualPC)f fn(as)g(a)g(dispat\
c)o(her)g(of)f(16-bit)h(programs)27 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(43)106 1823 y(2.21)22 b(In)o
(terpro)q(cess)16 b(comm)o(unicatio)o(n)d(through)i(an)g(in)o(tercepted)g(v)o
(ector)i fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(45)
106 1880 y(2.22)22 b(The)16 b fg(VirtualPCInterface)g fn(for)e(application)g
(programs)k fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)37 b fn(46)106 1936 y(2.23)22 b(Calling)14 b(BIOS)i(from)e(the)
h(k)o(ernel)g(to)f(displa)o(y)h(a)g(c)o(haracter)43 b fm(:)23 b(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(47)106 1993 y(2.24)22 b
(Calling)14 b(BIOS)i(from)e(an)h(application)f(program)f(to)h(displa)o(y)h
(a)f(c)o(haracter)24 b fm(:)e(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(48)106
2049 y(2.25)22 b(Metho)q(ds)15 b(for)g(passing)g(bu\013ers)g(to)f(16-bit)g
(programs)32 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)37 b fn(49)106 2105 y(2.26)22 b(Calling)14 b(DOS)h(from)f
(an)h(application)f(program)f(to)h(op)q(en)i(a)f(\014le)31 b fm(:)22 b(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(50)106 2162 y(2.27)22 b
(In)o(tercepting)15 b(an)h(in)o(terrupt)e(v)o(ector)k fm(:)k(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)37 b fn(51)106 2218 y(2.28)22 b(The)16 b(virtual-8086)d(monito\
r)f(in)j(the)h fg(VirtualPC)26 b fm(:)c(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(53)106 2275 y(2.29)22 b
(P)o(erforming)13 b(in)o(terrupt-driv)o(en)h(I/O)i(with)f(BIOS:)h(I/O)f(initi\
ation)10 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn
(58)106 2331 y(2.30)22 b(P)o(erforming)13 b(in)o(terrupt-driv)o(en)h(I/O)i
(with)f(BIOS:)h(I/O)f(completion)c fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)37 b fn(59)106 2388 y(2.31)22 b(In)o(terpro)q(cess)16 b(comm)o(uni\
catio)o(n)d(mo)q(del)30 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(61)106 2444
y(2.32)22 b(Sending)16 b(and)f(receiving)g(messages)22 b fm(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)37 b fn(62)106 2501 y(2.33)22 b(Creating)14 b(a)h fg(Lo)q
(calBo)o(x)f fn(and)i(exp)q(orting)f(it)f(through)h(the)g(k)o(ernel)g fg(Name\
Server)28 b fm(:)23 b(:)f(:)g(:)h(:)f(:)h(:)37 b fn(64)106 2557 y(2.34)22 b
(F)l(etc)o(hing)15 b(a)g fg(Lo)q(calBo)o(x)f fn(from)g(the)h fg(NameServer)38
b fm(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)h(:)37 b fn(64)963 2760 y(x)g eop bop 106 42 a fn(2.35)22 b
(Creating,)14 b(initializing)f(and)i(sending)g(a)g fg(Message)25 b fm(:)e(:)f
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37
b fn(64)106 98 y(2.36)22 b(Retrieving)15 b(and)g(pro)q(cessing)g(a)g(Message)
27 b fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(65)106 154 y(2.37)22 b(Reading)16 b
fg(Messages)g fn(from)d(m)o(ultiple)g fg(Lo)q(calBo)o(xes)32 b fm(:)23 b(:)f
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37
b fn(66)106 252 y(4.1)45 b(A)15 b(16-bit)g(device)g(driv)o(er)g(signalling)e
(a)i(32-bit)f(pro)q(cess)i(through)f(an)g(in)o(tercepted)g(v)o(ector)34 b fm
(:)j fn(84)106 309 y(4.2)45 b(V)l(alues)15 b(passed)h(b)o(y)f(mouse)f(signal)
g(v)o(ector)i fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(87)106 365 y(4.3)45 b(P)o
(ac)o(k)o(et)14 b(driv)o(er)h(adapter)g(functions)25 b fm(:)d(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)37 b fn(88)106 422 y(4.4)45 b(V)l(alues)15 b(passed)h(b)o(y)f
(pac)o(k)o(et)g(ready)g(v)o(ector)h fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(89)106
478 y(4.5)45 b(P)o(ac)o(k)o(et)14 b(driv)o(er)h(functions)g fm(:)23 b(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(89)106 535 y(4.6)45 b(Seri\
al)15 b(p)q(ort)f(driv)o(er)h(adapter)g(functions)i fm(:)22 b(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)h(:)37 b fn(91)106 633 y(5.1)45 b(P)o(arsing)14 b(a)h(string)f(with)h(a)g
fg(StringInputStream)43 b fm(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(93)106 689 y(5.2)45 b(F)l
(ormatting)12 b(a)j(string)f(with)h(a)g fg(StringOutputStream)39 b fm(:)23 b
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn
(93)106 746 y(5.3)45 b(C++)16 b(op)q(erators)e(for)h(dynamic)f(memory)e(allo)
q(cation)27 b fm(:)c(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)37 b fn(95)106 802 y(5.4)45 b(Metho)q(d)15 b(of)g(class)g fg
(PCConsoleInputStream)27 b fm(:)c(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(96)106 858 y(5.5)45 b
(Metho)q(ds)15 b(of)g(classes)g fg(T)l(erminalInputStream)g fn(and)g fg(T)l
(erminalOutputStream)34 b fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b fn(97)106
915 y(5.6)45 b(Metho)q(d)15 b(of)g(class)g fg(ApplicationDispatcher)q fn(:)22
b fg(Pro)q(cess)16 b fn(La)o(y)o(er)28 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(103)106 971 y(5.7)45 b(Dispatc)o
(hing)14 b(an)h(application)f(program)f(through)i(the)g fg(Pro)q(cess)h fn
(La)o(y)o(er)37 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(104)106
1028 y(5.8)45 b(Metho)q(ds)15 b(of)g(class)g fg(ApplicationDispatcher)q fn
(:)22 b fg(Domain)14 b fn(La)o(y)o(er)42 b fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(105)106 1084 y(5.9)45 b(Dispatc)o(hing)
14 b(an)h(application)f(program)f(through)i(the)g fg(Domain)f fn(La)o(y)o(er)
33 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(106)106 1141 y(5.10)
22 b(Metho)q(ds)15 b(of)g(class)g fg(ApplicationDispatcher)q fn(:)22 b fg(Mem\
o)o(ryObject)15 b fn(La)o(y)o(er)h fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)14 b fn(107)106 1197 y(5.11)22 b(Initializing)14 b(an)h(Applicatio\
n)f fg(Domain)g fn(through)h(the)g fg(Memo)o(ryObject)g fn(La)o(y)o(er)37 b fm
(:)23 b(:)f(:)g(:)h(:)f(:)h(:)14 b fn(108)106 1295 y(6.1)45 b(Handling)15 b
(ev)o(en)o(ts)g(in)g(MGR)e fm(:)22 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)h(:)14 b fn(113)106 1393 y(B.1)36 b(Classes)15 b(in)g(the)g fg(Common)e fn
(directory)34 b fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(146)106 1450 y(B.2)
36 b(Classes)15 b(in)g(the)g fg(Kernel)g fn(directory)d fm(:)22 b(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)g(:)h(:)f(:)h(:)14 b fn(147)106 1506 y(B.3)36 b(Classes)15 b(in)g(the)
g fg(Memo)o(ry)e fn(directory)i fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn
(148)106 1562 y(B.4)36 b(Classes)15 b(in)g(the)g fg(IODevices)h fn(directory)
f fm(:)23 b(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g
(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(149)106 1619 y(B.5)36 b(Classe\
s)15 b(in)g(the)g fg(Schedulers)i fn(directory)40 b fm(:)22 b(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)h(:)14 b fn(150)106 1675 y(B.6)36 b(Classes)15 b(in)g(the)g fg(MachineDep)
q(endent)k fn(directory)d fm(:)22 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn(151)106 1732 y(B.7)36 b
(Classes)15 b(in)g(the)g fg(Pro)q(cesso)o(rDep)q(endent)j fn(directory)30 b fm
(:)23 b(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h
(:)f(:)h(:)14 b fn(152)106 1788 y(B.8)36 b(Classes)15 b(in)g(the)g fg(Lib)o
(ra)o(ries)f fn(directory)d fm(:)22 b(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)14 b fn
(153)957 2760 y(xi)g eop bop 37 405 a fc(Chapter)35 b(1)37 675 y fb(In)m(tro)
s(duction)1534 897 y fj(T)l(o)q(o)15 b(man)o(y)f(shado)o(ws)1553 954 y(Whisp)
q(ering)h(v)o(oices)1586 1010 y(F)l(aces)h(on)f(p)q(osters)1560 1066 y(T)l
(o)q(o)g(man)o(y)f(c)o(hoices)1554 1123 y(If)h(when)h(wh)o(y)f(what)1434 1179
y(Ho)o(w)f(m)o(uc)o(h)h(ha)o(v)o(e)g(y)o(ou)f(got)1480 1236 y(|)h(\\W)l(est)g
(End)g(Girls")1894 1219 y fr(1)108 1320 y fn(PC-Choices)j(is)f(a)g(p)q(ort)h
(of)f(the)h(Choices)g(ob)s(ject-orien)o(ted)f(op)q(erating)g(system[41)m(])h
(to)f(the)h(standard)37 1405 y(PC[35)o(])j(and)f(IBM)h(PS/2[19)o(,)f(18])g
(arc)o(hitectures)g(based)h(on)f(the)h(In)o(tel)f(386)g(micropro)q(cessor[17)
m(])h(\(Fig-)37 1490 y(ure)16 b(1.1\).)k(The)c(PC-Choices)f(pro)s(ject)g(w)o
(as)g(conceiv)o(ed)h(to)f(ful\014ll)g(the)h(need)g(to)f(pro)q(duce)i(a)e(v)o
(ersion)g(of)g(the)37 1575 y(Choices)j(ob)s(ject-orien)o(ted)f(op)q(erating)g
(system)f(that)h(can)h(b)q(e)g(widely)f(distributed.)27 b(Choices)17 b(is)g
(an)h(ideal)37 1659 y(platform)f(for)h(exp)q(erimen)o(ting)f(with)h(ob)s(ject\
-orien)o(ted)f(system)h(soft)o(w)o(are)e(and)j(applications.)29 b(Ho)o(w)o
(ev)o(er,)37 1744 y(all)17 b(p)q(orts)f(of)h(Choices)g(that)f(ha)o(v)o(e)h
(b)q(een)h(dev)o(elop)q(ed)g(w)o(ere)f(highly)g(sp)q(eci\014c)h(to)e(the)h
(con\014guration)g(of)f(the)37 1829 y(mac)o(hines)11 b(in)h(the)g(Choices)f
(lab.)19 b(F)l(or)11 b(this)g(reason,)h(op)q(erating)f(systems)f(researc)o
(hers)i(at)f(other)g(institutions)37 1913 y(ha)o(v)o(e)h(not)g(b)q(een)h(able)
f(to)g(run)g(Choices)g(on)g(their)f(o)o(wn)h(mac)o(hines)f(and)h(utilize)f
(Choices)h(as)g(an)g(exp)q(erimen)o(tal)37 1998 y(platform)17 b(on)h(their)g
(o)o(wn.)30 b(This)18 b(problem)f(is)h(parado)o(xical)f(|)i(w)o(e)f(claimed)f
(in)i(n)o(umerous)e(pap)q(ers)i(that)37 2083 y(Choices)d(w)o(as)g(a)g(customi\
zable)e(op)q(erating)i(system)e(due)j(to)f(its)f(ob)s(ject-orien)o(ted)g(desi\
gn[39,)g(24,)h(28)o(,)g(26)o(],)37 2167 y(y)o(et)e(w)o(e)g(ha)o(v)o(e)g(b)q
(een)h(unable)f(to)g(pro)q(duce)h(a)e(v)o(ersion)h(that)f(w)o(ould)h(run)g
(on)g(mac)o(hines)f(other)h(than)g(our)f(o)o(wn.)108 2252 y(PC-Choices)e(addr\
esses)h(this)f(problem)g(directly;)h(the)g(purp)q(ose)g(of)f(m)o(y)g(w)o(ork)
f(is)i(to)f(pro)o(v)o(e)g(that)g(Choices)37 2337 y(is)19 b(indeed)g(a)g(custo\
mizable)d(op)q(erating)i(system.)29 b(I)19 b(attempted)f(to)g(build)g(a)h(new)
g(p)q(ort)f(of)g(Choices,)h(ex-)37 2421 y(ploiting)c(its)h(ob)s(ject-orien)o
(ted)f(structure,)h(that)g(w)o(ould)f(run)i(on)f(a)g(p)q(opular)g(computer)g
(arc)o(hitecture)f(and)37 2502 y 750 2 v 89 2529 a fs(1)107 2545 y fp(Quotati\
ons)e(at)g(the)g(b)q(eginning)h(of)f(eac)o(h)g(c)o(hapter)h(w)o(ere)f(tak)o
(en)g(from)f(songs)i(written)e(b)o(y)i(the)f(P)o(et)g(Shop)h(Bo)o(ys.)964 2760
y fn(1)g eop bop -6 352 a
30975313 28417720 2170798 14603550 62097981 69465538 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Helvetica-Bold Helvetica Times-Roman
%%Pages: 1
%%BoundingBox: 33 222 944 1056
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 53 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica-Bold reencodeISO def
/Helvetica reencodeISO def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.662222 0 0 0.662222 28.135 182.774 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.824578 0 0 0.824578 -175.445 -23.049 ] concat

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.300000 0.300000 0.300000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 258.5 358 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.332000 0.332000 0.332000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 257 328.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.364000 0.364000 0.364000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 256.5 312.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.396000 0.396000 0.396000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 256 296.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.428000 0.428000 0.428000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 253.5 280 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.460000 0.460000 0.460000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 252 263.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.492000 0.492000 0.492000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 251 248.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.524000 0.524000 0.524000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 251 233 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.556000 0.556000 0.556000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 249.5 217.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.588000 0.588000 0.588000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 247 201.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.620000 0.620000 0.620000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 243 182 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.652000 0.652000 0.652000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 241 165 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.684000 0.684000 0.684000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 237.5 146.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.716000 0.716000 0.716000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 268.5 162 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.748000 0.748000 0.748000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 275.5 153.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.780000 0.780000 0.780000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 283 145 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.812000 0.812000 0.812000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 291 137.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.844000 0.844000 0.844000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 298 129 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.876000 0.876000 0.876000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 306 120.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.908000 0.908000 0.908000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 313 111.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.940000 0.940000 0.940000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 320.5 103.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.972000 0.972000 0.972000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 327 95 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
1.000000 1.000000 1.000000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 334.5 87 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
1.000000 1.000000 1.000000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 340.5 78.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
1.000000 1.000000 1.000000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 349 70.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
1.000000 1.000000 1.000000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 357 64.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
1.000000 1.000000 1.000000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 364.5 57 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
1.000000 1.000000 1.000000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 373.5 50 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
1.000000 1.000000 1.000000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 384 44.5 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
1.000000 1.000000 1.000000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 395.5 39 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
1.000000 1.000000 1.000000 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 408 36 ] concat
%I 4
2 292
559 824
652 737
39 140
4 Poly
End

Begin %I Rect
none SetB %I b n
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.704812 -0 -0 0.880212 111.607 174.698 ] concat
%I
242 411 687 676 Rect
End

Begin %I Rect
none SetB %I b n
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.985075 -0 -0 1.10713 51.1119 19.5384 ] concat
%I
177 177 242 474 Rect
End

Begin %I Rect
none SetB %I b n
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 1 -0 -0 1 44.5 21.5 ] concat
%I
242 82 593 277 Rect
End

Begin %I Rect
none SetB %I b n
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 1 -0 -0 1 49.5 32.5 ] concat
%I
490 232 686 513 Rect
End

End %I eop

Begin %I Text
%I cfg White
1 1 1 SetCFg
%I f -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*
Helvetica-Bold 14 SetF
%I t
[ 8.61841 0 0 12.7191 64.4289 403.472 ] concat
%I
[
(PC)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.590656 0 0 0.590656 109.449 -72.9931 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 6.12303e-17 -1 1 6.12303e-17 3.5 832.5 ] concat

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 4
212 222
142 292
141 306
212 236
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
212 221
221 228
212 236
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 6
221 228
212 236
212 274
306 274
310 263
221 263
6 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
310 263
306 274
316 270
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 4
133 302
143 292
141 306
133 302
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
133 302
133 310
141 306
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
221 384
221 358
212 376
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
212 376
212 390
221 384
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 5
133 310
142 306
212 376
212 390
133 310
5 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
389 358
393 348
399 354
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 6
389 358
399 354
399 443
433 443
425 452
389 452
6 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
425 452
433 443
439 452
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 4
355 523
425 452
439 452
372 519
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
355 523
359 531
372 519
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
355 522
350 531
359 531
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
285 452
277 443
297 443
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
285 452
270 452
277 443
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 5
270 452
285 452
355 522
351 531
270 452
5 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 4
286 161
296 138
353 82
357 90
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
353 82
362 82
357 90
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 4
362 82
357 91
427 161
441 161
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
441 161
427 161
435 170
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 6
434 170
427 161
389 161
389 255
400 244
400 170
6 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 7
406 273
416 263
491 263
491 229
500 237
500 273
406 273
7 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
491 229
500 223
500 237
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 4
500 223
500 237
571 307
579 303
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
579 303
570 307
579 312
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 4
500 377
570 307
579 312
531 359
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
273 161
295 139
287 161
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
287 161
273 161
279 170
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 7
287 161
279 170
313 170
313 259
323 255
323 161
287 161
7 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
323 255
313 259
319 265
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 4
389 255
323 255
320 265
394 265
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
389 255
400 244
400 259
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
400 259
394 264
389 255
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
416 263
402 263
406 273
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
402 263
396 269
406 273
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 4
406 273
396 269
396 343
406 339
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
406 339
396 343
402 350
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 6
406 339
402 350
491 350
491 385
500 377
500 339
6 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
491 385
500 377
500 391
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
500 391
500 377
531 360
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 6
230 340
224 350
221 350
221 358
212 376
212 340
6 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 4
316 270
306 274
306 340
316 328
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 6
285 452
297 443
312 443
312 434
323 426
323 452
6 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 4
323 358
333 348
392 348
389 358
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 4
230 340
225 350
310 350
306 340
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 4
312 354
323 358
323 426
312 434
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
306 340
316 343
310 350
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
307 340
316 327
316 343
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
312 354
319 348
323 358
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 3
323 358
319 348
332 348
3 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 28
348 468
365 460
365 460
369 462
373 465
377 469
379 473
381 478
381 483
381 488
379 493
378 493
378 493
364 498
364 498
365 497
368 495
370 491
372 487
372 483
372 478
370 474
367 471
364 468
360 466
355 466
351 466
347 468
28 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg LtGray
0.764706 0.764706 0.764706 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t u
%I 42
359 499
378 493
379 493
376 498
373 502
369 505
364 508
358 509
353 509
348 508
343 506
339 503
335 499
332 495
330 490
330 484
330 479
332 474
334 469
338 465
342 462
347 460
352 458
357 458
363 459
365 460
364 460
347 468
347 468
346 469
343 471
340 475
339 479
338 483
339 488
341 492
343 495
347 498
351 500
355 500
360 500
364 498
42 Poly
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-*
Helvetica 14 SetF
%I t
[ 4.51025 0 0 4.51025 434.022 225.78 ] concat
%I
[
(Choices)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-*
Helvetica 14 SetF
%I t
[ 1.49315 0 0 1.49315 438.806 166.949 ] concat
%I
[
(Object-Oriented Operating System)
] Text
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 68 1057 ] concat
%I
[
(Xref: m.cs.uiuc.edu comp.os.misc:857 comp.lang.c++:10674 comp.)
(object:3246 comp.os.msdos.programmer:8907 comp.sys.ibm.pc.misc:)
(13403 alt.pcnews:225)
(Newsgroups: comp.os.misc,comp.lang.c++,comp.object,comp.os.msdos.)
(programmer,comp.sys.ibm.pc.misc,alt.pcnews)
(Path: m.cs.uiuc.edu!lup)
(From: [email protected] \(Lee Lup Yuen\))
(Subject: PC-Choices object-oriented OS beta testing)
(Message-ID: <[email protected]>)
(Followup-To: comp.os.misc)
(Sender: [email protected] \(News Database \(admin-Mike Schwager\)\))
(Organization: University of Illinois, Dept. of Comp. Sci., Urbana, IL)
(Date: Mon, 2 Mar 1992 23:44:02 GMT)
()
(\(Please note: Followups will be redirected to comp.os.misc.\))
()
(A new version \(0.5\) of the PC-Choices object-oriented operating system)
(has been released. New features and bug fixes:)
()
( - PC-Choices returns gracefully to DOS when it terminates.)
( - Runs one DOS program concurrently with several Choices applications.)
( - Allows configuration of kernel at boot time. This also prevents)
( the keyboard from locking up on some PC clones when PC-Choices runs.)
( - Allocation of low memory now done through DOS, so that PC-Choices)
( won't conflict with the memory used by other DOS programs and device)
( drivers.)
( - PS/2 hard disks are now supported. PS/2 users should take note)
( of the special configuration instructions that have been added to)
( pccdoc.)
()
(What is PC-Choices)
()
( PC-Choices is a version of Choices for 386/486 PCs. Choices is a)
( portable object-oriented operating system developed by the University)
( of Illinois' Systems Research Group, headed by Prof. Roy Campbell.)
( The PC-Choices kernel runs in 32-bit protected mode and calls)
( DOS/BIOS in 16-bit virtual-8086 mode for input/output operations.)
( Because it uses DOS/BIOS instead of working with I/O hardware)
( directly, PC-Choices will run on many PCs. PC-Choices is written)
( mainly in C++ and the source code will be distributed.)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 508 1057 ] concat
%I
[
(What is an object-oriented operating system)
()
( In an object-oriented operating system, all resources, hardware devices,)
( data, and processes are represented within an object-oriented model of)
( the system. Data is encapsulated as an abstract data type and can only)
( be accessed and manipulated by the operations defined for the type.)
( Inheritance is used to share common interfaces, data structures, and)
( algorithms. Polymorphism is used to simplify inheritance by allowing)
( algorithms and data structures to be parameterized by the implementations)
( of the objects they manipulate.)
()
(System requirements)
()
( A 386/486 PC running DOS version 3.0 or higher; EGA or VGA display;)
( at least 3 Meg extended memory. PC-Choices does not swap out memory)
( so it may not run properly without lots of extended memory \(say 5 Meg\).)
( 4 Meg of disk space is required for storing the Choices kernel and)
( application files.)
()
(What does it do)
()
( PC-Choices runs 32-bit Choices applications and supports multitasking.)
( The PC-Choices package has a command shell, some file utilities,)
( a kernel browsing tool, a kernel visualization monitor and some)
( simple applications. Users can compile PC-Choices applications)
( with DJGPP, the DOS port of g++. Applications are written using)
( the Choices object-oriented application programming interface.)
()
(Who should use PC-Choices)
()
( People interested in object-oriented operating systems; people)
( who want to build 32-bit applications and run them in a multitasking)
( PC environment; people who want to learn how protected-mode PC)
( operating systems can be implemented in C++. PC-Choices is)
( currently available for beta-testing.)
()
(What do beta-testers do)
()
( You just have to follow a list of instructions to boot the)
( PC-Choices kernel and run the applications, and then report any)
( problems. PC-Choices has been tested on the IBM PS/2 Model 80,)
( IBM PS/2 Model L40SX, IBM PS/55 Note, ALR Business VEISA 486-33,)
( AT&T 6386WGS and other 386 PCs, with DOS 3.3, 4.0 and 5.0.)
()
(How to get PC-Choices)
()
( ftp to choices.cs.uiuc.edu \(128.174.240.21\) and log in as)
( 'anonymous'. Go to the directory PC-Choices and fetch)
( the files pcc.zip and pccdoc in binary mode. Follow the)
( instructions in pccdoc to run PC-Choices. If there are)
( problems, please contact Lup at [email protected].)
()
(Lup)
([email protected] Graduate Student PC-Choices Manager)
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
546 2250 a fi(Figure)16 b(1.1)p fn(:)k(PC-Choices)15 b(informa\
tion)d(sheet)964 2760 y(2)g eop bop 37 42 a fn(supp)q(ort)16 b(m)o(ultiple)c
(con\014gurations.)19 b(The)c(soft)o(w)o(are)f(w)o(ould)g(b)q(e)h(widely)g
(distributed)f(and)h(I)h(w)o(ould)e(gather)37 126 y(feedbac)o(k)h(from)d(m)o
(y)g(users)i(to)f(disco)o(v)o(er)g(problems)g(with)g(the)h(p)q(ort)f(and)h
(to)f(determine)g(its)g(degree)h(of)g(com-)37 211 y(patibilit)o(y)l(.)21 b
(Once)c(the)f(bugs)g(ha)o(v)o(e)g(b)q(een)h(resolv)o(ed,)e(w)o(e)h(w)o(ould)f
(ha)o(v)o(e)h(an)g(op)q(erating)f(system)f(that)i(can)g(b)q(e)37 296 y(used)g
(b)o(y)f(other)g(op)q(erating)g(systems)e(researc)o(hers)i(to)g(run)g(exp)q
(erimen)o(ts)f(on)i(their)e(o)o(wn)h(mac)o(hines.)108 380 y(The)f(\(binary-le\
v)o(el\))e(p)q(ortabilit)o(y)f(and)j(a)o(v)m(ailabilit)o(y)c(problems)j(of)g
(Choices)g(w)o(ere)g(w)o(ell-kno)o(wn)f(for)h(sev-)37 465 y(eral)h(y)o(ears)f
(and)h(in)g(Septem)o(b)q(er)f(1991)g(I)h(to)q(ok)f(up)i(the)f(c)o(hallenge)f
(to)g(address)h(the)g(problems.)k(I)c(decided)h(to)37 550 y(build)f(a)g(v)o
(ersion)f(of)g(Choices)h(that)f(w)o(ould)g(run)i(on)e(generic)h(PCs)g(based)g
(on)g(the)g(In)o(tel)f(386/486)f(micropro-)37 634 y(cessor,)j(since)g(I)g(w)o
(as)f(most)f(familiar)f(with)i(the)h(PC)f(arc)o(hitecture.)19 b(The)c(en)o
(tire)g(PC-Choices)f(pro)s(ject)g(had)37 719 y(to)g(b)q(e)i(completed)d(in)i
(a)f(short)g(p)q(erio)q(d)h(of)f(time)f(\(ten)h(mon)o(ths\))e(due)k(to)e(m)o
(y)f(con)o(tract)g(with)h(the)h(Singap)q(ore)37 804 y(go)o(v)o(ernmen)o(t.)35
b(I)21 b(allo)q(cated)f(m)o(uc)o(h)f(time)g(for)h(the)h(distribution)e(and)i
(testing)f(of)g(the)h(soft)o(w)o(are,)f(so)g(the)37 888 y(implemen)o(tation)
12 b(of)j(the)g(k)o(ernel)g(and)g(application)f(programs)f(had)j(to)e(b)q(e)i
(completed)e(m)o(uc)o(h)g(earlier.)37 1068 y fd(1.1)70 b(Reuse)22 b(for)h(P)n
(ortabilit)n(y)37 1197 y fn(After)13 b(giving)e(some)h(though)o(t)f(to)h(the)
h(problem,)f(I)g(ha)o(v)o(e)h(come)e(to)h(the)h(conclusion)f(that)g fk(r)n
(euse)g fn(\(of)g(soft)o(w)o(are)37 1282 y(and)17 b(in)o(terfaces\))e(is)h
(the)g(k)o(ey)g(to)g(pro)q(ducing)g(a)g(p)q(ortable)g(op)q(erating)g(system)e
(in)j(a)e(short)h(p)q(erio)q(d)h(of)e(time.)37 1367 y(Reuse)i(has)e(the)g(fol\
lo)o(wing)e(adv)m(an)o(tages)i(in)g(a)f(soft)o(w)o(are)g(pro)s(ject:)93 1492 y
(1.)22 b(Reduced)14 b(dev)o(elopmen)o(t)c(time:)16 b(Source)d(or)e(binary)g
(co)q(de)h(that)f(is)h(structured)f(in)h(a)f(mo)q(dular)f(manner)151 1577 y
(can)i(b)q(e)h(quic)o(kly)f(and)g(con)o(v)o(enien)o(tly)f(incorp)q(orated)h
(in)o(to)f(a)h(new)g(piece)h(of)e(soft)o(w)o(are,)g(sa)o(ving)g(the)h(time)
151 1662 y(and)k(e\013ort)e(to)g(write)g(new)i(co)q(de)g(to)e(p)q(erform)g
(the)h(same)f(function.)93 1781 y(2.)22 b(Reliabilit)o(y:)g(Old)17 b(soft)o
(w)o(are)e(that)h(has)h(b)q(een)h(debugged)g(and)f(used)h(exhaustiv)o(ely)e
(is)h(less)f(lik)o(ely)g(to)151 1866 y(fail)e(than)h(new)h(soft)o(w)o(are.)93
1985 y(3.)22 b(P)o(ortabilit)o(y:)16 b(Old)c(soft)o(w)o(are)f(that)g(is)h(p)q
(ortable)g(to)f(man)o(y)g(en)o(vironmen)o(ts)g(can)h(b)q(e)h(reused)g(to)f
(pro)q(duce)151 2070 y(a)j(new)g(piece)h(of)f(soft)o(w)o(are)e(that)i(is)f
(just)h(as)g(p)q(ortable.)93 2190 y(4.)22 b(F)l(amiliarit)n(y:)f(Programmers)
14 b(and)k(users)f(do)h(not)f(ha)o(v)o(e)g(to)g(relearn)g(the)g(in)o(terfaces)
g(when)h(reusing)151 2274 y(old)d(in)o(terfaces)g(that)f(they)i(already)e(kno)
o(w.)20 b(This)15 b(applies)g(to)g(programming)d(in)o(terfaces)i(as)h(w)o(ell)
g(as)151 2359 y(user)g(in)o(terfaces.)108 2484 y(The)h(list)e(b)q(elo)o(w)g
(highligh)o(ts)g(the)h(t)o(yp)q(es)g(of)g(reuse)h(emplo)o(y)o(ed)d(in)i(PC-Ch\
oices.)106 2610 y fl(\017)22 b fn(Reuse)16 b(of)f(source)g(co)q(de)964 2760 y
(3)g eop bop 202 42 a fi({)23 b fn(Choices)11 b(mac)o(hine-indep)q(enden)o
(t)h(and)f(pro)q(cessor-indep)q(enden)o(t)h(co)q(de:)19 b(Choices)11 b(is)f
(structured)251 126 y(in)15 b(a)h(mo)q(dular)e(manner)g(and)i(the)f(non-mac)o
(hine-sp)q(eci\014c)h(source)g(co)q(de)g(is)f(cleanly)g(sep)q(erated)251 211 y
(from)g(the)h(mac)o(hine-sp)q(eci\014c)h(co)q(de.)24 b(PC-Choices)16 b(uses)h
(the)g(non-mac)o(hine-sp)q(eci\014c)f(co)q(de)h(di-)251 296 y(rectly)l(.)202
392 y fi({)23 b fn(Choices)f(pro)q(cessor-dep)q(enden)o(t)j(co)q(de:)35 b(Cho\
ices)22 b(has)h(b)q(een)g(p)q(orted)g(to)f(the)h(A)l(T&T)g(6386)251 476 y(W)o
(GS[41)o(])14 b(and)h(IBM)g(PS/2)f(Mo)q(del)h(80[26)n(])g(w)o(orkstations,)d
(b)q(oth)j(of)f(whic)o(h)h(emplo)o(y)e(the)i(In)o(tel)251 561 y(386)21 b(micr\
opro)q(cessor.)38 b(The)22 b(pro)q(cessor-sp)q(eci\014c)g(co)q(de)h(is)e(shar\
ed)h(among)e(the)i(t)o(w)o(o)e(p)q(orts.)251 646 y(PC-Choices)15 b(w)o(as)f
(implemen)o(ted)f(with)i(the)g(same)f(co)q(de.)202 742 y fi({)23 b fn(Choices)
11 b(mac)o(hine-dep)q(enden)o(t)h(co)q(de:)19 b(Man)o(y)11 b(p)q(ortions)f
(of)h(the)h(mac)o(hine-sp)q(eci\014c)f(co)q(de)i(for)d(the)251 827 y(A)l(T&T)
18 b(6386)e(W)o(GS)h(p)q(ort)g(of)g(the)h(Choices)f(w)o(ere)g(reused)i(in)e
(PC-Choices.)26 b(These)18 b(p)q(ortions)251 911 y(mainly)12 b(in)o(v)o(olv)o
(e)g(b)q(o)q(otstrapping,)h(exception)h(and)g(in)o(terrupt)f(handling)g(and)h
(hardw)o(are)f(timer)251 996 y(managemen)o(t.)202 1092 y fi({)23 b fn(Unix[4)
o(,)16 b(2)o(,)g(27)o(])g(application)e(programs:)19 b(The)d(MGR)f(windo)o
(wing)g(system[43)m(])h(for)f(Unix)g(w)o(as)251 1177 y(p)q(orted)g(to)g(PC-Ch\
oices.)106 1294 y fl(\017)22 b fn(Reuse)16 b(of)f(binary)g(co)q(de)202 1410 y
fi({)23 b fn(BIOS)13 b(and)g(DOS:)f(BIOS)h(is)e(the)i(system)d(soft)o(w)o(are)
h(in)g(a)h(PC)g(that)f(con)o(tains)h(lo)o(w-lev)o(el)e(routines)251 1495 y
(to)16 b(access)g(the)h(video)f(displa)o(y)l(,)f(k)o(eyb)q(oard,)h(disks)g
(and)h(other)f(devices.)23 b(DOS)17 b(pro)o(vides)e(high-)251 1580 y(lev)o
(el)g(\014le)h(system,)e(application)g(dispatc)o(hing)h(and)h(memory)d(manage\
men)o(t)g(services,)i(among)251 1664 y(others.)20 b(PC-Choices)14 b(emplo)o
(ys)g(BIOS)i(and)g(DOS)f(to)g(access)g(input/output)g(devices.)202 1761 y fi
({)23 b fn(Device)18 b(driv)o(ers:)25 b(The)19 b(DOS)f(v)o(ersions)g(of)f(the)
i(mouse)e(driv)o(er)g(and)i(pac)o(k)o(et)e(driv)o(er)h(\(for)f(net-)251 1845 y
(w)o(orking\))d(ma)o(y)f(b)q(e)j(reused)g(in)f(PC-Choices.)202 1941 y fi({)23
b fn(DOS)f(application)f(programs:)31 b(PC-Choices)21 b(allo)o(ws)f(the)i(use\
r)g(to)g(run)g(DOS)g(application)251 2026 y(programs.)d(PC-Choices)c(pro)o
(vides)g(few)g(utilities)f(but)i(the)f(user)h(can)g(alw)o(a)o(ys)e(resort)g
(to)h(DOS)251 2111 y(utilities)f(to)g(get)h(the)g(w)o(ork)f(done.)202 2207 y
fi({)23 b fn(DOS)18 b(compilation)d(en)o(vironmen)o(t:)23 b(PC-Choices)17 b
(application)f(programs)g(can)h(b)q(e)i(compiled)251 2292 y(with)c(DJGPP)l
(,)f(the)i(p)q(ort)e(of)h(the)g(GNU)g(C++)h(compiler)e(for)g(DOS.)106 2408 y
fl(\017)22 b fn(Reuse)16 b(of)f(user)g(in)o(terfaces)202 2525 y fi({)23 b fn
(Unix)18 b(command)f(shell:)25 b(The)19 b(PC-Choices)f(command)e(shell)i(rese\
m)o(bles)f(the)i(Unix)f(Bourne)251 2610 y(Shell.)964 2760 y(4)g eop bop 202 42
a fi({)23 b fn(Unix)15 b(\014le)g(utilities:)k(The)c(p)q(opular)g(Unix)g(\014\
le)g(utilities)f(are)h(a)o(v)m(ailable)f(in)h(Choices.)108 176 y(The)f(use)h
(of)e(BIOS)i(and)g(DOS)f(accoun)o(ts)g(for)f(m)o(uc)o(h)g(of)g(the)i(binary-l\
ev)o(el)e(p)q(ortabilit)o(y)f(of)h(PC-Choices.)37 261 y(BIOS)20 b(and)f(DOS)f
(run)h(on)f(man)o(y)f(di\013eren)o(t)h(PC)g(con\014gurations)f(and)i(b)o(y)f
(utilizing)f(them,)h(PC-Choices)37 345 y(gains)11 b(p)q(ortabilit)o(y)f(acros\
s)h(all)f(these)i(con\014gurations)f(as)g(w)o(ell.)18 b(The)12 b(dev)o(elopme\
n)o(t)e(of)h(device)h(driv)o(ers)f(and)h(a)37 430 y(\014le)g(system)f(for)g
(PC-Choices)h(w)o(as)f(nearly)h(totally)d(eliminated)h(due)j(to)e(the)h(use)h
(of)e(BIOS)i(and)f(DOS.)g(BIOS)37 515 y(and)17 b(DOS)f(ha)o(v)o(e)f(also)g
(b)q(een)i(pro)o(v)o(en)f(through)f(time)f(to)h(b)q(e)i(reliable)e(soft)o(w)o
(are.)20 b(System)15 b(and)h(application)37 599 y(programmers)8 b(in)i(PC-Cho\
ices)g(can)h(reapply)f(their)g(exp)q(ertise)g(in)h(BIOS)g(and)g(DOS)g(program\
m)o(ing)c(b)q(ecause)37 684 y(the)22 b(BIOS)h(and)f(DOS)g(programm)o(ing)d
(in)o(terfaces)h(are)i(accessible)f(in)h(the)f(k)o(ernel)h(and)f(in)h(applica\
tion)37 769 y(programs.)35 b(It)21 b(is)f(in)o(teresting)f(to)i(note)f(that)g
(man)o(y)g(soft)o(w)o(are)e(engineers)j(ha)o(v)o(e)g(adv)o(o)q(cated)f(the)h
(reuse)37 853 y(of)g(source)h(co)q(de)g(and)g(ignored)f(binary)g(co)q(de)h
(altogther[37)m(],)g(but)g(the)f(PC-Choices)g(pro)s(ject)g(pro)o(vides)37 938
y(evidence)c(that)d(the)h(reuse)h(of)f(binary)f(co)q(de)i(is)f(highly)g(desir\
able)f(as)h(w)o(ell.)37 1119 y fd(1.2)70 b(P)n(enalties)23 b(for)g(Reuse)37
1248 y fn(Through)16 b(m)o(y)f(exp)q(erience)h(with)g(PC-Choices,)f(I)h(ha)o
(v)o(e)g(learn)o(t)e(that)h(co)q(de)i(reuse)f(has)g(its)f(p)q(enalties.)21 b
(The)37 1333 y(reader)f(ma)o(y)d(think)i(that)g(the)g(reuse)h(of)f(Choices)g
(source)g(co)q(de)h(is)f(trivial)e(to)h(accomplish)g(b)q(ecause)i(the)37 1418
y(source)f(co)q(de)g(is)f(mo)q(dular)f(and)h(ob)s(ject-orien)o(ted.)29 b(Ho)o
(w)o(ev)o(er,)18 b(some)f(p)q(ortions)h(of)g(Choices)g(w)o(ere)g(p)q(o)q(orly)
37 1502 y(do)q(cumen)o(ted)e(and)g(often)f(I)h(had)g(b)q(een)h(tempted)e(to)g
(write)g(the)h(co)q(de)g(from)e(scratc)o(h)h(instead)g(of)h(sp)q(ending)37
1587 y(m)o(uc)o(h)c(time)e(attempting)g(to)h(understand)i(the)f(co)q(de.)19 b
(But)12 b(as)g(it)f(turned)i(out,)f(the)g(reuse)g(of)g(Choices)f(source)37
1672 y(co)q(de)20 b(w)o(as)e(highly)g(w)o(orth)o(while.)30 b(In)19 b(this)g
(thesis,)g(I)g(ha)o(v)o(e)f(attempted)g(to)g(do)q(cumen)o(t)g(thoroughly)g
(these)37 1757 y(p)q(ortions)13 b(of)g(undo)q(cumen)o(ted)g(co)q(de)h(to)f
(help)g(others)g(reuse)h(the)f(co)q(de)h(more)e(e\013ectiv)o(ely)g(and)h(con)
o(v)o(enien)o(tly)l(.)37 1841 y(W)l(ell-do)q(cumen)o(ted)i(ob)s(ject-orien)o
(ted)f(programs)f(are)i(v)m(aluable)g(assets.)108 1926 y(In)21 b(con)o(trast,)
f(the)g(binary)g(co)q(de)g(that)g(w)o(as)f(reused)i(in)f(PC-Choices)g(w)o(as)
f(w)o(ell)h(do)q(cumen)o(ted.)34 b(The)37 2011 y(reuse)19 b(of)e(binary)g(co)
q(de)i(p)q(oses)f(a)f(di\013eren)o(t)g(problem.)27 b(Binary)17 b(co)q(de)i
(often)e(cannot)h(b)q(e)g(reused)g(directly;)37 2095 y(new)g(soft)o(w)o(are)d
(m)o(ust)g(b)q(e)j(written)e(to)g(act)h(as)f(an)h(adapter)g(b)q(et)o(w)o(een)
g(the)g(old)g(binary)f(co)q(de)i(and)f(the)g(new)37 2180 y(source)d(co)q(de.)
20 b(Some)13 b(t)o(yp)q(es)h(of)f(adapters)h(are)f(easy)h(to)f(implemen)o(t,)
e(lik)o(e)i(the)g(adapters)h(for)f(device)h(driv)o(ers)37 2265 y(in)20 b(PC-C\
hoices,)g(but)g(others)g(are)f(b)q(e)i(highly)e(complicated.)33 b(One)20 b
(suc)o(h)g(complicated)f(adapter)g(is)g(the)37 2349 y(virtual-8086)e(monitor)
f(in)j(PC-Choices,)g(whic)o(h)f(enables)h(PC-Choices)g(to)f(run)h(16-bit)f
(programs)e(from)37 2434 y(the)e(nativ)o(e)f(32-bit)g(mo)q(de.)18 b(In)c(fact\
,)f(an)h(en)o(tire)f(k)o(ernel)g(subsystem)g(kno)o(wn)g(as)g(the)h(virtual)e
(PC)h(subsystem)37 2519 y(is)i(dedicated)h(to)e(the)i(adapter.)964 2760 y(5)g
eop bop 108 42 a fn(The)16 b(soft)o(w)o(are)e(engineer)i(m)o(ust)e(carefully)
h(w)o(eigh)g(the)g(cost)g(of)h(dev)o(eloping)f(a)g(piece)h(of)f(soft)o(w)o
(are)f(from)37 126 y(scratc)o(h)22 b(against)e(the)i(cost)f(of)g(writing)f
(new)i(adapting)f(soft)o(w)o(are)e(to)i(accomo)q(date)g(old)g(soft)o(w)o(are;)
h(the)37 211 y(pro)q(cess)16 b(of)f(accomo)q(dating)f(old)h(soft)o(w)o(are)f
(ma)o(y)g(tak)o(e)h(more)f(time)g(and)h(e\013ort)g(than)g(dev)o(eloping)g(sof\
t)o(w)o(are)37 296 y(from)j(scratc)o(h,)h(cancelling)f(out)h(the)g(adv)m(an)o
(tages)f(of)g(soft)o(w)o(are)f(reuse.)32 b(F)l(ortunately)l(,)18 b(this)h(w)o
(as)f(not)g(the)37 380 y(case.)i(The)c(dev)o(elopmen)o(t)e(and)h(debugging)g
(of)g(adapters)g(in)g(PC-Choices)g(to)q(ok)f(a)h(short)g(p)q(erio)q(d)g(of)g
(time.)108 465 y(The)22 b(microk)o(ernel)d(concept[1])i(w)o(as)g(also)g(appli\
ed)g(to)g(mak)o(e)f(PC-Choices)h(p)q(ortable)g(across)g(man)o(y)37 550 y(mac)
o(hine)16 b(con\014gurations.)24 b(The)17 b(PC-Choices)g(k)o(ernel)g(pro)o
(vides)f(a)h(small)d(n)o(um)o(b)q(er)i(of)h(services)g(to)f(appli-)37 634 y
(cations)f(and)i(the)f(k)o(ernel)f(do)q(es)h(not)g(deal)g(with)f(I/O)h(device\
s)g(directly)l(,)g(unlik)o(e)f(traditional)f(k)o(ernels.)21 b(The)37 719 y
(k)o(ernel)15 b(b)q(ecomes)g(less)g(dep)q(enden)o(t)i(on)e(the)g(idiosyncraci\
es)g(of)f(v)m(arious)h(I/O)h(devices)f(on)g(PCs.)20 b(This)15 b(is)g(an)37 804
y(imp)q(ortan)o(t)e(reason)i(for)g(the)g(binary)g(p)q(ortabilit)o(y)e(of)i
(PC-Choices.)108 888 y(The)j(PC-Choices)f(minimal)d(k)o(ernel)j(runs)g(on)h
(all)e(PCs,)h(regardless)g(of)g(con\014guration,)f(without)h(an)o(y)37 973 y
(mo)q(di\014cation)k(of)h(the)g(k)o(ernel.)41 b(A)22 b(system)f(con\014gurati\
on)g(\014le)h(ma)o(y)f(b)q(e)i(customized)e(b)o(y)h(the)g(user)h(in)37 1058 y
(order)17 b(to)f(run)i(PC-Choices)e(on)h(sp)q(ecial)g(t)o(yp)q(es)g(of)f(PC,)
g(suc)o(h)i(as)e(the)h(IBM)g(PS/2,)g(or)f(on)h(PCs)g(with)f(o)q(dd)37 1142 y
(con\014gurations.)37 1323 y fd(1.3)70 b(Application)24 b(Programming)e(Mo)r
(del)37 1453 y fn(T)l(o)13 b(understand)f(the)h(rationale)d(b)q(ehind)k(the)e
(design)g(of)g(an)o(y)g(piece)h(of)f(soft)o(w)o(are)e(one)j(m)o(ust)e(underst\
and)h(the)37 1537 y(requiremen)o(ts)j(\014rst.)22 b(Here)16 b(w)o(e)g(shall)f
(examine)g(the)h(PC-Choices)f(mo)q(del)g(of)h(application)e(programming,)37
1622 y(the)i(core)f(requiremen)o(t)f(of)g(the)i(PC-Choices)f(op)q(erating)f
(system.)108 1707 y(A)e(PC-Choices)g(application)e(program)g(runs)i(in)g(a)f
(protected)h(domain)e(that)h(is)h(distinct)f(from)f(all)h(other)37 1791 y(app\
lication)k(programs,)e(meaning)i(that)g(an)h(application)e(program)g(ma)o(y)g
(not)h(b)q(e)i(in)o(v)o(olun)o(tarily)c(a\013ected)37 1876 y(b)o(y)22 b(anoth\
er.)38 b(The)22 b(program,)e(written)h(in)g(C++[13],)h(accesses)g(system)e
(services)h(\(e.g.)38 b(\014le)21 b(system\))37 1961 y(b)o(y)g(creating)e(sys\
tem)g(ob)s(jects)h(and)g(in)o(v)o(oking)f(metho)q(ds)h(on)g(them.)34 b(Most)
20 b(system)f(ob)s(jects)g(are)h(nev)o(er)37 2045 y(instan)o(tiated)15 b(b)o
(y)g(application)g(programmers.)j(Suc)o(h)f(system)d(ob)s(jects)h(reside)h
(in)f(C++)i(global)d(v)m(ariables)37 2130 y(\(e.g.)39 b fg(Standa)o(rdOutpu)q
(t)p fn(\))24 b(for)e(con)o(v)o(enien)o(t)f(access)h(b)o(y)g(the)f(applicatio\
n)g(programmer.)36 b(Some)21 b(system)37 2215 y(ob)s(jects)16 b(\(e.g.)21 b fg
(SystemTimer)q fn(\))14 b(reside)i(in)g(a)g(sp)q(ecial)f(extended)i(global)e
(v)m(ariable)g(space.)23 b(The)16 b(application)37 2299 y(programmer)g(m)o
(ust)g(fetc)o(h)i(these)h(ob)s(jects)f(through)g(a)g(registrar)e(\(i.e.)28 b
(the)19 b fg(Standa)o(rdNameServer)q fn(\).)28 b(All)37 2384 y(v)m(ariables)
15 b(in)g(the)g(extended)i(global)c(space)j(are)f(assigned)f(distinct)h(names)
f(and)h(are)g(fetc)o(hed)h(b)o(y)f(name.)108 2469 y(Some)j(classes)h(of)g(sys\
tem)f(ob)s(jects)g(ma)o(y)g(b)q(e)i(instan)o(tiated)d(b)o(y)i(the)h(applicati\
on)e(programm)o(er)f(\(e.g.)37 2554 y fg(ApplicationPro)q(cess)p fn(\).)32 b
(The)19 b(application)e(programmer)e(is)j(not)g(required)h(to)f(destro)o(y)g
(suc)o(h)g(ob)s(jects)g(ex-)964 2760 y(6)g eop bop 37 42 a fn(plicitly)l(.)19
b(Automatic)13 b(garbage)h(collection)g(\(via)g fg(Sta)o(rs)h fn(and)g fg(Ref\
s)p fn(\))h(is)e(pro)o(vided)h(for)g(suc)o(h)g(system)e(ob)s(jects,)37 126 y
(meaning)h(that)h(the)g(system)f(ob)s(jects)g(are)h(automatically)d(destro)o
(y)o(ed)j(when)g(they)h(are)e(no)i(longer)e(in)h(use.)108 211 y(System)j(clas\
ses)g(\(i.e.)30 b(the)19 b(classes)f(of)g(the)h(system)f(ob)s(jects\))f(ma)o
(y)h(not)g(b)q(e)h(sub)q(classed)h(b)o(y)e(the)h(ap-)37 296 y(plication)d(pro\
gramm)o(er.)21 b(Because)c(of)f(this,)g(w)o(e)h(sa)o(y)e(that)h(the)h(PC-Choi\
ces)f(application)f(programming)37 380 y(mo)q(del)i(is)f(ob)s(ject-based,)i
(ev)o(en)f(though)g(the)h(k)o(ernel)f(is)f(ob)s(ject-orien)o(ted.)25 b(The)18
b(distinction)e(b)q(et)o(w)o(een)i(an)37 465 y(ob)s(ject-orien)o(ted)12 b(pro\
gramming)d(system)i(and)i(an)g(ob)s(ject-based)f(one)h(is)f(that)g(the)h(latt\
er)e(system)g(do)q(es)i(not)37 550 y(exploit)i(class)f(inheritance.)108 634 y
(An)i(application)f(program)f(alw)o(a)o(ys)g(b)q(egins)i(execution)g(with)g
(a)f(single)h(thread)f(of)h(con)o(trol,)e(but)i(addi-)37 719 y(tional)g(threa\
ds)g(of)g(con)o(trol)f(ma)o(y)g(b)q(e)i(created)g(b)o(y)f(the)h(program.)22 b
(All)16 b(static)f(ob)s(jects)h(and)g(dynamically-)37 804 y(allo)q(cated)h
(ob)s(jects)g(are)h(shared)g(b)o(y)g(all)e(threads)i(in)g(a)f(program.)26 b
(The)18 b(application)e(programmer)f(is)i(re-)37 888 y(sp)q(onsible)f(for)e
(sync)o(hronizing)h(the)h(threads)f(to)f(main)o(tain)f(the)j(consistency)f
(of)g(shared)g(ob)s(jects.)20 b(Pro)q(cess)37 973 y(sync)o(hronization)d(prim\
itiv)o(es)d(are)k(pro)o(vided)f(for)f(this)h(purp)q(ose.)27 b(In)o(terpro)q
(cess)18 b(comm)o(unication)c(among)37 1058 y(threads)h(in)f(a)g(program)f
(or)h(in)g(di\013eren)o(t)g(programs)e(is)i(supp)q(orted.)21 b(An)14 b(applic\
ation)g(program)e(is)i(allo)o(w)o(ed)37 1142 y(to)h(spa)o(wn)g(another)g(appl\
ication)f(program.)108 1227 y(Application)g(programs)e(ha)o(v)o(e)i(access)h
(to)f(a)g(terminal)f(input)h(device)h(and)g(a)g(terminal)d(output)i(device,)
37 1312 y(whic)o(h)20 b(are)g(normally)d(the)j(k)o(eyb)q(oard)g(and)g(video)g
(displa)o(y)l(.)33 b(The)20 b(terminal)e(input)i(and)g(output)f(for)h(an)37
1396 y(application)11 b(program)e(ma)o(y)g(b)q(e)j(routed)g(to)e(another)h
(application)f(program,)g(allo)o(wing)f(the)j(latter)e(program)37 1481 y(to)
15 b(manipulate)e(the)j(input)f(and)g(output)g(of)g(the)g(former)f(program.)
108 1566 y(Utilit)o(y)h(functions)h(suc)o(h)h(as)g(string)e(manipulation)f
(functions)j(are)f(pro)o(vided.)24 b(General-purp)q(ose)17 b(ab-)37 1650 y
(stract)i(data)g(t)o(yp)q(es)h(are)f(a)o(v)m(ailable)f(as)i(w)o(ell.)32 b(The)
20 b(application)e(programmer)e(ma)o(y)i(in)o(v)o(ok)o(e)h(an)o(y)g(16-bit)37
1735 y(in)o(terrupt)g(routine,)g(suc)o(h)h(as)e(the)i(BIOS)g(and)f(DOS)h(rout\
ines,)f(with)f(assured)h(consistency)g(ev)o(en)h(when)37 1820 y(calling)14 b
(non-reen)o(tran)o(t)h(16-bit)f(routines.)108 1905 y(The)e(PC-Choices)g(appli\
cation)e(programmi)o(ng)f(in)o(terface)i(is)h(a)f(concrete)h(sp)q(eci\014cati\
on)g(of)f(ob)s(jects)g(and)37 1989 y(op)q(erations)17 b(in)g(the)g(applicatio\
n)f(programm)o(ing)e(mo)q(del.)24 b(This)17 b(concrete)g(sp)q(eci\014cation)g
(is)g(presen)o(ted)h(in)37 2074 y(a)e(\\co)q(okb)q(o)q(ok")e(format)f(that)i
(teac)o(hes)g(application)f(programming.)j(I)f(advise)f(the)g(reader)g(to)g
(p)q(eruse)h(the)37 2159 y(application)h(programm)o(ing)d(in)o(terface)j(giv)
o(en)g(in)g(App)q(endix)i(A)e(so)g(that)g(the)g(reader)g(ma)o(y)f(ha)o(v)o
(e)h(a)g(fuller)37 2243 y(understanding)f(of)f(the)g(coming)e(c)o(hapters.)37
2424 y fd(1.4)70 b(Impleme)o(n)n(tation)21 b(of)i(the)f(Application)i(Program\
ming)e(Mo)r(del)37 2554 y fn(The)16 b(PC-Choices)f(application)f(programm)o
(ing)e(mo)q(del)i(is)h(implemen)o(ted)e(with)h(the)i(follo)o(wing)d(mo)q(dule\
s:)964 2760 y(7)g eop bop 106 42 a fl(\017)22 b fn(Virtual)17 b(memory)f(subs\
ystem,)i(to)f(protect)h(the)g(memory)e(spaces)i(of)g(eac)o(h)h(application)e
(program)151 126 y(and)f(to)e(main)o(tain)f(the)i(in)o(tegrit)o(y)e(of)i(the)
g(k)o(ernel.)106 245 y fl(\017)22 b fn(Pro)q(cess)17 b(subsystem,)f(to)g(pro)
o(vide)h(m)o(ultiple)d(threads)j(of)f(execution)h(and)g(sync)o(hronization)f
(primi-)151 330 y(tiv)o(es.)106 449 y fl(\017)22 b fn(Exception)14 b(subsyste\
m,)g(to)f(catc)o(h)i(protection)e(violations)g(and)h(to)g(serv)o(e)g(in)o(ter\
rupts)g(generated)h(b)o(y)151 533 y(I/O)h(devices.)106 652 y fl(\017)22 b fn
(Virtual)14 b(PC)h(subsystem,)f(to)g(pro)o(vide)h(BIOS)h(and)g(DOS)f(services)
g(to)g(application)f(programs.)106 771 y fl(\017)22 b fn(In)o(terpro)q(cess)
16 b(comm)o(unicati)o(on)d(subsystem.)106 890 y fl(\017)22 b fn(Pro)o(xy)14 b
(subsystem,)g(for)h(protected)g(access)g(to)g(shared)g(system)f(ob)s(jects.)
106 1009 y fl(\017)22 b fn(System)14 b(in)o(terface)h(library)l(,)f(to)g(init\
ialize)f(the)j(system)d(ob)s(jects)i(used)h(b)o(y)f(application)f(programs.)
106 1128 y fl(\017)22 b fn(File)14 b(system)g(library)l(,)g(to)h(pro)o(vide)f
(\014le)i(system)d(services.)106 1246 y fl(\017)22 b fn(General)15 b(purp)q
(ose)h(library)l(,)d(for)i(utilit)o(y)e(functions.)108 1370 y(Some)h(system)f
(ob)s(jects)h(\(e.g.)19 b fg(SystemTimer)q fn(\))13 b(are)h(implemen)o(ted)e
(as)j(k)o(ernel)f(ob)s(jects)g(that)g(are)g(shared)37 1454 y(among)e(m)o(ulti\
ple)f(application)g(programs.)17 b(The)d(pro)o(xy)e(subsystem)g(ensures)i(tha\
t)e(application)g(programs)37 1539 y(cannot)18 b(maliciously)c(or)j(acciden)o
(tally)g(damage)e(the)j(k)o(ernel)f(ob)s(ject.)26 b(T)l(o)17 b(ac)o(hiev)o
(e)g(this,)g(the)h(pro)o(xy)f(sub-)37 1624 y(system)e(hands)i(out)f(a)g(\\pro)
o(xy")f(of)g(the)i(shared)f(k)o(ernel)g(ob)s(ject)g(to)f(the)h(application)f
(program.)21 b(In)o(v)o(oking)37 1708 y(a)f(metho)q(d)e(on)h(a)g(pro)o(xy)g
(causes)h(a)f(system)f(trap)g(in)o(to)h(the)g(k)o(ernel,)h(and)f(after)g(the)
g(argumen)o(ts)f(for)g(the)37 1793 y(metho)q(d)c(in)o(v)o(o)q(cation)e(ha)o
(v)o(e)h(b)q(een)i(carefully)e(c)o(hec)o(k)o(ed,)i(the)f(metho)q(d)f(in)o(v)o
(o)q(cation)f(is)h(forw)o(arded)g(to)h(the)g(k)o(er-)37 1878 y(nel)19 b(ob)s
(ject.)29 b(The)19 b(pro)o(xy)f(subsystem)f(is)h(functionally)f(equiv)m(alen)
o(t)i(to)f(the)g(concept)h(of)f(system)f(calls)h(in)37 1963 y(traditional)c
(op)q(erating)h(systems)g(suc)o(h)h(as)g(Unix,)g(although)f(the)h(Choices)g
(pro)o(xy)f(mec)o(hanism)f(facilitates)37 2047 y(ob)s(ject-orien)o(ted)g(syst\
em)f(calls)h(lik)o(e)f(no)i(other)f(traditional)e(op)q(erating)i(system.)k
(A)c(full)g(discussion)g(of)g(the)37 2132 y(pro)o(xy)k(subsystem)e(is)h(b)q
(ey)o(ond)i(the)f(scop)q(e)g(of)f(this)g(thesis;)h(in)o(terested)f(readers)h
(ma)o(y)e(refer)h(to)g([12)o(])h(for)f(a)37 2217 y(thorough)e(explanation)f
(of)h(the)g(pro)o(xy)g(subsystem.)37 2396 y fd(1.5)70 b(Organization)24 b(of)
g(Thesis)37 2525 y fn(This)17 b(thesis)f(describ)q(es)i(in)e(detail)g(all)g
(subsystems)f(\(except)i(the)g(pro)o(xy)f(subsystem\))g(and)h(libraries)e(en)
o(u-)37 2610 y(merated)g(ab)q(o)o(v)o(e.)k(In)d(particular,)e(the)h(mec)o(han\
isms)e(emplo)o(y)o(ed)h(to)h(reuse)h(binary)f(co)q(de)h(are)f(carefully)f(ex-)
964 2760 y(8)g eop bop 37 42 a fn(plained.)21 b(The)16 b(thesis)f(ma)o(y)e
(b)q(e)k(used)f(as)f(a)g(reference)h(man)o(ual)d(for)i(the)h(PC-Choices)f(op)
q(erating)g(system.)1895 25 y fr(2)37 126 y fn(PC-Choices)e(system)e(programm\
ers)f(will)h(\014nd)j(this)e(thesis)h(most)e(useful,)i(although)f(there)h(is)
f(m)o(uc)o(h)g(mate-)37 211 y(rial)f(here)h(that)f(will)f(in)o(terest)h(casua\
l)g(readers)g(with)g(kno)o(wledge)g(of)g(op)q(erating)g(systems)f(or)h(ob)s
(ject-orien)o(ted)37 296 y(programming.)25 b(Whenev)o(er)18 b(p)q(ossible,)g
(I)h(ha)o(v)o(e)e(attempted)g(to)g(explain)h(eac)o(h)g(mo)q(dule)f(in)h(the)g
(follo)o(wing)37 380 y(format:)106 515 y fl(\017)k fn(Mo)q(del:)h(This)16 b
(section)g(explains)g(the)h(set)f(of)g(abstractions)f(that)h(guide)h(the)g
(o)o(v)o(erall)d(thinking)i(and)151 599 y(design)21 b(of)f(the)g(mo)q(dule[31)
o(].)35 b(This)20 b(section)g(also)g(in)o(tro)q(duces)g(graphical)g(sym)o(b)q
(ols)f(to)g(represen)o(t)151 684 y(the)f(v)m(arious)g(abstractions)e(or)h(ob)
s(jects)h(men)o(tioned.)26 b(These)19 b(sym)o(b)q(ols)d(are)i(in)o(tended)g
(to)f(help)h(the)151 769 y(reader)k(grasp)f(the)h(b)q(eha)o(viour)f(and)h(pro\
p)q(erties)g(of)f(eac)o(h)h(ob)s(ject)f(as)g(w)o(ell)g(as)g(the)h(relationshi\
ps)151 853 y(among)15 b(the)i(ob)s(jects.)25 b(In)18 b(later)e(c)o(hapters,)g
(the)h(sym)o(b)q(ols)f(are)g(reused)i(to)e(explain)h(more)e(elab)q(orate)151
938 y(mo)q(dules.)24 b(P)o(eople)16 b(who)h(are)f(in)o(terested)g(in)h(the)g
(arc)o(hitecture)f(of)g(the)h(op)q(erating)f(system)f(but)i(not)151 1023 y
(the)e(programming)d(in)o(terface)i(ma)o(y)g(skim)g(through)g(this)h(thesis)g
(and)g(read)g(eac)o(h)h(mo)q(del)e(section.)106 1145 y fl(\017)22 b fn(In)o
(terface:)c(This)12 b(section)g(co)o(v)o(ers)f(the)h(set)g(of)f(op)q(erations)
g(supp)q(orted)i(b)o(y)f(the)g(mo)q(dule)f(and)h(ho)o(w)f(they)151 1230 y(are)
k(in)o(v)o(ok)o(ed[31)n(].)k(Here,)c(the)g(programmi)o(ng)d(in)o(terface)i
(is)g(de\014ned)j(and)e(example)e(programs)g(using)151 1314 y(the)k(programmi)
o(ng)d(in)o(terface)h(are)i(sho)o(wn.)23 b(Some)16 b(mo)q(dules)f(ha)o(v)o
(e)i(t)o(w)o(o)e(programmi)o(ng)f(in)o(terfaces,)151 1399 y(one)k(for)g(the)g
(k)o(ernel)f(and)i(the)f(other)f(for)g(application)g(programs.)26 b(Both)18 b
(of)f(these)i(in)o(terfaces)e(are)151 1484 y(describ)q(ed)f(here.)k(This)15 b
(section)f(is)h(pro)o(vided)f(mainly)f(for)i(the)g(b)q(ene\014t)h(of)e(system)
g(and)h(application)151 1568 y(programmers.)106 1690 y fl(\017)22 b fn(Implem\
en)o(tation:)h(This)18 b(section)g(con)o(tains)g(a)g(detailed)g(explanation)f
(of)h(the)g(implemen)o(tatio)o(n)e(of)151 1775 y(all)e(the)h(ob)s(jects)f(and)
h(op)q(erations)f(in)h(the)f(mo)q(dule.)19 b(Man)o(y)14 b(pro)q(cessor)h(and)
g(hardw)o(are)f(arc)o(hitecture)151 1860 y(sp)q(eci\014cs)i(are)f(discussed)h
(here.)697 1843 y fr(3)108 1994 y fn(The)d(class)f(hierarc)o(h)o(y)f(c)o(hart\
,)h(\014le)h(index)g(and)f(class)g(index)h(are)f(pro)o(vided)g(as)g(app)q(end\
ices)i(in)e(this)g(thesis)37 2079 y(to)j(help)h(the)f(reader)g(lo)q(cate)g
(classes)f(within)h(the)g(source)g(co)q(de.)37 2160 y 750 2 v 89 2187 a fs
(2)107 2203 y fp(\\[Man)o(uals])h(are)h(often)f(written)g(hastily)m(,)h(after)
f(the)h(pro)q(duct)g(is)f(designed,)i(under)g(sev)o(ere)e(time)f(pressures)j
(and)f(with)37 2248 y(insu\016cien)o(t)d(resources,)f(and)h(b)o(y)f(p)q(eople)
h(who)f(are)g(o)o(v)o(erw)o(ork)o(ed)h(and)f(underappreciated."[34)s(])89 2278
y fs(3)107 2294 y fp(This)c(thesis)g(follo)o(ws)f(the)i(mo)q(del-in)o(terface\
-implem)o(en)o(tation)d(format)h(at)h(the)h(meta-lev)o(el)e(to)q(o:)15 b(the)
9 b(in)o(tro)q(ductory)i(c)o(hapter)37 2340 y(co)o(v)o(ers)h(the)g(applicatio\
n)f(programming)g(mo)q(del,)f(the)h(\014rst)h(app)q(endix)h(co)o(v)o(ers)e
(the)h(application)f(programming)g(in)o(terface,)g(and)37 2385 y(the)16 b(res\
t)f(of)g(the)g(thesis)g(co)o(v)o(ers)h(the)f(implemen)o(tation.)22 b(An)15 b
(in)o(teresting)g(question)h(arises)g(at)f(the)g(meta-meta-lev)o(el:)k(if)14 b
(the)37 2431 y(PC-Choices)f(co)q(de)h(is)e(the)h(implemen)o(tation)f(and)h
(this)g(thesis)g(is)g(the)g(in)o(terface,)g(then)g(what)g(is)g(the)g(mo)q(del\
?)964 2760 y fn(9)g eop bop 37 42 a fd(1.6)70 b(Do)r(cumen)n(ting)21 b(F)-6 b
(ramew)n(orks)37 171 y fn(This)20 b(thesis)g(presen)o(ts)g(a)f(no)o(v)o(el)h
(metho)q(dology)e(\(mo)q(del-in)o(terface-impl)o(em)o(en)o(tati)o(on\))f(for)
i(do)q(cumen)o(ting)37 256 y(ob)s(ject-orien)o(ted)i(framew)o(orks[10)l(,)g
(23,)g(7)o(].)38 b(Unlik)o(e)21 b(formal)e(framew)o(ork)f(sp)q(eci\014cations\
[6,)i(16,)h(3)o(],)h(the)37 341 y(informal)16 b(sp)q(eci\014cations)i(in)g
(this)f(thesis)h(w)o(ere)f(designed)i(to)e(b)q(e)i(as)e(useful)h(as)g(p)q(oss\
ible)g(to)f(system)g(pro-)37 425 y(grammers,)12 b(and)j(to)f(a)h(lesser)g(ext\
en)o(t,)f(application)f(programmers,)f(since)j(system)e(programmers)f(are)i
(the)37 510 y(target)g(audience)i(of)f(this)g(do)q(cumen)o(t.)108 595 y(Altho\
ugh)26 b(metho)q(dologies)e(for)i(do)q(cumen)o(ting)g(framew)o(orks)e(informa\
lly)f(already)j(exist[22)o(],)i(the)37 679 y(metho)q(dology)18 b(emplo)o(y)o
(ed)h(in)g(this)g(thesis)h(di\013ers)f(from)f(others)h(in)h(its)f(emphasis)f
(on)i(the)g(sp)q(eci\014cation)37 764 y(of)d(the)h(framew)o(ork)d(mo)q(del.)
25 b(The)18 b(purp)q(ose)g(of)f(mo)q(del)f(sp)q(eci\014cation)h(is)g(to)g(con)
o(v)o(ey)g(to)g(the)g(user)g(the)h(de-)37 849 y(signer's)e(conceptual)g(mo)q
(del)f(of)h(the)h(system.)k(Norman)15 b(wrote)g(that)h(\\a)g(conceptual)g(mo)
q(del)f(is)h(in)o(v)o(en)o(ted)37 933 y(to)g(pro)o(vide)g(an)h(appropriate)e
(represen)o(tation)h(of)g(the)g(target)f(system,)g(appropriate)h(in)g(the)h
(sense)g(of)f(b)q(e-)37 1018 y(ing)f(accurate,)g(consisten)o(t)f(and)i(comple\
te.)i(Conceptual)d(mo)q(dels)f(are)h(in)o(v)o(en)o(ted)g(b)o(y)g(teac)o(hers,)
g(designers,)37 1103 y(scien)o(tists)f(and)i(engineers."[33)n(])108 1187 y
(Norman)e(justi\014es)h(the)g(imp)q(ortance)f(of)g(conceptual)i(mo)q(dels)e
(as)h(follo)o(ws:)151 1322 y(\\A)h(go)q(o)q(d)g(conceptual)g(mo)q(del)e(allo)
o(ws)g(us)i(to)g(predict)f(the)h(e\013ects)g(of)f(our)h(actions.)21 b(Without)
151 1407 y(a)f(go)q(o)q(d)h(mo)q(del)f(w)o(e)g(op)q(erate)g(b)o(y)h(rote,)g
(blindly;)i(w)o(e)d(do)h(op)q(erations)f(as)g(w)o(e)g(w)o(ere)h(told)e(to)151
1491 y(do)h(them;)g(w)o(e)f(can't)g(fully)g(appreciate)g(wh)o(y)l(,)h(what)f
(e\013ects)g(to)g(exp)q(ect,)i(or)e(what)g(to)g(do)g(if)151 1576 y(things)14 b
(go)f(wrong.)19 b(As)14 b(long)g(as)f(things)h(w)o(ork)f(prop)q(erly)l(,)h
(w)o(e)g(can)g(manage.)k(When)d(things)e(go)151 1661 y(wrong,)k(ho)o(w)o(ev)o
(er,)h(or)f(when)h(w)o(e)f(come)g(up)q(on)h(a)g(no)o(v)o(el)f(situation,)f
(then)i(w)o(e)g(need)g(a)g(deep)q(er)151 1745 y(understanding,)d(a)g(go)q(o)q
(d)g(mo)q(del."[34)m(])108 1880 y(This)d(implies)e(that)i(as)g(soft)o(w)o(are)
e(designers,)j(w)o(e)f(should)g(exp)q(end)i(more)d(e\013ort)g(to)o(w)o(ards)g
(devising)h(go)q(o)q(d)37 1964 y(conceptual)20 b(mo)q(dels)e(for)g(our)h(syst\
ems)f(and)h(do)q(cumen)o(ting)f(the)i(mo)q(del)e(as)g(w)o(ell)h(as)f(p)q(ossi\
ble.)32 b(Clearly)l(,)37 2049 y(the)18 b(do)q(cumen)o(tation)e(of)g(the)i(mo)
q(del)e(should)h(b)q(e)h(separate)f(from)e(the)j(do)q(cumen)o(tation)d(of)i
(the)h(in)o(terface.)37 2134 y(Through)d(the)f(use)h(of)f(v)o(erbal)g(discuss\
ions)g(and)h(extensiv)o(e)f(graphical)f(illustrations,)f(this)i(thesis)g(expl\
ains)37 2219 y(the)k(conceptual)g(mo)q(dels)f(in)g(PC-Choices)g(to)h(the)f
(reader.)28 b(In)o(terfaces)17 b(are)h(describ)q(ed)g(separately)f(from)37
2303 y(mo)q(dels.)108 2388 y(In)j(an)o(y)e(case,)i(this)f(thesis)f(is)h(an)g
(exercise)g(and)g(an)g(exp)q(erimen)o(t)f(in)h(do)q(cumen)o(ting)f(ob)s(ject-\
orien)o(ted)37 2473 y(framew)o(orks.)27 b(I)19 b(encourage)g(all)e(readers)h
(to)g(send)h(commen)o(ts)d(ab)q(out)i(the)g(thesis)g(to)g(me)f(via)h(electron\
ic)37 2557 y(mail)c(at)g(the)h(address)h([email protected].)952 2760 y(10)g eop
bop 37 405 a fc(Chapter)35 b(2)37 675 y fb(Kernel)41 b(Subsystems)1228 897 y
fj(Piles)14 b(of)h(toast)f(and)h(brok)o(en)g(promises)970 954 y(Among)f(the)i
(b)q(o)q(oks)f(and)g(p)q(ens)h(and)g(reading)e(glasses)1002 1010 y(It)h(seems)
g(there's)f(no)i(escap)q(e)f(from)f(the)h(h)o(umdrum)1554 1066 y(It's)f(o)o
(v)o(er)h(and)g(done)1387 1123 y(|)h(\\The)f(end)h(of)f(the)g(w)o(orld")108
1208 y fn(The)22 b(PC-Choices)g(k)o(ernel)g(is)f(a)h(protected)g(en)o(tit)o
(y)f(that)g(pro)o(vides)h(basic)g(services)f(to)h(application)37 1292 y(progr\
ams)16 b(in)h(a)h(secure)g(manner.)26 b(In)18 b(this)f(c)o(hapter)h(w)o(e)f
(shall)g(examine)f(the)i(virtual)e(memory)l(,)g(pro)q(cess,)37 1377 y(excepti\
on,)f(virtual)f(PC)h(and)h(in)o(terpro)q(cess)e(comm)o(unication)e(subsystems)
i(in)h(the)h(k)o(ernel.)37 1557 y fd(2.1)70 b(Virtual)24 b(Memory)e(Subsystem)
37 1687 y fn(According)c(to)f(the)h(PC-Choices)g(application)e(programming)e
(mo)q(del,)j(application)g(programs)f(are)h(pre-)37 1772 y(v)o(en)o(ted)h(fro\
m)d(accessing)j(one)f(another's)g(co)q(de)h(and)f(data.)26 b(The)18 b(virtual)
e(memory)e(subsystem)j(prev)o(en)o(ts)37 1857 y(suc)o(h)12 b(memory)c(accesse\
s)j(b)o(y)g(enclosing)f(eac)o(h)h(program)e(in)o(to)h(separate)g(protected)h
(virtual)e(memory)g(spaces.)37 1941 y(The)14 b(virtual)f(memory)e(subsystem)i
(also)f(serv)o(es)i(to)f(main)o(tain)e(the)j(in)o(tegrit)o(y)d(of)j(the)f(k)o
(ernel)h(b)o(y)f(protecting)37 2026 y(k)o(ernel)i(co)q(de)h(and)g(data)e(from)
g(application)f(programs.)37 2177 y ff(2.1.1)56 b(Virtual)20 b(Memory)e(Mo)r
(del)37 2291 y fn(The)12 b(k)o(ernel)f(and)h(application)d(programs)h(run)h
(in)g(protected)g(memory)e(spaces)j(called)e fg(Domains)p fn(.)18 b(There)12 b
(are)37 2375 y(t)o(w)o(o)k(t)o(yp)q(es)h(of)g fg(Domains)p fn(:)23 b(Kernel)
17 b fg(Domain)f fn(and)h(Application)f fg(Domain)p fn(.)25 b(The)17 b(Kernel)
g fg(Domain)f fn(con)o(tains)37 2460 y(k)o(ernel)f(co)q(de)h(and)f(data,)f
(most)g(of)g(whic)o(h)h(are)g(inaccessible)g(b)o(y)g(application)e(programs.)
18 b(An)d(Application)37 2545 y fg(Domain)g fn(is)g(a)h fg(Domain)e fn(in)i
(whic)o(h)f(an)h(application)e(program)g(ma)o(y)g(run.)22 b(Multiple)14 b(App\
lication)h fg(Domains)952 2760 y fn(11)g eop bop 37 42 a fn(ma)o(y)13 b(exist\
,)g(the)h(n)o(um)o(b)q(er)f(of)h(suc)o(h)g fg(Domains)f fn(dep)q(ending)i(on)
f(the)g(n)o(um)o(b)q(er)f(of)h(application)e(programs)g(that)37 126 y(are)j
(curren)o(tly)g(running,)g(but)g(only)g(a)g(single)g(Kernel)g fg(Domain)f fn
(exists.)108 211 y(A)d fg(Domain)e fn(con)o(tains)g(con)o(tiguous)h(memory)e
(regions)h(that)h(store)g(program)e(co)q(de)j(and)g(data.)18 b(A)10 b(con)o
(tigu-)37 296 y(ous)17 b(memory)d(region)i(is)h(represen)o(ted)g(b)o(y)g(a)f
fg(Memo)o(ryObject)p fn(.)25 b(Eac)o(h)16 b fg(Memo)o(ryObject)h fn(is)f(asso)
q(ciated)g(with)37 380 y(p)q(ermissions;)c(either)i(no)f(access,)g(read-only)
g(access,)h(or)f(read)g(and)h(write)e(access)i(to)e(the)i fg(Memo)o(ryObject)
f fn(is)37 465 y(gran)o(ted)k(to)f(the)h(application)e(program)g(running)i
(in)f(that)g fg(Domain)p fn(.)24 b(That)16 b(w)o(a)o(y)l(,)g(application)g
(programs)37 550 y(are)d(prev)o(en)o(ted)g(from)e(temp)q(ering)g(with)h(criti\
cal)f(co)q(de)i(and)g(data)f(b)q(elonging)g(to)g(the)h(k)o(ernel.)19 b(Sub)q
(classes)13 b(of)37 634 y fg(Memo)o(ryObject)h fn(are)f(used)i(to)e(represen)
o(t)g(di\013eren)o(t)g(t)o(yp)q(es)h(of)f(memory)l(,)e(suc)o(h)j(as)g(ph)o
(ysical)f(memory)e(\()p fg(Phys-)37 719 y(icallyResidentMemo)o(ryObjects)p fn
(\))18 b(and)e(application-usable)e(memory)f(\()p fg(HeapMemo)o(ryObject)p fn
(\).)21 b(Figure)14 b(2.1)37 804 y(illustrates)g(the)h(relationship)f(b)q(et)
o(w)o(een)h fg(Domains)g fn(and)g fg(Memo)o(ryObjects)p fn(.)597 862 y
11935440 14208860 11051335 26378485 28154593 46705049 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 168 401 428 710
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.403576 0 0 0.403576 292.708 236.513 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 148.632 302.7 ] concat
%I 4
138 440
138 127
177 166
177 477
4 MLine
%I 4
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -195 -104 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -195 -79 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -195 -22 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -195 2 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -195 27 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -195 89 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 149.439 302.7 ] concat
%I 4
314 440
314 127
346 165
346 477
4 MLine
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.403576 0 0 0.403576 292.708 489.152 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 174 430.5 ] concat
%I
[
(Address)
(0x00000000)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 172 658 ] concat
%I
[
(Address)
(0xFFFFFFFF)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 292 709.5 ] concat
%I
[
(Domain)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 170.5 557 ] concat
%I
[
(Memory)
(Object)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 134 475 ] concat
%I
167 133 236 133 Line
%I 2
End

End %I eop

showpage

%%Trailer

end

endTexFig
744 1860 a fi(Figure)h(2.1)p fn(:)k(A)15 b fg(Domain)108 1995 y
fn(An)f(application)f(program)f(runs)i(in)g(a)g(single)f(Application)h fg(Dom\
ain)e fn(and)j(uses)f(three)g fg(Memo)o(ryObjects)37 2079 y fn(for)g(storing)
f(the)h(program)e(co)q(de,)j(initialized)d(data)i(and)g(uninitialized)f(data.)
19 b(These)14 b fg(Memo)o(ryObjects)h fn(are)37 2164 y(commonly)i(kno)o(wn)h
(as)h(the)g(text,)f(data)h(and)g(BSS)g(segmen)o(ts.)29 b(In)20 b(addition,)e
(an)h(application)f(program)37 2249 y(requires)23 b(a)f(stac)o(k)g(to)g(run.)
42 b(The)23 b(stac)o(k)e(is)h(encapsulated)h(in)g(a)f fg(Memo)o(ryObject)g fn
(as)g(w)o(ell.)41 b(All)22 b(these)37 2333 y fg(Memo)o(ryObjects)11 b fn(used)
h(b)o(y)e(the)h(application)e(program)g(are)h(instances)h(of)f(class)g fg(Hea\
pMemo)o(ryObject)p fn(,)i(whic)o(h)37 2418 y(is)i(an)f(abstraction)f(for)i
(application-usable)e(memory)l(.)17 b(Except)d(for)f(the)h(text)f(segmen)o
(t)f(whic)o(h)i(is)f(readable)37 2503 y(but)20 b(not)f(writeable,)f(all)g(of)
h(these)h fg(Memo)o(ryObjects)f fn(are)g(readable)g(and)g(writeable)f(b)o(y)i
(the)f(application)37 2588 y(program.)952 2760 y(12)g eop bop 108 42 a fn(Eac)
o(h)16 b fg(Memo)o(ryObject)h fn(b)q(elonging)f(to)g(the)g(Kernel)h fg(Domain)
e fn(is)h(presen)o(t)h(in)f(all)g(Application)f fg(Domains)37 126 y fn(at)k
(the)g(same)f(address.)32 b(Whenev)o(er)20 b(an)f(application)f(program)f(exe\
cutes)j(a)f(system)f(call)g(to)h(request)g(a)37 211 y(k)o(ernel)d(service,)f
(it)g(en)o(ters)h(the)g(Kernel)g fg(Domain)e fn(in)i(a)f(secure)i(manner)d
(to)h(execute)i(the)f(k)o(ernel)f(co)q(de.)22 b(An)37 296 y(application)16 b
(program)f(also)h(en)o(ters)h(the)g(Kernel)g fg(Domain)f fn(to)h(service)f
(in)o(terrupts)h(and)g(exceptions.)25 b(The)37 380 y(relationship)14 b(b)q
(et)o(w)o(een)i(Kernel)f(and)h(Application)e fg(Domains)g fn(is)h(illustrated)
f(in)h(Figure)f(2.2.)207 439 y
24249782 18945146 -1710325 14471987 40850472 47625994 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: -26 220 621 724
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.403576 0 0 0.403576 286.577 236.514 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 142.5 302.7 ] concat
%I 4
138 440
138 127
177 166
177 477
4 MLine
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.403576 0 0 0.403576 286.577 489.152 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 1 0 0 1 121.212 263.36 ] concat
%I
140 151 269 228 Rect
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.403576 0 0 0.403576 486.446 236.513 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 342.369 302.7 ] concat
%I 4
138 440
138 127
177 166
177 477
4 MLine
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.403576 0 0 0.403576 486.446 489.152 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 1 0 0 1 321.081 263.36 ] concat
%I
140 151 269 228 Rect
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.403576 0 0 0.403576 86.7083 236.513 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 -57.3685 302.7 ] concat
%I 4
138 440
138 127
177 166
177 477
4 MLine
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.403576 0 0 0.403576 86.7083 489.152 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 1 0 0 1 -78.6561 263.36 ] concat
%I
140 151 269 228 Rect
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -401 -22 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -401 2 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -401 27 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -201 -36 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -201 38 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -202 62.0001 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 -56.5613 302.7 ] concat
%I 4
314 440
314 127
346 165
346 477
4 MLine
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 143.308 302.7 ] concat
%I 4
314 440
314 127
346 165
346 477
4 MLine
%I 4
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 1.90735e-05 -10.0001 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 3.8147e-06 37.9999 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 343.176 302.7 ] concat
%I 4
314 440
314 127
346 165
346 477
4 MLine
%I 4
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 52.625 84.6875 ] concat
%I
10 329 164 180 Line
%I 1
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 52.625 84.6875 ] concat
%I
210 330 164 183 Line
%I 1
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 52.625 84.6875 ] concat
%I
339 329 294 182 Line
%I 1
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 52.625 84.6875 ] concat
%I
138 331 293 182 Line
%I 1
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 172.625 84.6875 ] concat
%I
289 329 45 182 Line
%I 1
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 172.625 84.6875 ] concat
%I
418 330 175 183 Line
%I 1
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.403576 0 0 0.403576 191.083 194.835 ] concat
%I
133 245 441 438 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.403576 0 0 0.403576 191.487 194.835 ] concat
%I 4
62 369
62 175
132 245
132 438
4 MLine
%I 8
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.367235 0 0 0.367235 245.778 111.392 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -238 -266 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -238 -237 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 0.25 -0 -0 0.25 457.125 484.688 ] concat
%I 25
132 433
-27 276
-27 191
-23 181
-15 173
1 164
23 155
50 147
82 140
125 135
169 132
226 130
262 132
296 135
325 139
362 145
385 152
407 160
429 169
437 178
438 178
442 183
444 184
578 346
578 433
25 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 469.234 455.023 ] concat
%I
489 374 602 509 Line
%I 16
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 502.125 484.688 ] concat
%I
247 248 399 433 Line
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.201788 0 0 0.201788 537.035 478.027 ] concat
%I 21
-429 373
-427 358
-412 340
-388 330
-371 321
-347 316
-312 306
-281 301
-246 297
-202 292
-163 291
-97 292
-53 294
-16 298
21 303
80 316
112 328
136 344
146 356
161 374
264 500
21 MLine
%I 16
End

End %I eop

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.403576 0 0 0.403576 191.487 194.835 ] concat
%I 4
384 367
384 175
442 245
442 438
4 MLine
%I 8
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.367235 0 0 0.367235 245.778 189.685 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 86 724 ] concat
%I
[
(Application)
(Domain)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 487 724 ] concat
%I
[
(Application)
(Domain)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 287 724 ] concat
%I
[
(Application)
(Domain)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 217 249 ] concat
%I
[
(Kernel)
(Domain)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 -26 557 ] concat
%I
[
(Memory)
(Objects)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 2.38064 0 0 5.82469 27 581.662 ] concat
%I
[
({)
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
438 1737 a fi(Figure)i(2.2)p fn(:)k(Kernel)15 b fg(Domain)f fn
(and)i(Application)e fg(Domains)37 1937 y ff(2.1.2)56 b(Virtual)20 b(Memory)e
(In)n(terface)37 2051 y fg(Domains)e fn(are)h(created)f(b)o(y)h(calling)e(the)
i fg(Domain)e fn(constructor)h(and)h(passing)f(the)h(paren)o(t)f fg(Domain)f
fn(as)h(the)37 2136 y(parameter.)j(In)d(the)g(case)f(of)g(Application)g fg
(Domains)p fn(,)f(the)h(paren)o(t)g fg(Domain)g fn(is)g(the)g(Kernel)h fg(Dom\
ain)p fn(.)j(The)37 2221 y(Kernel)d fg(Domain)e fn(ma)o(y)g(b)q(e)h(obtained)
g(from)f(the)h(global)f(v)m(ariable)g fg(DefaultDomains[0])p fn(.)1551 2204 y
fr(1)108 2306 y fn(The)20 b fg(Memo)o(ryObject)f fn(class)g(is)g(nev)o(er)h
(instan)o(tiated)e(directly)h(b)q(ecause)h(it)f(is)g(a)g(base)h(class)f(that)
g(de-)37 2390 y(\014nes)e(the)f fg(Memo)o(ryObject)f fn(in)o(terface)g(and)h
(pro)o(vides)g(v)o(ery)f(limited)f(functions.)21 b(The)16 b fg(HeapMemo)o(ryO\
bject)37 2475 y fn(class)k(is)f(more)f(functional)h(as)g(its)g(instances)h
(represen)o(t)g(ph)o(ysical)f(memory)e(regions)i(that)g(ma)o(y)f(b)q(e)i(ac-)
37 2556 y 750 2 v 89 2583 a fs(1)107 2599 y fa(DefaultDomains)12 b fp(is)h
(de\014ned)h(in)f fa(MachineDep)q(endent/PC/PCSmallKernel.cc)p fp(.)952 2760 y
fn(13)g eop bop 37 42 a fn(cessed)24 b(b)o(y)e fg(ApplicationPro)q(cesses)p fn
(.)45 b(T)l(o)23 b(allo)q(cate)e(a)h fg(HeapMemo)o(ryObject)h fn(of)g(a)f(cer\
tain)g(size,)i(w)o(e)e(call)37 126 y fg(Kernel::allo)q(cateHeapMemo)o(ryObjec\
t\(\))14 b fn(and)g(pass)g(to)f(the)h(metho)q(d)f(the)h(desired)g(size)g(of)g
(the)g fg(HeapMemo-)37 211 y(ryObject)p fn(.)21 b(The)12 b(metho)q(d)f(return\
s)h(a)g(p)q(oin)o(ter)g(to)f(a)h fg(HeapMemo)o(ryObject)p fn(,)h(if)e(it)h
(w)o(as)f(successfully)h(allo)q(cated,)37 296 y(or)j(n)o(ull)g(if)f(the)i(ob)
s(ject)e(could)i(not)e(b)q(e)i(allo)q(cated.)108 380 y(A)h fg(Pro)q(cess)h fn
(ma)o(y)e(access)h(the)h fg(HeapMemo)o(ryObject)g fn(as)e(part)h(of)g(its)f
(virtual)g(memory)f(only)i(after)f(the)37 465 y fg(HeapMemo)o(ryObject)f fn
(has)f(b)q(een)h(added)f(in)o(to)f(the)h fg(Pro)q(cess)p fn(')h fg(Domain)d fn
(with)i(the)g(appropriate)e(p)q(ermissions.)37 550 y(The)i fg(Domain)e fn(cla\
ss)h(pro)o(vides)g(t)o(w)o(o)f(metho)q(ds)g(for)h(adding)g fg(Memo)o(ryObject\
s)g fn(to)g(a)g fg(Domain)p fn(.)18 b(Both)13 b(metho)q(ds)37 634 y(are)i(cal\
led)g fg(Domain::add\(\))p fn(,)e(one)j(taking)e(three)h(argumen)o(ts)e(and)j
(the)f(other)g(taking)f(t)o(w)o(o)g(\(Figure)g(2.3\).)196 697 y 1559 2 v 196
937 a 2 240 v 316 744 a fi(const)h(c)o(har)g fl(\003)p fg(Domain::add)f(\(Mem\
o)o(ryObject)h fl(\003)p fg(memObj,)407 800 y fi(const)g(c)o(har)g fl(\003)p
fg(vaddr,)g(ProtectionLevel)h(p)q(ermission\))316 857 y fi(const)f(c)o(har)g
fl(\003)p fg(Domain::add)f(\(Memo)o(ryObject)h fl(\003)p fg(memObj,)407 913 y
(ProtectionLevel)g(p)q(ermission\))1753 937 y 2 240 v 196 939 a 1559 2 v 363
1016 a fi(Figure)h(2.3)p fn(:)k(Metho)q(ds)15 b(for)g(adding)g fg(Memo)o(ryOb\
jects)g fn(to)g(a)f fg(Domain)108 1148 y fn(The)k(\014rst)e(metho)q(d)h(adds)
g(a)g fg(Memo)o(ryObject)g fn(to)g(a)g fg(Domain)f fn(at)g(a)h(sp)q(eci\014ed)
i(virtual)d(address)h(\()p fg(vaddr)p fn(\))37 1232 y(with)e(the)h(indicated)
f(p)q(ermission)f(\(either)h fg(NoAccess,)i(ReadOnly)g(o)o(r)d(ReadW)o(rite)p
fn(\).)1481 1216 y fr(2)1522 1232 y fn(The)h(second)h(metho)q(d)37 1317 y(b)q
(eha)o(v)o(es)g(similarly)11 b(except)16 b(that)e(it)g(do)q(es)h(not)g(requir\
e)g(the)g(caller)f(to)g(sp)q(ecify)h(the)g(virtual)f(address.)20 b(This)37
1402 y(metho)q(d)e(determines)g(an)h(appropriate)f(virtual)f(address)i(for)f
(adding)g(the)h fg(Memo)o(ryObject)g fn(and)g(returns)37 1486 y(the)d(c)o(hos\
en)f(virtual)f(address)h(to)g(the)g(caller.)108 1571 y(After)k(adding)g(a)g fg
(Memo)o(ryObject)h fn(to)e(a)h fg(Domain)p fn(,)g(the)h(programmer)c(should)j
(force)h(the)f(pro)q(cessor's)37 1656 y(virtual)h(memory)f(mappings)h(to)g
(b)q(e)i(up)q(dated)g(b)o(y)g(calling)e fg(Domain::mak)o(eAddressable\(\))p fn
(,)h(passing)f(the)37 1740 y(virtual)d(address)h(and)h(the)f(size)g(of)g(the)
g fg(Memo)o(ryObject)g fn(as)f(argumen)o(ts)1315 1724 y fr(3)1333 1740 y fn
(.)29 b(The)18 b(example)f(in)h(Figure)f(2.4)37 1825 y(sho)o(ws)h(ho)o(w)f
(to)g(create)g(an)h(Application)f fg(Domain)p fn(,)f(allo)q(cate)h(a)g fg(Hea\
pMemo)o(ryObject)i fn(and)e(add)h(it)f(to)g(the)37 1910 y fg(Domain)p fn(.)
199 1893 y fr(4)108 1995 y fn(The)i(virtual)e(memory)g(programm)o(ing)f(in)o
(terfaces)i(for)g(the)g(k)o(ernel)h(and)g(application)e(programs)g(are)37 2079
y(similar.)25 b(F)l(or)17 b(application)f(programs,)g fg(Domains)h fn(and)g fg
(HeapMemo)o(ryObjects)i fn(are)e(created)h(through)f(the)37 2164 y fg(Standa)
o(rdSystemInterface)i fn(ob)s(ject)d(that)g(is)h(exp)q(orted)g(to)f(applicati\
on)f(programs.)23 b(An)17 b(application)f(pro-)37 2249 y(gram)10 b(ma)o(y)h
(fetc)o(h)g(its)h(o)o(wn)f fg(Domain)g fn(and)h(in)o(v)o(ok)o(e)f(metho)q(ds)
g(on)g(the)h fg(Domain)p fn(,)f(but)h(for)g(safet)o(y)l(,)f(only)h(a)f(subset)
37 2330 y 750 2 v 89 2357 a fs(2)107 2372 y fp(The)i(p)q(ermissions)f(are)h
(de\014ned)i(in)d fa(Includes/Memo)o(ry/ProtectionLevel.h)p fp(.)89 2402 y fs
(3)107 2418 y fp(This)g(is)g(actually)h(due)g(to)f(a)g(bug)i(in)e(PC-Choices;)
g(other)h(v)o(ersions)g(of)f(Choices)h(will)e(automatically)g(up)q(date)j(the)
e(virtual)37 2464 y(memory)g(mappings)h(when)g(the)g(MemoryOb)r(ject)g(is)g
(referenced.)89 2494 y fs(4)107 2509 y fp(The)c(global)g(v)n(ariable)g fa(The\
Kernel)g fp(is)g(declared)h(in)f fa(Includes/Kernel.h)p fp(.)14 b(The)9 b fa
(DomainSta)o(r)h fp(and)g fa(Memo)o(ryObjectSta)o(r)f fp(ob)r(jects)37 2555 y
(facilitate)i(automatic)h(garbage)h(collection;)f(please)g(refer)g(to)g(Secti\
on)g(A.2.2)g(for)f(an)i(explanation)g(of)f(this)g(garbage)h(collection)37 2601
y(sc)o(heme.)k(Kernel)c(and)g(application)h(programmers)e(are)h(advised)h(to)
f(use)g(this)g(sc)o(heme)f(whenev)o(er)i(p)q(ossible.)952 2760 y fn(14)g eop
bop 196 2 a 1559 2 v 196 693 a 2 692 v 316 48 a fk(//)46 b(Cr)n(e)n(ate)22 b
(an)g(Applic)n(ation)g(Domain.)316 105 y fi(extern)14 b fg(Domain)g fl(\003)p
fg(DefaultDomains)h([];)316 161 y(DomainSta)o(r)f(domain)g(=)i fi(new)f fg
(Domain)f(\(DefaultDomains)g([0]\);)316 218 y fk(//)46 b(A)o(l)r(lo)n(c)n(ate)
21 b(a)i(He)n(apMemoryObje)n(ct)g(of)f(size)g(8192)i(bytes.)316 274 y fg(Memo)
o(ryObjectSta)o(r)15 b(heapMemo)o(ryObject)h(=)f(TheKernel)h fl(!)407 330 y fg
(allo)q(cateHeapMemo)o(ryObject)g(\(8192\);)316 387 y fk(//)46 b(Make)22 b
(sur)n(e)h(that)g(the)g(al)r(lo)n(c)n(ation)f(was)h(suc)n(c)n(essful.)316 443
y fg(Assert)16 b(\(heapMemo)o(ryObject)g fl(6)p fn(=)g fg(0\);)316 500 y fk
(//)46 b(A)n(dd)22 b(it)h(to)g(the)g(Domain.)316 556 y fg(domain)15 b fl(!)g
fg(add)h(\(heapMemo)o(ryObject,)g(0x7000000,)c(ReadW)o(rite\);)316 613 y fk
(//)46 b(Up)n(date)23 b(the)g(He)n(apMemoryObje)n(ct)f(addr)n(ess)g(mappings.)
316 669 y fg(domain)15 b fl(!)g fg(mak)o(eAddressable)i(\(0x7000000,)12 b(819\
2\);)1753 693 y 2 692 v 196 695 a 1559 2 v 191 772 a fi(Figure)k(2.4)p fn(:)k
(Using)15 b(Application)f fg(Domains)g fn(and)i fg(HeapMemo)o(ryObjects)g fn
(in)f(the)g(k)o(ernel)37 905 y(of)g(the)g fg(Domain)f fn(programming)e(in)o
(terface)i(is)g(exp)q(orted)i(to)e(application)g(programs.)k(The)d(co)q(de)h
(fragmen)o(t)37 990 y(in)g(Figure)e(2.5)g(runs)i(in)f(application)e(space)j
(and)f(is)g(functionally)f(iden)o(tical)g(to)h(the)g(co)q(de)h(ab)q(o)o(v)o
(e.)1751 973 y fr(5)196 1050 y 1559 2 v 196 1911 a 2 861 v 316 1097 a fk(//)
46 b(Cr)n(e)n(ate)22 b(an)g(Applic)n(ation)g(Domain.)316 1153 y fg(DomainSta)
o(r)14 b(domain)g(=)i(Standa)o(rdSystemInterface)h fl(!)407 1210 y fg(newAppl\
icationDomain)f(\(\);)316 1266 y fk(//)46 b(Make)22 b(sur)n(e)h(that)g(the)g
(Domain)g(was)g(cr)n(e)n(ate)n(d)f(suc)n(c)n(essful)r(ly.)316 1323 y fg(Asser\
t)16 b(\(domain)f fl(6)p fn(=)g fg(0\);)316 1379 y fk(//)46 b(A)o(l)r(lo)n
(c)n(ate)21 b(a)i(He)n(apMemoryObje)n(ct)g(of)f(size)g(8192)i(bytes.)316 1436
y fg(Memo)o(ryObjectSta)o(r)15 b(heapMemo)o(ryObject)h(=)f(Standa)o(rdSystemI\
nterface)i fl(!)407 1492 y fg(allo)q(cateApplicationMemo)o(ry)e(\(8192\);)316
1548 y fk(//)46 b(Make)22 b(sur)n(e)h(that)g(the)g(al)r(lo)n(c)n(ation)f(was)
h(suc)n(c)n(essful.)316 1605 y fg(Assert)16 b(\(heapMemo)o(ryObject)g fl(6)p
fn(=)g fg(0\);)316 1661 y fk(//)46 b(A)n(dd)22 b(the)h(He)n(apMemoryObje)n
(ct)g(to)g(the)g(Domain.)316 1718 y fg(domain)15 b fl(!)g fg(add)h(\(heapMemo)
o(ryObject,)g(0x7000000,)407 1774 y(ReadW)o(rite\);)316 1831 y fk(//)46 b(Up)
n(date)23 b(the)g(He)n(apMemoryObje)n(ct)f(addr)n(ess)g(mappings.)316 1887 y
fg(domain)15 b fl(!)g fg(mak)o(eAddressable)i(\(0x7000000,)12 b(8192\);)1753
1911 y 2 861 v 196 1913 a 1559 2 v 57 1990 a fi(Figure)k(2.5)p fn(:)k(Using)
15 b(Application)f fg(Domains)g fn(and)i fg(HeapMemo)o(ryObjects)g fn(in)f
(an)g(application)f(program)108 2124 y(The)i(function)f fg(allo)q(cateMemo)o
(ry\(\))f fn(sho)o(wn)h(in)g(Figure)g(2.6)g(illustrates)f(ho)o(w)h(an)g(appli\
cation)g(program)37 2209 y(ma)o(y)c(dynamically)g(request)i(more)e(memory)f
(from)h(the)i(k)o(ernel.)1139 2193 y fr(6)1177 2209 y fn(\(Keep)h(in)e(mind)g
(that)g(application)f(heaps)37 2294 y(are)17 b(\014xed)h(in)f(size.\))25 b
(The)17 b(function)g(is)g(called)f(with)h(an)g(argumen)o(t)e(sp)q(ecifying)i
(the)g(amoun)o(t)e(of)i(memory)37 2378 y(to)e(allo)q(cate,)f(and)h(it)f(retur\
ns)i(a)e(p)q(oin)o(ter)h(to)g(the)g(newly-allo)q(cated)f(memory)l(.)37 2460 y
750 2 v 89 2486 a fs(5)107 2502 y fa(Standa)o(rdSystemInterface)e fp(is)h(dec\
lared)g(in)g fa(SystemInterface.h)p fp(,)e fa(thisPro)q(cess\(\))h fp(is)h
(declared)g(in)g fa(ThisPro)q(cess.h)p fp(.)89 2532 y fs(6)107 2548 y fp(A)d
(function)g(similar)f(to)h fa(allo)q(cateMemo)o(ry\(\))h fp(w)o(as)f(used)h
(in)f(the)g(MGR)h(windo)o(wing)f(system)g(for)g(PC-Choices)g(so)g(that)h(MGR)
37 2594 y(ma)o(y)i(p)q(erform)f(its)g(o)o(wn)h(memory)f(allo)q(cation.)952
2760 y fn(15)g eop bop 196 606 a 1559 2 v 196 1918 a 2 1313 v 316 652 a fi
(c)o(har)15 b fl(\003)p fg(allo)q(cateMemo)o(ry)e(\()p fi(in)o(t)h fg(size\))
316 709 y fl(f)407 765 y fk(//)46 b(This)22 b(function)g(al)r(lo)n(c)n(ates)g
(a)h(chunk)g(of)g(memory)g(of)g(the)407 822 y(//)46 b(sp)n(e)n(ci\014e)n(d)21
b(size)h(and)g(r)n(eturns)h(a)g(p)n(ointer)f(to)h(the)g(lo)n(c)n(ation)407 878
y(//)46 b(of)23 b(the)g(al)r(lo)n(c)n(ate)n(d)f(memory.)46 b(If)22 b(the)h
(memory)g(c)n(ould)g(not)g(b)n(e)407 935 y(//)46 b(al)r(lo)n(c)n(ate)n(d,)22 b
(the)h(function)f(r)n(eturns)g(0.)407 1048 y(//)46 b(A)o(l)r(lo)n(c)n(ate)21 b
(a)i(chunk)g(of)g(memory)g(of)g(the)g(r)n(e)n(queste)n(d)f(size.)407 1104 y fg
(Memo)o(ryObjectSta)o(r)15 b(mo)f(=)h(Standa)o(rdSystemInterface)i fl(!)498
1160 y fg(allo)q(cateApplicationMemo)o(ry)e(\(size\);)407 1217 y fk(//)46 b
(If)22 b(the)h(al)r(lo)n(c)n(ation)f(faile)n(d)g(\(e.g.)g(kernel)g(r)n(an)g
(out)i(of)407 1273 y(//)46 b(applic)n(ation)22 b(memory\),)h(r)n(eturn)g(0.)
407 1330 y fi(if)14 b fg(\(mo)g(==)i(0\))f fi(return)f fg(0;)407 1386 y fk
(//)46 b(F)m(etch)22 b(the)h(Domain)g(of)g(my)g(Pr)n(o)n(c)n(ess.)407 1443 y
fg(DomainSta)o(r)14 b(domain)g(=)i(thisPro)q(cess)h(\(\))d fl(!)i fg(domain)f
(\(\);)407 1499 y fk(//)46 b(A)n(dd)22 b(the)h(memory)h(to)f(my)g(Domain,)g
(and)g(save)f(the)h(addr)n(ess)407 1556 y(//)46 b(at)23 b(which)g(the)g(memor\
y)g(was)g(adde)n(d.)407 1612 y fi(const)15 b(c)o(har)g fl(\003)p fg(addr)g
(=)h(domain)f fl(!)g fg(add)h(\(mo,)d(ReadW)o(rite\);)407 1669 y fk(//)46 b
(Make)22 b(the)h(memory)h(addr)n(essable.)407 1725 y fg(domain)14 b fl(!)i fg
(mak)o(eAddressable)h(\(addr,)d(size\);)407 1781 y fk(//)46 b(R)n(eturn)22 b
(the)h(addr)n(ess)g(of)g(the)g(al)r(lo)n(c)n(ate)n(d)f(memory.)407 1838 y fi
(return)14 b fg(\()p fi(c)o(har)h fl(\003)p fg(\))g(addr;)316 1894 y fl(g)
1753 1918 y 2 1313 v 196 1920 a 1559 2 v 295 1997 a fi(Figure)i(2.6)p fn(:)i
(Dynamic)14 b(memory)f(allo)q(cation)g(in)i(an)g(application)f(program)952
2760 y(16)g eop bop 108 42 a fn(Kernel)17 b(and)g(applications)e(ma)o(y)f(rem\
o)o(v)o(e)h fg(Memo)o(ryObjects)i fn(from)e fg(Domains)g fn(b)o(y)i(calling)e
(the)h fg(Domain-)37 126 y(::remove\(\))f fn(metho)q(d.)24 b(This)17 b(metho)
q(d)f(accepts)h(one)g(argumen)o(t,)e(a)i(p)q(oin)o(ter)f(to)h(the)g fg(Memo)o
(ryObject)f fn(to)h(b)q(e)37 211 y(remo)o(v)o(ed)d(from)g(the)h fg(Domain)p fn
(.)37 362 y ff(2.1.3)56 b(Virtual)20 b(Memory)e(Implemen)n(tation)37 476 y fn
(All)g(stac)o(ks,)h(pro)o(xy)f(p)q(o)q(ols,)h(co)q(de)g(and)g(data)f(segmen)o
(ts)f(b)q(elonging)h(to)g fg(ApplicationPro)q(cesses)j fn(are)e fg(Heap-)37
560 y(Memo)o(ryObjects)p fn(,)h(a)f(sub)q(class)g(of)f fg(PhysicallyResidentM\
emo)o(ryObjects)p fn(.)34 b fg(HeapMemo)o(ryObjects)20 b fn(are)f(allo-)37 645
y(cated)e(from)e(a)i(\014xed)g(p)q(o)q(ol)g(of)f(ph)o(ysical)g(memory)f(that)
h(is)g(set)h(aside)f(during)h(k)o(ernel)g(initializatio)o(n.)22 b(The)37 730 y
(size)16 b(of)e(the)i(ph)o(ysical)e(memory)f(p)q(o)q(ol)i(dep)q(ends)h(on)g
(the)f(KernelW)l(orkingMemorySize)e(parameter)g(in)i(the)37 814 y(system)g
(con\014guration)g(\014le)g(and)h(on)g(the)g(amoun)o(t)d(of)j(ph)o(ysical)f
(memory)e(presen)o(t)i(in)h(the)g(system.)k fg(Heap-)37 899 y(Memo)o(ryObject\
s)h fn(represen)o(t)f(non-critical)f(memory)e(regions)i(that)h(could)g(b)q
(e)g(paged)g(out)g(to)f(a)h(bac)o(king)37 984 y(store)13 b(\(suc)o(h)h(as)f
(a)g(disk\))g(in)h(order)f(to)g(reallo)q(cate)f(the)i(memory)d(to)i(other)g
(programs)f(to)h(b)q(e)h(executed.)20 b(The)37 1068 y(page)c(replacemen)o(t)d
(mec)o(hanism)g(just)i(describ)q(ed)h(is)f(presen)o(tly)g(not)g(implemen)o
(ted)e(in)i(PC-Choices.)108 1153 y(Eac)o(h)c fg(Memo)o(ryObject)f fn(is)g(ass\
o)q(ciated)g(with)g(a)g fg(Memo)o(ryObjectCache)i fn(that)e(is)g(resp)q(onsib\
le)h(for)f(\014lling)f(the)37 1238 y fg(Memo)o(ryObject)p fn('s)k(ph)o(ysical)
f(memory)f(frames)g(with)i(v)m(alid)g(data.)18 b(This)13 b(op)q(eration)f(is)
h(t)o(ypically)e(p)q(erformed)37 1323 y(when)16 b(the)f(k)o(ernel)g(forces)g
(the)h fg(Memo)o(ryObject)f fn(to)f(b)q(e)i(made)e(residen)o(t)h(in)g(ph)o
(ysical)g(memory)l(.)108 1407 y(Eac)o(h)g fg(Domain)f fn(main)o(tains)f(a)i
(table)f(describing)h(the)h fg(Memo)o(ryObjects)f fn(it)g(con)o(tains;)1573
1391 y fr(7)1606 1407 y fn(the)h(table)e(stores)37 1492 y(the)k(range)e(of)h
(virtual)f(memory)e(o)q(ccupied)19 b(b)o(y)e(eac)o(h)g fg(Memo)o(ryObject)p fn
(,)g(the)g(size)g(of)g(eac)o(h)g fg(Memo)o(ryObject)p fn(,)37 1577 y(and)k
(the)f(p)q(ermission)f(of)h(the)g fg(Memo)o(ryObject)p fn(.)35 b(This)19 b
(list)g(is)h(up)q(dated)h(whenev)o(er)g fg(Domain::add\(\))d fn(and)37 1661 y
fg(Domain::remove\(\))12 b fn(are)j(called.)k(The)d(table)e(assists)g(in)h
(handling)g(page)g(faults)f(as)h(w)o(ell.)108 1746 y(Eac)o(h)g fg(Domain)f fn
(p)q(oin)o(ts)g(to)g(a)h fg(Tw)o(oLevelP)o(ageT)l(able)f fn(that)g(abstracts)
g(the)h(dual-lev)o(el)f(page)h(table)f(struc-)37 1831 y(ture)i(de\014ned)h
(b)o(y)e(the)h(386)f(micropro)q(cessor)e(arc)o(hitecture.)1077 1814 y fr(8)
1117 1831 y fn(The)j fg(Tw)o(oLevelP)o(ageT)l(able)f fn(main)o(tains)d(map-)
37 1915 y(pings)18 b(from)e(virtual)h(memory)f(to)h(ph)o(ysical)g(memory)l
(.)26 b(A)18 b fg(Tw)o(oLevelP)o(ageT)l(able)g fn(con)o(tains,)f(at)g(its)g
(upp)q(er)37 2000 y(lev)o(el,)k(a)f(table)g(of)g(p)q(oin)o(ters)g(to)g(P)o
(age)f(T)l(ables.)36 b(This)20 b(table)g(of)f(p)q(oin)o(ters)h(is)g(kno)o(wn)
g(as)g(a)h(P)o(oin)o(ter)e(T)l(a-)37 2085 y(ble)f(in)f(Choices)h(terminology)
c(and)k(maps)e(directly)h(in)o(to)f(to)h(a)g(P)o(age)g(Directory)f(as)h(de\
\014ned)i(b)o(y)f(the)f(386)37 2169 y(micropro)q(cessor)d(arc)o(hitecture.)19
b(P)o(age)14 b(T)l(ables)h(o)q(ccup)o(y)h(the)f(lo)o(w)o(er)f(lev)o(el)h(of)g
(the)g fg(Tw)o(oLevelP)o(ageT)l(able)p fn(.)37 2250 y 750 2 v 89 2277 a fs
(7)107 2293 y fp(The)e(table)g(is)f(k)o(ept)i(in)e(the)h(mem)o(b)q(er)f(v)n
(ariable)h fa(Domain::list)p fp(.)89 2323 y fs(8)107 2339 y fp(The)g(mem)o
(b)q(er)e(v)n(ariable)i fa(Domain::)r 12 2 v 11 w(translation)g fp(p)q(oin)o
(ts)h(to)f(the)g fa(Tw)o(oLevelP)o(ageT)m(able)p fp(.)952 2760 y fn(17)g eop
bop 108 42 a fn(A)18 b(P)o(oin)o(ter)f(T)l(able)i(is)e(an)i(arra)o(y)e(of)h fg
(i386P)o(ointerT)l(ableEntry)h fn(ob)s(jects,)f(whereas)g(a)g(P)o(age)g(T)l
(able)g(is)g(an)37 126 y(arra)o(y)f(of)g fg(i386P)o(ageT)l(ableEntry)h fn(ob)
s(jects.)764 110 y fr(9)811 126 y fn(In)g(the)g(386)f(arc)o(hitecture,)g(the)
h(P)o(oin)o(ter)e(T)l(able)i(en)o(tries)f(ha)o(v)o(e)37 211 y(the)f(same)e
(format)f(as)h(the)i(P)o(age)e(T)l(able)h(en)o(tries.)108 296 y(The)h(primiti\
v)o(e)d(op)q(erations)i(on)h(a)g fg(Tw)o(oLevelP)o(ageT)l(able)f fn(map)g(a)g
(region)g(of)h(a)f(ph)o(ysical)g(memory)f(to)h(a)37 380 y(virtual)h(address)h
(and)g(unmap)f(a)g(region)g(of)g(virtual)g(memory)l(.)22 b(Similarly)l(,)14 b
fg(i386P)o(ointerT)l(ableEntries)j fn(and)37 465 y fg(i386P)o(ageT)l(ableEntr\
ies)c fn(supp)q(ort)f(the)h(mapping)e(and)h(unmapping)g(op)q(erations)f(whic)
o(h)h(function)g(at)g(a)g(lo)o(w)o(er)37 550 y(lev)o(el.)19 b(The)c(mapping)d
(and)j(unmapping)e(op)q(erations)g(on)h(a)g fg(Tw)o(oLevelP)o(ageT)l(able)g fn
(are)f(translated)g(in)o(to)g(the)37 634 y(corresp)q(onding)j(op)q(erations)e
(on)h fg(i386P)o(ointerT)l(ableEntries)h fn(and)f fg(i386P)o(ageT)l(ableEntri\
es)p fn(.)108 719 y fg(Domain::mak)o(eAddressable\(\))g fn(is)h(implemen)o
(ted)f(b)o(y)h(searc)o(hing)g(the)h fg(Domain)e fn(for)h(the)h fg(Memo)o(ryOb\
ject)37 804 y fn(that)d(corresp)q(onds)h(to)e(the)h(address)h(argumen)o(t,)d
(and)i(then)h(calling)e(the)h fg(Memo)o(ryObjectCache)h fn(asso)q(ciated)37
888 y(with)d(the)f fg(Memo)o(ryObject)h fn(to)f(bring)g(the)h fg(Memo)o(ryObj\
ect)p fn('s)f(data)g(in)o(to)g(ph)o(ysical)g(memory)l(.)16 b(F)l(ollo)o(wing)
10 b(that,)37 973 y fg(Domain::mak)o(eAddressable\(\))16 b fn(calls)h(the)g fg
(Tw)o(oLevelP)o(ageT)l(able)g fn(to)f(map)g(the)i(ph)o(ysical)e(memory)f(used)
j(b)o(y)37 1058 y(the)e fg(Memo)o(ryObjectCache)g fn(in)o(to)e(the)h(virtual)
f(address)h(space.)37 1206 y fi(2.1.3.1)52 b(Ph)o(ysical)16 b(Mem)o(or)o(y)e
(Organization)37 1320 y fn(The)f(ph)o(ysical)f(memory)f(is)h(organized)g(as)g
(sho)o(wn)h(in)f(Figure)g(2.7.)18 b(Virtual)12 b(PC)g(Memory)f(\(1024)g(kilob)
o(ytes\))37 1405 y(is)16 b(reserv)o(ed)g(for)f(DOS,)g(BIOS)i(and)f(16-bit)f
(device)h(driv)o(ers.)21 b(This)16 b(space)g(is)f(also)g(used)h(for)f(running)
h(DOS)37 1489 y(applications)e(while)h(PC-Choices)g(is)g(activ)o(e.)k(No)c
(protection)g(is)f(enforced)i(up)q(on)g(this)f(memory)d(space)k(|)37 1574 y
(programs)11 b(running)j(at)e(the)h(user)g(privilege)g(lev)o(el)f(are)h(p)q
(ermitted)f(to)g(read)h(and)g(write)g(freely)f(in)h(the)h(space.)504 1633 y
14871933 9472573 19405619 34930114 34338078 44402688 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 295 531 522 675
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 364 666 ] concat
%I
[
(Kernel Working Memory)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 376.5 630 ] concat
%I
[
(Application Memory)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 367 594 ] concat
%I
[
(Kernel System Memory)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 380 558 ] concat
%I
[
(Virtual PC Memory)
] Text
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 41 272 ] concat
%I
306 263 482 405 Rect
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 280 404 ] concat
%I
135 333 487 333 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 280 440.5 ] concat
%I
135 333 487 333 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 280 476.5 ] concat
%I
135 333 487 333 Line
%I 2
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.678823 0 0 0.678823 89.1821 197.961 ] concat

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 328 524 ] concat
%I
[
(Address)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 307 508 ] concat
%I
[
(0x00000000)
] Text
End

End %I eop

End %I eop

showpage

%%Trailer

end

endTexFig
542 2331 a fi(Figure)i(2.7)p fn(:)k(Ph)o(ysical)14 b(memory)f
(organization)37 2412 y 750 2 v 89 2439 a fs(9)107 2455 y fa(POINTER)r 12 2 v
11 w(T)m(ABLE)r 12 2 v 12 w(ENTRY)18 b fp(is)h(an)g(alias)g(for)f fa(i386P)o
(ointerT)m(ableEntry)i fp(and)g fa(P)m(A)o(GE)r 12 2 v 10 w(T)m(ABLE)r 12 2 v
11 w(ENTRY)f fp(is)g(an)g(alias)g(for)37 2500 y fa(i386P)o(ageT)m(ableEntry)q
fp(.)952 2760 y fn(18)g eop bop 108 42 a fn(Kernel)22 b(System)e(Memory)g(\(1\
200)g(kilob)o(ytes)g(appro)o(ximately\))e(con)o(tains)i(k)o(ernel)h(ob)s(ject\
s)g(that)g(are)37 126 y(created)e(during)f(k)o(ernel)h(initializatio)o(n.)27 b
(These)19 b(ob)s(jects)f(are)g(nev)o(er)h(deallo)q(cated)f(after)g(the)g(k)o
(ernel)h(has)37 211 y(b)q(een)h(initialized.)27 b(The)18 b(co)q(de,)h(data)f
(and)g(BSS)h(sections)e(of)h(the)g(k)o(ernel)g(are)g(lo)q(cated)g(in)g(this)f
(region)h(as)37 296 y(w)o(ell.)108 380 y(Kernel)h(W)l(orking)f(Memory)e(\(150\
0)h(kilob)o(ytes)h(b)o(y)g(default\))g(con)o(tains)g(k)o(ernel)g(ob)s(jects)g
(that)g(are)g(dy-)37 465 y(namically)f(allo)q(cated)h(as)g(the)h(result)f(of)
h(system)e(calls)h(that)g(w)o(ere)h(in)o(v)o(ok)o(ed)f(b)o(y)h(application)e
(programs.)37 550 y(These)h(ob)s(jects)e(are)g(automatically)d(deallo)q(cated)
j(when)i(not)e(used)h(b)o(y)g(an)o(y)f(application)g(program.)22 b(The)37 634
y(size)12 b(of)g(the)g(Kernel)h(W)l(orking)e(Memory)f(is)i(determined)f(b)o
(y)h(the)g(KernelW)l(orkingMemorySize)e(parameter)37 719 y(in)16 b(the)f(syst\
em)f(con\014guration)g(\014le.)108 804 y(All)24 b(remaining)f(memory)l(,)h
(termed)f(Application)h(Memory)l(,)h(is)f(dedicated)h(for)f(running)h(applica\
-)37 888 y(tions.)19 b fg(Kernel::allo)q(cateHeapMemo)o(ryObject\(\))12 b fn
(calls)g fg(HeapMemo)o(ryObject::allo)q(cate\(\))h fn(to)g(allo)q(cate)e(mem-)
37 973 y(ory)16 b(from)f(this)h(p)q(o)q(ol)h(of)f(memory)l(.)21 b fg(HeapMemo)
o(ryObjects)d fn(returned)f(b)o(y)f fg(HeapMemo)o(ryObject::allo)q(cate\(\))
37 1058 y fn(are)e(alw)o(a)o(ys)f(page-aligned)g(\(the)h(page)g(size)g(b)q
(eing)g(4096)f(b)o(ytes\))h(and)g(rounded)h(up)f(to)f(a)h(whole)g(page.)19 b
(The)37 1142 y(memory)c(allo)q(cation)h(is)h(aided)h(b)o(y)f(a)g(bitmap)f(of)
h(free)h(pages)f(in)g(the)h(Application)f(Memory)e(p)q(o)q(ol.)27 b(This)37
1227 y(bitmap)14 b(is)h(k)o(ept)g(as)g(a)f(class)h(v)m(ariable)g(in)g(the)g fg
(HeapMemo)o(ryObject)h fn(class.)37 1375 y fi(2.1.3.2)52 b(Virtual)16 b(Mem)o
(ory)e(Organization)37 1489 y fn(A)k fg(Domain)e fn(is)h(organized)g(as)g(sho)
o(wn)g(in)g(Figure)g(2.8.)25 b(All)17 b(memory)d(from)i(Virtual)g(PC)h(Memory)
f(to)g(the)37 1574 y(Kernel)d(W)l(orking)f(Memory)e(is)i(mapp)q(ed)g(one-to-o\
ne)h(from)d(ph)o(ysical)i(memory)e(to)i(ev)o(ery)g(Domain)e(starting)37 1659 y
(at)19 b(the)f(same)g(ph)o(ysical)g(addresses)h(\(i.e.)29 b(0\).)h(The)19 b
(Kernel)g(Heap)g(co)o(v)o(ers)f(the)h(same)e(ph)o(ysical)h(memory)37 1743 y
(region)i(as)f(the)h(Kernel)h(W)l(orking)e(Memory)l(.)33 b(The)20 b(Kernel)g
(Heap)g(is)g(used)h(for)e(dynamic)g(allo)q(cation)f(of)37 1828 y(memory)13 b
(through)i(the)g(C++)h fg(new)g fn(op)q(erator)e(after)h(the)g(k)o(ernel)g
(has)g(b)q(een)h(initialized.)108 1913 y(User-privilege)10 b(programs)f(are)i
(not)g(p)q(ermitted)f(to)g(access)i(the)f(Kernel)g(System)f(Memory)l(,)g(Appl\
ication)37 1997 y(Memory)l(,)k(Kernel)i(W)l(orking)e(Memory)f(and)j(Kernel)g
(Heap)f(regions)g(in)g(the)g(Domain,)e(except)j(for)f(a)g(small)37 2082 y(p)q
(ortion)h(of)g(the)h(Kernel)g(System)f(Memory)e(that)i(is)g(readable)h(b)o
(y)f(user-privilege)g(programs)e(in)j(order)f(to)37 2167 y(implemen)o(t)e(the)
i(pro)o(xy)g(mec)o(hanism.)21 b(User-privilege)16 b(programs)e(are)i(allo)o
(w)o(ed)e(read-only)i(access)h(to)e(the)37 2252 y(Application)e(Pro)o(xy)g
(P)o(o)q(ol)f(and)i(Application)f(T)l(ext)g(regions,)g(and)g(are)h(allo)o(w)o
(ed)e(read)h(and)h(write)e(access)i(to)37 2336 y(the)i(Application)e(Data)g
(and)h(Application)g(BSS)g(regions.)952 2760 y(19)g eop bop 201 352 a
24439238 28417720 12498534 17103257 37495603 46113013 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 190 260 570 701
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 0.678823 0 0 0.678823 192.581 270.803 ] concat
%I
[
(0x00000000)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -84 -110 ] concat

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 267.5 599.5 ] concat
%I
135 333 487 333 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 267.5 564.5 ] concat
%I
135 333 487 333 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 267.5 529.5 ] concat
%I
135 333 487 333 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 267.5 457.5 ] concat
%I
135 333 487 333 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 267.5 421.5 ] concat
%I
135 333 487 333 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 267.5 384.5 ] concat
%I
135 333 487 333 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 267.5 349.5 ] concat
%I
135 333 487 333 Line
%I 2
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 385 540 ] concat
%I
[
(Kernel Heap)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 358 576 ] concat
%I
[
(Application Proxy Pool)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 372.5 612 ] concat
%I
[
(Application Stack)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 401.5 648 ] concat
%I
[
(Unused)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 375.5 685 ] concat
%I
[
(Application Text)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 375 720 ] concat
%I
[
(Application Data)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 376.5 756 ] concat
%I
[
(Application BSS)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 401.5 789 ] concat
%I
[
(Unused)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 351.5 504 ] concat
%I
[
(Kernel Working Memory)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 364 468 ] concat
%I
[
(Application Memory)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 354.5 432 ] concat
%I
[
(Kernel System Memory)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 367.5 396 ] concat
%I
[
(Virtual PC Memory)
] Text
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 3.00714 28.5 -417.878 ] concat
%I
306 263 482 405 Rect
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 267.5 242 ] concat
%I
135 333 487 333 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 267.5 278.5 ] concat
%I
135 333 487 333 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 267.5 314.5 ] concat
%I
135 333 487 333 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 267.5 493.5 ] concat
%I
135 333 487 333 Line
%I 2
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 0.678823 0 0 0.678823 206.836 701.664 ] concat
%I
[
(Address)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 0.678823 0 0 0.678823 192.581 556.803 ] concat
%I
[
(0x08000000)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 0.678823 0 0 0.678823 192.581 690.803 ] concat
%I
[
(0xFFFFFFFF)
] Text
End

Begin %I Line
%I b 65535
1 1 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 135 140 ] concat
%I
328 300 328 122 Line
%I 1
End

Begin %I Line
%I b 65535
1 1 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 109 206 ] concat
%I
339 56 339 484 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 474 360 ] concat
%I
[
(Kernel Domain)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 458 559 ] concat
%I
[
(Application Domain)
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
553 2250 a fi(Figure)17 b(2.8)p fn(:)i(Virtual)14 b(memory)f
(organization)952 2760 y(20)g eop bop 37 42 a fi(2.1.3.3)52 b(Com)o(m)m(en)n
(ts)37 156 y fn(Only)15 b(a)g(subset)f(of)g(the)h(Choices)f(virtual)g(memory)
e(subsystem)h(has)i(b)q(een)g(implemen)o(ted)e(in)h(PC-Choices.)37 240 y(The)
e(Choices)g(virtual)e(memory)f(subsystem[40)n(])i(can)h(handle)g(demand)f(pag\
ing,)g(page)h(replacemen)o(t,)e(bac)o(k-)37 325 y(ing)h(stores)g(and)g(ev)o
(en)g(distributed)g(virtual)f(memory[25)l(].)18 b(P)o(arts)10 b(of)h(the)g
(virtual)f(memory)f(subsystem)h(w)o(ere)37 410 y(reused)16 b(in)f(the)h(Choic\
es)f(ob)s(ject-orien)o(ted)f(\014le)h(system[29)n(].)108 494 y(The)i(Choices)
g(virtual)f(memory)e(subsystem)j(assumes)e(that)i(it)f(ma)o(y)g(access)h(a)f
(disk)h(to)g(serv)o(e)g(as)f(the)37 579 y(bac)o(king)g(store.)22 b(I)17 b(mo)
q(di\014ed)e(the)i(subsystem)e(for)g(PC-Choices)h(so)g(that)f(ph)o(ysical)h
(memory)e(w)o(as)h(used)i(in)37 664 y(place)12 b(of)f(bac)o(king)g(store;)g fg
(HeapMemo)o(ryObjects)i fn(w)o(ere)e(in)o(v)o(en)o(ted)g(to)g(replace)g fg
(Memo)o(ryObjects)h fn(that)e(resided)37 748 y(on)16 b(a)f(bac)o(king)f(store\
.)37 929 y fd(2.2)70 b(Pro)r(cess)23 b(Subsystem)37 1059 y fn(The)16 b(pro)q
(cess)f(subsystem)f(implemen)o(ts)e(threads)i(of)h(con)o(trol,)e(also)h(kno)o
(wn)h(as)f(pro)q(cesses,)h(as)g(sp)q(eci\014ed)h(b)o(y)37 1143 y(the)g(applic\
ation)e(programming)e(mo)q(del.)20 b(The)c(pro)q(cess)g(subsystem)e(pro)o(vid\
es)h(functions)g(to)g(manipulate)37 1228 y(and)h(sync)o(hronize)f(pro)q(cesse\
s.)20 b(Multitasking)13 b(is)i(facilitated)f(b)o(y)h(the)g(pro)q(cess)g(subsy\
stem)g(as)f(w)o(ell.)37 1379 y ff(2.2.1)56 b(Pro)r(cess)18 b(Mo)r(del)37 1493
y fn(A)f fg(Pro)q(cess)g fn(is)f(an)g(abstraction)f(for)g(a)h(thread)g(of)g
(con)o(trol.)22 b(In)17 b(the)f(PC-Choices)g(mo)q(del)f(of)h(pro)q(cess)g(man\
-)37 1577 y(agemen)o(t,)d(a)g fg(Pro)q(cess)i fn(ma)o(y)d(not)i(b)q(e)g(termi\
nated)e(or)i(susp)q(ended)i(b)o(y)d(another)h fg(Pro)q(cess)p fn(;)h(instead,)
e fg(Pro)q(cesses)37 1662 y fn(m)o(ust)19 b(v)o(olun)o(tarily)f(terminate)h
(or)g(susp)q(end)j(themselv)o(es.)34 b(Some)19 b fg(Pro)q(cesses)j fn(are)e
(preemptable,)g(mean-)37 1747 y(ing)g(that)f(these)h fg(Pro)q(cesses)h fn(wil\
l)e(automaticall)o(y)e(relinquish)i(the)h(pro)q(cessor)g(to)f(another)h fg
(Pro)q(cess)g fn(after)37 1832 y(con)o(tin)o(uously)c(running)i(for)e(a)h(pre\
determined)f(amoun)o(t)f(of)i(time)e(\(called)h(the)h(timeslice\).)23 b(A)17 b
fg(Pro)q(cess)h fn(is)37 1916 y(said)f(to)g(b)q(e)h(in)o(terruptible)e(if)g
(it)h(services)g(exceptions)g(and)g(in)o(terrupts)g(immediatel)o(y)e(when)i
(they)g(o)q(ccur.)37 2001 y(Exceptions)e(and)h(in)o(terrupts)e(are)h(generate\
d)g(b)o(y)g(the)h(pro)q(cessor)f(to)f(indicate)h(sp)q(ecial)g(conditions.)108
2086 y(Eac)o(h)g fg(Pro)q(cess)h fn(is)f(asso)q(ciated)f(with)h(exactly)f(one)
i fg(Domain)p fn(,)d(the)j fg(Domain)e fn(in)h(whic)o(h)g(it)f(executes.)21 b
fg(Pro-)37 2170 y(cesses)g fn(ma)o(y)d(not)g(c)o(hange)h fg(Domains)g fn(duri\
ng)g(their)f(lifetimes.)29 b(Switc)o(hing)18 b(the)i(pro)q(cessor)e(b)q(et)o
(w)o(een)i(t)o(w)o(o)37 2255 y fg(Pro)q(cesses)e fn(executing)d(in)h(the)g
(same)e fg(Domain)h fn(incurs)h(less)f(o)o(v)o(erhead)g(than)h(switc)o(hing)f
(b)q(et)o(w)o(een)h(t)o(w)o(o)e fg(Pro-)37 2340 y(cesses)j fn(executing)d(in)
g(separate)g fg(Domains)p fn(.)19 b(Hence)c fg(Pro)q(cesses)h fn(running)e
(in)g(the)g(same)f fg(Domain)h fn(are)f(termed)37 2424 y(\\ligh)o(t)o(w)o(eig\
h)o(t")f(\(as)j(opp)q(osed)h(to)e(\\hea)o(vyw)o(eigh)o(t"\))f fg(Pro)q(cesses)
p fn(.)108 2509 y fg(Pro)q(cess)19 b fn(sc)o(heduling)f(is)g(implemen)o(ted)d
(with)j fg(Pro)q(cessContainers)i fn(\(Figure)d(2.9\).)27 b fg(Pro)q(cesses)
19 b fn(ma)o(y)e(b)q(e)37 2594 y(dep)q(osited)d(in)o(to)f(a)g fg(Pro)q(cessCo\
ntainer)i fn(or)e(remo)o(v)o(ed)f(from)g(it.)18 b(Eac)o(h)13 b fg(Pro)q(cessC\
ontainer)j fn(emplo)o(ys)11 b(a)j(sp)q(eci\014c)952 2760 y(21)g eop bop 37 42
a fn(p)q(olicy)14 b(to)f(determine)f(the)i(order)f(in)g(whic)o(h)h fg(Pro)q
(cesses)g fn(are)g(remo)o(v)o(ed)e(from)f(the)j(collection.)k(F)l(or)13 b(exa\
mple,)37 126 y(a)21 b fg(FIF)o(OScheduler)i fn(is)d(a)g(t)o(yp)q(e)h(of)g fg
(Pro)q(cessContainer)i fn(that)d(uses)h(the)g(FIF)o(O)f(p)q(olicy)h(to)f(sele\
ct)g(the)h(next)37 211 y fg(Pro)q(cess)d fn(to)f(b)q(e)h(remo)o(v)o(ed)d(from)
h(the)h(con)o(tainer.)25 b(The)17 b(global)f(k)o(ernel)h(en)o(tit)o(y)f(named)
h(System)f(Sc)o(heduler)37 296 y(is)j(the)f fg(Pro)q(cessContainer)j fn(that)
d(sc)o(hedules)h fg(Pro)q(cesses)h fn(for)d(execution;)j(it)e(holds)h(all)e fg
(Pro)q(cesses)j fn(that)e(are)37 380 y(ready)e(for)e(execution.)602 439 y
11793352 14208860 14537768 11577589 32298844 32890880 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 221 176 491 500
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I
201 269 81 22 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 68 ] concat
%I
201 269 81 22 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.429415 -0 -0 0.429415 217.688 179.487 ] concat
%I
201 269 81 22 Elli
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
352 195 265 122 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
46 199 129 126 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
38 339 38 210 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
363 341 363 212 Line
%I 2
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 249.581 167.408 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 248.581 384.408 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Line
%I b 65535
2 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 91.625 15.5 ] concat
%I
217 416 217 372 Line
%I 1
End

Begin %I Line
%I b 65535
2 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 87.625 25.5 ] concat
%I
220 189 220 154 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 409 309 ] concat
%I
[
(Process removal)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 436 296 ] concat
%I
[
(policy)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 333 467 ] concat
%I
[
(Add Process)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 332 257 ] concat
%I
[
(Remove Process)
] Text
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 91.625 15.5 ] concat
%I
314 289 267 289 Line
%I 1
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 208 222.5 ] concat
%I 10
53 256
53 242
126 265
198 268
269 261
340 242
342 254
270 273
198 279
127 274
10 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 196.581 278.408 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 303.581 284.408 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 232.581 293.408 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 268.581 258.408 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

End %I eop

showpage

%%Trailer

end

endTexFig
654 1437 a fi(Figure)i(2.9)p fn(:)k(A)15 b fg(Pro)q(cessContai\
ner)108 1571 y fn(The)j(pro)q(cessor)g(runs)g fg(Pro)q(cesses)h fn(at)e(all)g
(times.)26 b(Ev)o(en)18 b(when)h(there)e(are)h(no)g(other)f fg(Pro)q(cesses)j
fn(ready)37 1656 y(for)15 b(execution,)g(the)h(pro)q(cessor)f(executes)h(the)
f(Idle)h fg(Pro)q(cess)p fn(,)g(whic)o(h)f(spins)g(around)h(in)f(a)g(lo)q(op)
g(w)o(aiting)e(to)37 1741 y(giv)o(e)i(the)g(pro)q(cessor)g(to)g(another)g fg
(Pro)q(cess)h fn(that)e(is)h(ready)g(for)f(execution.)108 1825 y(The)19 b fg
(Pro)q(cess)h fn(class)e(is)g(an)h(abstract)e(base)i(class)f(that)g(should)h
(not)g(b)q(e)g(instan)o(tiated)e(directly)l(.)30 b(The)37 1910 y(instan)o(tia\
ble)12 b(sub)q(classes)i(are)f fg(SystemPro)q(cess)p fn(,)h fg(PreemptableSys\
temPro)q(cess)p fn(,)h fg(InterruptPro)q(cess)p fn(,)g fg(Applica-)37 1995 y
(tionPro)q(cess)k fn(and)e fg(P)o(erCPUIdlePro)q(cess)p fn(.)27 b(By)17 b(def\
ault,)g(all)f(of)h(the)g(ab)q(o)o(v)o(e)g fg(Pro)q(cesses)h fn(execute)g(at)e
(the)i(k)o(er-)37 2079 y(nel)f(privileged)g(lev)o(el)f(except)h(for)g fg(Appl\
icationPro)q(cesses)p fn(,)j(whic)o(h)c(execute)i(at)e(the)h(user)g(privilege\
d)f(lev)o(el.)37 2164 y fg(SystemPro)q(cesses)i fn(are)d(non-preemptable,)g
(meaning)f(that)h(they)h(are)f(nev)o(er)h(preempted)f(from)f(execution)37 2249
y(unless)d(they)f(v)o(olun)o(tarily)f(terminate)f(or)i(susp)q(end)h(themselv)
o(es)e(from)g(execution.)18 b fg(PreemptableSystemPro-)37 2333 y(cesses)c fn
(ha)o(v)o(e)e(the)g(same)e(c)o(haracteristics)h(as)g fg(SystemPro)q(cesses)j
fn(except)e(that)f(a)h fg(PreemptableSystemPro)q(cess)37 2418 y fn(ma)o(y)i
(b)q(e)i(preempted)f(when)g(its)g(timeslice)e(expires.)108 2503 y fg(Interrup\
tPro)q(cesses)22 b fn(are)d(non-preemptable,)h(and)f(unlik)o(e)g(all)g(other)
g(Pro)q(cesses,)h fg(InterruptPro)q(cesses)37 2588 y fn(are)g(unin)o(terrupta\
ble)g(b)o(y)g(default.)35 b fg(InterruptPro)q(cesses)23 b fn(are)d(t)o(ypical\
ly)e(used)j(for)f(executing)g(in)o(terrupt)952 2760 y(22)g eop bop 37 42 a fn
(routines.)19 b fg(ApplicationPro)q(cesses)d fn(are)d(preemptable)f fg(Pro)q
(cesses)j fn(that)d(execute)i(in)f(the)g(user)g(privilege)f(lev)o(el)37 126 y
(except)20 b(when)f(running)h(inside)e(the)i(k)o(ernel)e(to)h(p)q(erform)e
(system)h(calls.)30 b fg(ApplicationPro)q(cesses)22 b fn(con)o(tain)37 211 y
(t)o(w)o(o)14 b(stac)o(ks)h(while)f(other)h fg(Pro)q(cesses)i fn(con)o(tain)d
(only)h(one)g(stac)o(k.)k fg(ApplicationPro)q(cesses)f fn(use)d(one)h(stac)o
(k)e(for)37 296 y(running)k(programs)d(in)j(the)f(user)h(privilege)e(lev)o
(el)h(and)h(the)f(other)g(for)g(running)g(in)h(the)f(k)o(ernel)g(privilege)37
380 y(lev)o(el.)i(Argumen)o(ts)11 b(are)h(copied)h(from)e(the)i(user)g(stac)o
(k)e(to)h(the)h(k)o(ernel)f(stac)o(k)g(when)h(the)g fg(ApplicationPro)q(cess)
37 465 y fn(p)q(erforms)h(a)h(system)f(call.)108 550 y(The)19 b(non-preemptab\
le)f fg(P)o(erCPUIdlePro)q(cess)i fn(is)f(used)g(to)f(implemen)o(t)e(the)j
(Idle)h(Pro)q(cess)f(describ)q(ed)37 634 y(earlier.)i(Kernel)16 b(programmers)
c(usually)k(ha)o(v)o(e)f(no)g(need)i(to)e(create)h fg(P)o(erCPUIdlePro)q(cess\
es)h fn(of)e(their)g(o)o(wn;)37 719 y(these)h fg(Pro)q(cesses)h fn(are)d(crea\
ted)i(only)e(during)h(k)o(ernel)g(initialization.)108 804 y(T)l(able)c(2.1)e
(summaries)f(the)j(default)f(prop)q(erties)g(of)h(the)f(v)m(arious)g(t)o(yp)q
(es)h(of)f fg(Pro)q(cesses)p fn(.)20 b(Some)10 b(prop)q(erties)37 888 y(ma)o
(y)18 b(b)q(e)j(di\013eren)o(t)e(dep)q(ending)i(on)e(the)h(situation;)g(all)f
fg(Pro)q(cesses)i fn(are)e(automaticall)o(y)e(unin)o(terruptible)37 973 y(whe\
n)k(servicing)f(in)o(terrupts,)g(and)h(an)f fg(ApplicationPro)q(cess)i fn(run\
s)f(in)f(the)g(k)o(ernel)g(privilege)f(lev)o(el)h(while)37 1058 y(p)q(erformi\
ng)13 b(system)g(calls)g(or)h(servicing)f(in)o(terrupts.)19 b(Figure)14 b(2.1\
0)f(sho)o(ws)g(ho)o(w)h fg(Pro)q(cesses)i fn(are)d(related)h(to)37 1142 y fg
(Domains)p fn(.)k(In)13 b(this)e(\014gure,)h fg(Pro)q(cesses)h fn(lab)q(elled)
f(\\A")f(are)g fg(ApplicationPro)q(cesses)p fn(,)k(while)d fg(Pro)q(cesses)h
fn(lab)q(elled)37 1227 y(\\O")i(represen)o(t)h(all)e(other)h(t)o(yp)q(es)g
(of)g fg(Pro)q(cesses)p fn(.)226 1337 y 1498 2 v 225 1394 a 2 57 v 251 1377 a
fg(Pro)q(cess)h fn(class)793 1394 y 2 57 v 818 1377 a(Preemptable)49 b(In)o
(terruptible)h(Privilege)14 b(lev)o(el)1723 1394 y 2 57 v 226 1395 a 1498 2 v
225 1452 a 2 57 v 251 1435 a fg(SystemPro)q(cess)793 1452 y 2 57 v 920 1435 a
fn(no)247 b(y)o(es)225 b(k)o(ernel)1723 1452 y 2 57 v 225 1508 a 2 57 v 251
1491 a fg(PreemptableSystemPro)q(cess)793 1508 y 2 57 v 913 1491 a fn(y)o(es)
241 b(y)o(es)225 b(k)o(ernel)1723 1508 y 2 57 v 225 1565 a 2 57 v 251 1548 a
fg(InterruptPro)q(cess)793 1565 y 2 57 v 920 1548 a fn(no)253 b(no)232 b(k)o
(ernel)1723 1565 y 2 57 v 225 1621 a 2 57 v 251 1604 a fg(ApplicationPro)q
(cess)793 1621 y 2 57 v 913 1604 a fn(y)o(es)241 b(y)o(es)j(user)1723 1621 y 2
57 v 225 1678 a 2 57 v 251 1661 a fg(P)o(erCPUIdlePro)q(cess)793 1678 y 2 57 v
920 1661 a fn(no)j(y)o(es)225 b(k)o(ernel)1723 1678 y 2 57 v 226 1679 a 1498 2
v 549 1756 a fi(T)l(able)18 b(2.1)p fn(:)h(Default)c(prop)q(erties)f(of)h fg
(Pro)q(cesses)108 1891 y fn(Choices)d(pro)o(vides)g fg(Semapho)o(res)p fn([11)
o(])g(for)g(pro)q(cess)g(sync)o(hronization.)18 b(Conceptually)l(,)12 b(eac)o
(h)h fg(Semapho)o(re)37 1976 y fn(con)o(tains)h(an)g(in)o(teger)g(coun)o(ter,)
g(set)g(to)g(a)g(sp)q(eci\014c)i(v)m(alue)e(at)g(creation,)g(and)g(a)g fg(Pro)
q(cessContainer)q fn(,)i(initially)37 2060 y(empt)o(y)l(.)i(The)13 b fg(Semap\
ho)o(re::P\(\))e fn(op)q(eration)h(atomically)d(decremen)o(ts)j(the)h(in)o
(teger)e(coun)o(ter.)19 b(If)13 b(the)g(coun)o(ter)37 2145 y(is)j(negativ)o
(e,)e(the)i(curren)o(t)f fg(Pro)q(cess)i fn(is)e(susp)q(ended)i(b)o(y)f(remo)
o(ving)d(it)i(from)f(the)i(pro)q(cessor)f(and)h(putting)f(it)37 2230 y(in)o
(to)c(the)g fg(Semapho)o(re)p fn('s)f fg(Pro)q(cessContainer)q fn(.)20 b(The)
11 b fg(Semapho)o(re::V\(\))f fn(op)q(eration)g(atomically)e(incremen)o(ts)i
(the)37 2314 y(in)o(teger)16 b(coun)o(ter.)22 b(If)16 b(the)g(coun)o(ter)g
(is)f(non-p)q(ositiv)o(e,)g(a)h(Pro)q(cess)g(is)f(fetc)o(hed)i(from)d(the)i fg
(Pro)q(cessContainer)q fn(,)37 2399 y(in)g(FIF)o(O)f(order,)f(and)h(put)h(in)
o(to)e(the)h(System)f(Sc)o(heduler.)108 2484 y(Figure)h(2.11)e(illustrates)h
(the)h(v)m(arious)g(states)f(of)h(a)g fg(Pro)q(cess)h fn(and)f(the)g(transiti\
ons)f(b)q(et)o(w)o(een)h(them.)952 2760 y(23)g eop bop 177 652 a
25197041 18945146 -3486433 14471987 40850472 47625994 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: -53 220 621 724
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 96.9872 523.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.403576 0 0 0.403576 286.577 236.514 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 142.5 302.7 ] concat
%I 4
138 440
138 127
177 166
177 477
4 MLine
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.403576 0 0 0.403576 286.577 489.152 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 1 0 0 1 121.212 263.36 ] concat
%I
140 151 269 228 Rect
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.403576 0 0 0.403576 486.446 236.513 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 342.369 302.7 ] concat
%I 4
138 440
138 127
177 166
177 477
4 MLine
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.403576 0 0 0.403576 486.446 489.152 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 1 0 0 1 321.081 263.36 ] concat
%I
140 151 269 228 Rect
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.403576 0 0 0.403576 86.7083 236.513 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 -57.3685 302.7 ] concat
%I 4
138 440
138 127
177 166
177 477
4 MLine
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.403576 0 0 0.403576 86.7083 489.152 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 1 0 0 1 -78.6561 263.36 ] concat
%I
140 151 269 228 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 -56.5613 302.7 ] concat
%I 4
314 440
314 127
346 165
346 477
4 MLine
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 143.308 302.7 ] concat
%I 4
314 440
314 127
346 165
346 477
4 MLine
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.807153 0 0 0.807153 343.176 302.7 ] concat
%I 4
314 440
314 127
346 165
346 477
4 MLine
%I 4
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 52.625 84.6875 ] concat
%I
10 329 164 180 Line
%I 1
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 52.625 84.6875 ] concat
%I
210 330 164 183 Line
%I 1
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 52.625 84.6875 ] concat
%I
339 329 294 182 Line
%I 1
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 52.625 84.6875 ] concat
%I
138 331 293 182 Line
%I 1
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 172.625 84.6875 ] concat
%I
289 329 45 182 Line
%I 1
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 172.625 84.6875 ] concat
%I
418 330 175 183 Line
%I 1
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.403576 0 0 0.403576 191.083 194.835 ] concat
%I
133 245 441 438 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.403576 0 0 0.403576 191.487 194.835 ] concat
%I 4
62 369
62 175
132 245
132 438
4 MLine
%I 8
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.367235 0 0 0.367235 245.778 111.392 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.403576 0 0 0.403576 191.487 194.835 ] concat
%I 4
384 367
384 175
442 245
442 438
4 MLine
%I 8
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 86 724 ] concat
%I
[
(Application)
(Domain)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 487 724 ] concat
%I
[
(Application)
(Domain)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 287 724 ] concat
%I
[
(Application)
(Domain)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 217 249 ] concat
%I
[
(Kernel)
(Domain)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 466.987 529.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 496.987 455.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 254.987 529.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 302.987 515.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 270.987 455.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 177 614 ] concat
%I
[
(A)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 351 543 ] concat
%I
[
(A)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 382 604 ] concat
%I
[
(A)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 327 655 ] concat
%I
[
(A)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 577 545 ] concat
%I
[
(A)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 547 619 ] concat
%I
[
(A)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 332 280 ] concat
%I
[
(O)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 281 288 ] concat
%I
[
(O)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 -53 606 ] concat
%I
[
(Process)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -68 134 ] concat
%I
68 465 198 465 Line
%I 1
End

Begin %I Rect
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 162 166.5 ] concat
%I
280 251 350 257 Rect
End

Begin %I Rect
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 162 166.5 ] concat
%I
188 251 255 257 Rect
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 216.987 235.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 262.987 223.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.367235 0 0 0.367235 245.778 189.685 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

End %I eop

showpage

%%Trailer

end

endTexFig
385 1950 a fi(Figure)16 b(2.10)p fn(:)k(Relationship)15 b(b)q
(et)o(w)o(een)g fg(Pro)q(cesses)i fn(and)e fg(Domains)952 2760 y fn(24)g eop
bop 173 502 a
25339131 23681433 3025960 16577003 38613893 49796792 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Bold Times-Roman
%%Pages: 1
%%BoundingBox: 46 252 587 757
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 52 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Bold reencodeISO def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 14.581 410.408 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.713935 0 0 0.713935 164.322 427.346 ] concat

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I
201 269 81 22 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 68 ] concat
%I
201 269 81 22 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.429415 -0 -0 0.429415 217.688 179.487 ] concat
%I
201 269 81 22 Elli
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
352 195 265 122 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
46 199 129 126 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
38 339 38 210 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
363 341 363 212 Line
%I 2
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.6794 0 0 0.6794 279.393 317.288 ] concat

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 206 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 214 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 222 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 230 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 238 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 246 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 254 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 262 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 270 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 278 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 286 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 294 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 302 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 310 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 318 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 326 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 334 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 342 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 350 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 358 147.5 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 361.5 150.25 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 365 153.75 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 368.5 157.25 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 372 160.75 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 375.5 164.25 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 379 167.75 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 382.5 171.25 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 386 174.75 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 389.5 178.25 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 393 181.75 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 396.5 185.25 ] concat
%I
46 93 46 67 Line
%I 2
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 198.375 81.5 ] concat
%I 6
40 241
366 241
455 327
455 300
366 216
40 217
6 Poly
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 213.625 81.5 ] concat
%I 3
11 241
99 327
426 327
3 MLine
%I 2
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.713935 0 0 0.713935 53.3215 241.346 ] concat

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I
201 269 81 22 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 68 ] concat
%I
201 269 81 22 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.429415 -0 -0 0.429415 217.688 179.487 ] concat
%I
201 269 81 22 Elli
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
352 195 265 122 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
46 199 129 126 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
38 339 38 210 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
363 341 363 212 Line
%I 2
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 212.581 246.408 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-bold-r-normal-*-14-*-*-*-*-*-*-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 58 440 ] concat
%I
[
(New)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-bold-r-normal-*-14-*-*-*-*-*-*-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 253 440 ] concat
%I
[
(Ready)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-bold-r-normal-*-14-*-*-*-*-*-*-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 465 435 ] concat
%I
[
(Running)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-bold-r-normal-*-14-*-*-*-*-*-*-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 484 269 ] concat
%I
[
(Dead)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-bold-r-normal-*-14-*-*-*-*-*-*-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 246 275 ] concat
%I
[
(Deleted)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-bold-r-normal-*-14-*-*-*-*-*-*-*
Times-Bold 14 SetF
%I t
[ 1 0 0 1 358 625 ] concat
%I
[
(Blocked)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 215 557 ] concat
%I
[
(SystemScheduler)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 323 755 ] concat
%I
[
(Semaphore)
(ProcessContainer)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.713935 0 0 0.713935 280.322 71.346 ] concat

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I
201 269 81 22 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 68 ] concat
%I
201 269 81 22 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.429415 -0 -0 0.429415 217.688 179.487 ] concat
%I
201 269 81 22 Elli
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
352 195 265 122 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
46 199 129 126 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
38 339 38 210 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
363 341 363 212 Line
%I 2
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 442 387 ] concat
%I
[
(GarbageCan)
] Text
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 31 83 ] concat
%I
66 407 170 407 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 31 83 ] concat
%I
308 407 413 407 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 92 83 ] concat
%I
403 335 403 310 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 92 83 ] concat
%I
338 241 207 241 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 92 215 ] concat
%I
245 427 197 352 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 92 215 ] concat
%I
380 338 329 419 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 92 215 ] concat
%I
348 431 398 352 Line
%I 1
End

Begin %I Line
%I b 65535
3 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 92 149 ] concat
%I
216 208 141 152 Line
%I 1
End

Begin %I Line
%I b 65535
3 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 92 149 ] concat
%I
134 208 215 154 Line
%I 1
End

Begin %I Rect
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 208 288.5 ] concat
%I
90 409 164 420 Rect
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 214.581 411.408 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Rect
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 298 288.5 ] concat
%I
361 385 431 393 Rect
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 439.581 411.408 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Rect
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 298 222.5 ] concat
%I
361 204 435 212 Rect
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 440.581 240.408 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Rect
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 298 453.5 ] concat
%I
130 453 203 462 Rect
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 324.581 596.408 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 106 509 ] concat
%I
[
(Process::ready\( \))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 336 341 ] concat
%I
[
(~Process\( \))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 509 410 ] concat
%I
[
(Process::die\( \))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 369 570 ] concat
%I
[
(Semaphore::P\( \))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 226 616 ] concat
%I
[
(Semaphore::V\( \))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-*
Times-Roman 12 SetF
%I t
[ 1 0 0 1 459 640 ] concat
%I
[
(GraciousSemaphore::V\( \))
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
580 2100 a fi(Figure)16 b(2.11)p fn(:)k fg(Pro)q(cess)c fn(Sta\
te)f(T)l(ransitions)952 2760 y(25)g eop bop 37 42 a ff(2.2.2)56 b(Pro)r(cess)
18 b(In)n(terface)196 118 y 1559 2 v 196 922 a 2 805 v 316 164 a fg(SystemPro)
q(cess)e(\(PFV)f(entryP)o(oint,)h(Domain)e fl(\003)p fg(domain,)g(StackSize)i
(stackSize,)407 221 y fi(in)o(t)e fg(a)o(rg1\))316 277 y(PreemptableSystemPro)
q(cess)i(\(PFV)f(entryP)o(oint,)g(Domain)f fl(\003)p fg(domain,)g(StackSize)
407 334 y(stackSize,)i fi(in)o(t)e fg(a)o(rg1\))316 390 y(InterruptPro)q(cess)
j(\(PFV)e(entryP)o(oint,)h(Domain)e fl(\003)p fg(domain,)g(StackSize)407 447 y
(stackSize,)i fi(in)o(t)e fg(a)o(rg1\))316 503 y(ApplicationPro)q(cess)j(\(EN\
TRYTYPE)g(entryP)o(oint,)e fi(in)o(t)g fg(a)o(rg1)f(=)h(0,)407 560 y fi(c)o
(har)g fl(\003\003)f fg(a)o(rg2)g(=)i(0,)e(StackSize)i(userStackSize)h(=)f
(no)o(rmal\))316 616 y(ApplicationPro)q(cess)h(\(PFV)e(entryP)o(oint,)h(Domai\
n)e fl(\003)p fg(domain,)g fi(in)o(t)h fg(a)o(rg1,)407 673 y fi(in)o(t)f fg
(a)o(rg2,)g(StackSize)i(userStackSize)h(=)e(no)o(rmal\))316 729 y(Application\
Pro)q(cess)i(\(PFV)e(entryP)o(oint,)h(Domain)e fl(\003)p fg(domain,)g fi(in)o
(t)h fg(a)o(rg1,)407 785 y fi(in)o(t)f fg(a)o(rg2,)g fi(c)o(har)h fl(\003)p fg
(userStackP)o(ointer\))316 842 y(P)o(erCPUIdlePro)q(cess)h(\(PFV)f(entryP)o
(oint,)h(Domain)e fl(\003)p fg(domain,)g(StackSize)407 898 y(stackSize,)i fi
(in)o(t)e fg(a)o(rg1\))1753 922 y 2 805 v 196 924 a 1559 2 v 628 1001 a fi
(Figure)j(2.12)p fn(:)j fg(Pro)q(cess)c fn(constructors)108 1140 y fg(Pro)q
(cesses)23 b fn(are)f(created)g(b)o(y)g(calling)f(the)h(appropriate)f(constru\
ctor)g(sho)o(wn)g(in)h(Figure)f(2.12.)39 b(All)37 1225 y(constructors)17 b
(require)g(the)g fg(entryP)o(oint)h fn(parameter,)e(whic)o(h)h(is)g(a)g(p)q
(oin)o(ter)f(to)h(the)g(function)g(that)g(will)f(b)q(e)37 1309 y(executed)e
(when)f(the)g fg(Pro)q(cess)g fn(runs.)20 b fg(a)o(rg1)11 b fn(and)i fg(a)o
(rg2)e fn(are)h(the)h(argumen)o(ts)e(to)h(b)q(e)h(passed)g(to)f(the)h fg(entr\
yP)o(oint)37 1394 y fn(function)i(when)h(the)f(new)g fg(Pro)q(cess)h fn(b)q
(egins)f(execution.)20 b(When)c(the)f fg(Pro)q(cess)h fn(returns)f(from)e(the)
i(function,)37 1479 y(it)j(will)e(automaticall)o(y)f(b)q(e)k(terminated.)25 b
(The)18 b fg(domain)f fn(parameter)f(sp)q(eci\014es)j(the)f fg(Domain)e fn
(that)h(should)37 1563 y(b)q(e)f(used)g(for)e(running)i(the)f fg(Pro)q(cess)p
fn(.)20 b(The)c(\014rst)e fg(ApplicationPro)q(cess)k fn(constructor,)c(whic)o
(h)h(do)q(es)g(not)g(ha)o(v)o(e)37 1648 y(a)22 b fg(domain)g fn(parameter,)g
(assumes)f(that)g(the)i(curren)o(t)f fg(Domain)f fn(will)f(b)q(e)j(used)g(for)
f(executing)g(the)g(new)37 1733 y fg(ApplicationPro)q(cess)p fn(.)28 b(The)17
b(parameters)e fg(stackSize)j fn(and)f fg(userStackSize)h fn(sp)q(ecify)g(the)
f(sizes)f(of)h(the)g(k)o(ernel)37 1818 y(and)c(user)g(stac)o(ks,)e(resp)q(ect\
iv)o(ely)l(,)i(for)f(use)g(b)o(y)h(the)f(new)h fg(Pro)q(cess)p fn(.)19 b(P)o
(ossible)12 b(v)m(alues)g(for)g(the)h(parameters)d(are:)37 1902 y fg(none)i fn
(\(0)f(b)o(ytes\),)g fg(tiny)h fn(\(512)e(b)o(ytes\),)h fg(small)f fn(\(1024)
g(b)o(ytes\),)h fg(no)o(rmal)e fn(\(2048)h(b)o(ytes\),)h fg(application)h fn
(\(4096)d(b)o(ytes\),)37 1987 y fg(la)o(rge)18 b fn(\(4096)f(b)o(ytes\),)i fg
(huge)h fn(\(16384)d(b)o(ytes\))h(and)h fg(gigantic)f fn(\(32768)f(b)o(ytes\)\
.)1370 1970 y fr(10)1438 1987 y fn(Eac)o(h)h fg(ApplicationPro)q(cess)37 2072
y fn(has)e(a)e(k)o(ernel)h(stac)o(k)g(of)g(4096)f(b)o(ytes.)108 2156 y(The)22
b(third)f fg(ApplicationPro)q(cess)j fn(constructor)d(is)g(di\013eren)o(t)g
(from)f(the)h(other)h(t)o(w)o(o)e(in)h(that)g(it)g(do)q(es)37 2241 y(not)e
(create)g(a)g(user)h(stac)o(k)e(for)h(the)g(new)h fg(Pro)q(cess)p fn(.)32 b
(Instead,)21 b(it)d(uses)i(the)f(memory)e(region)h(p)q(oin)o(ted)i(b)o(y)37
2326 y fg(userStackP)o(ointer)d fn(as)e(the)g(user)h(stac)o(k.)108 2410 y(App\
lication)e(programs)e(are)i(not)g(p)q(ermitted)g(to)g(create)g(an)o(y)g(t)o
(yp)q(e)h(of)f fg(Pro)q(cesses)i fn(except)f fg(Application-)37 2495 y(Pro)q
(cesses)p fn(.)27 b(Only)17 b(the)g(\014rst)f(t)o(w)o(o)g fg(ApplicationPro)q
(cess)j fn(constructors)d(are)h(exp)q(orted)g(to)f(application)g(pro-)37 2567
y 750 2 v 74 2594 a fs(10)107 2610 y fp(The)d(stac)o(k)g(sizes)g(are)g(de\014\
ned)h(in)f fa(Includes/StackSize.h)f fp(and)i fa(Pro)q(cesso)o(rDep)q(endent/\
i386/i386Context.cc)p fp(.)952 2760 y fn(26)g eop bop 37 42 a fn(grams.)18 b
(The)13 b(\014rst)g(constructor)f(is)h(t)o(ypically)e(used)j(b)o(y)f(an)g(app\
lication)f(program)f(to)i(create)g(a)f(ligh)o(t)o(w)o(eigh)o(t)37 126 y fg
(Pro)q(cess)p fn(,)17 b(while)e(the)g(second)i(constructor)d(is)i(used)g(b)o
(y)f(the)h(application)e(dispatc)o(her)h(library)g(to)g(dispatc)o(h)37 211 y
(hea)o(vyw)o(eigh)o(t)f fg(Pro)q(cesses)p fn(.)108 296 y(None)g(of)f(the)h fg
(Pro)q(cess)h fn(constructors)e(add)h(the)g(newly-created)f fg(Pro)q(cess)i fn
(to)e(the)h(System)f(Sc)o(heduler)h(|)37 380 y(the)j(programmer)c(should)j
(do)g(so)g(explicitly)l(.)22 b(This)16 b(is)g(done)g(b)o(y)h(calling)e fg(Pro)
q(cess::ready\(\))p fn(.)22 b(The)17 b(Pro)q(cess)37 465 y(will)h(b)q(e)h(add\
ed)g(to)f(the)g(System)f(Sc)o(heduler)i(and)g(will)e(b)q(e)i(executed)h(at)d
(a)h(time)f(as)h(determined)g(b)o(y)g(the)37 550 y(sc)o(heduling)23 b(p)q(oli\
cy)l(.)40 b(When)22 b(a)g fg(Pro)q(cess)h fn(is)e(running,)j(the)e fg(Pro)q
(cess)h fn(ma)o(y)d(terminate)g(itself)h(b)o(y)h(calling)37 634 y fg(Pro)q
(cess::die\(\))p fn(.)108 719 y(The)11 b(utilit)o(y)f(function)h fg(thisPro)q
(cess\(\))h fn(returns)f(a)g(p)q(oin)o(ter)f(to)h(the)g fg(Pro)q(cess)h fn
(that)e(is)h(curren)o(tly)f(running.)1875 702 y fr(11)37 804 y fg(Pro)q(cess:\
:domain\(\))18 b fn(is)g(used)h(to)f(return)g(a)g(p)q(oin)o(ter)g(to)g(the)g
fg(Domain)g fn(in)g(whic)o(h)g(the)h fg(Pro)q(cess)g fn(is)f(running.)37 888 y
fg(Pro)q(cess::relinquishPro)q(cesso)o(r\(\))k fn(ma)o(y)d(b)q(e)i(called)f
(to)f(giv)o(e)h(up)h(the)g(pro)q(cessor)f(v)o(olun)o(tarily)e(to)i(the)g(next)
37 973 y(Pro)q(cess)15 b(w)o(aiting)d(in)j(the)f(System)g(Sc)o(heduler.)20 b
(The)15 b fg(Pro)q(cess)g fn(that)f(called)g fg(Pro)q(cess::relinquishPro)q
(cesso)o(r\(\))37 1058 y fn(is)h(put)h(bac)o(k)f(in)o(to)f(the)h(System)f(Sc)
o(heduler.)108 1142 y(The)d(function)g fg(createAndRunPro)q(ces)q(s\(\))j fn
(in)d(Figure)f(2.13)g(sho)o(ws)g(ho)o(w)h(a)g(k)o(ernel)g(programmer)d(ma)o
(y)h(cre-)37 1227 y(ate)14 b(a)g fg(PreemptableSystemPro)q(cess)i fn(that)e
(displa)o(ys)f(a)h(message)f(on)h(the)g(console)g(and)g(terminates)f(itself.)
1877 1211 y fr(12)37 1312 y fn(Note)j(that)g(the)g(program)e(will)h(w)o(ork)h
(correctly)f(ev)o(en)i(when)g(the)f(call)f(to)h fg(Pro)q(cess::die\(\))g fn
(is)g(omitted;)e(the)37 1396 y(new)i fg(Pro)q(cess)g fn(will)e(terminate)f
(prop)q(erly)i(when)h(it)e(exits)h fg(p)o(rintMessageAndDie\(\))p fn(.)108
1481 y fg(Semapho)o(res)k fn(are)f(created)h(b)o(y)g(calling)f(the)h fg(Semap\
ho)o(re)f fn(constructor,)h(passing)f(the)h(initial)e(v)m(alue)i(of)37 1566 y
(the)c fg(Semapho)o(re)p fn('s)e(coun)o(ter)h(as)g(the)g(argumen)o(t.)k(Figur\
e)13 b(2.14)g(sho)o(ws)h(ho)o(w)f(one)i(ma)o(y)d(use)j(a)e fg(Semapho)o(re)h
fn(for)37 1650 y(m)o(utual)g(exclusion.)19 b(In)d(that)f(co)q(de,)g(the)g(sta\
temen)o(t)219 1764 y fg(mutex)h(=)f fi(new)g fg(Semapho)o(re)g(\(1\);)37 1878
y fn(ma)o(y)f(b)q(e)i(replaced)f(b)o(y)219 1992 y fg(mutex)h(=)f fi(new)g fg
(MutexSemapho)o(re;)108 2106 y fn(without)d(a\013ecting)g(the)h(seman)o(tics)
e(of)i(the)g(program.)k fg(MutexSemapho)o(re)c fn(is)g(a)f(sub)q(class)h(of)g
fg(Semapho)o(re)37 2191 y fn(whose)j(in)o(ternal)e(coun)o(ter)h(is)f(initiall\
y)f(set)i(to)g(one.)108 2275 y fg(GraciousSemapho)o(re)c fn(is)f(a)g(sub)q
(class)h(of)f fg(Semapho)o(re)g fn(that)g(represen)o(ts)h(a)f(t)o(yp)q(e)h
(of)f fg(Semapho)o(re)g fn(with)g(a)h(sp)q(e-)37 2360 y(cial)h(prop)q(ert)o
(y)f(|)i(when)f fg(Pro)q(cess)h fn(A)f(is)f(un)o(blo)q(c)o(k)o(ed)i(as)e(a)h
(result)f(of)h fg(Pro)q(cess)h fn(B)f(calling)e fg(GraciousSemapho)o(re-)37
2445 y(::V\(\))p fn(,)16 b fg(Pro)q(cess)h fn(A)g(is)f(resumed)g(immediately)
d(while)j fg(Pro)q(cess)i fn(B)e(is)g(put)h(in)o(to)f(the)g(System)g(Sc)o(hed\
uler)h(for)37 2522 y 750 2 v 74 2548 a fs(11)107 2564 y fa(thisPro)q(cess\(\))
11 b fp(is)i(de\014ned)h(in)f fa(Includes/ThisPro)q(cess.h)e fp(and)j fa(Incl\
udes/Lib)o(ra)o(ries/SystemInterface/ThisPro)q(cess.h)p fp(.)74 2594 y fs(12)
107 2610 y fa(Console\(\))e fp(is)h(declared)g(in)g fa(Includes/Common/Output\
Stream.h)p fp(.)952 2760 y fn(27)g eop bop 196 606 a 1559 2 v 196 1918 a 2
1313 v 316 652 a fi(v)o(oid)14 b fg(p)o(rintMessageAndDie)j(\()p fi(in)o(t)e
fg(input\))316 709 y fl(f)407 765 y fk(//)46 b(This)22 b(function)g(prints)g
(its)h(p)n(ar)n(ameter)g(and)g(terminates)f(the)407 822 y(//)46 b(curr)n(ent)
22 b(Pr)n(o)n(c)n(ess.)407 878 y fg(Console)15 b(\(\))g fl(\034)h fh("My)23 b
(input)g(is)h(")15 b fl(\034)g fg(input)i fl(\034)f fh(")p fl(n)p fh(n")e fl
(\034)i fg(eo)o(r;)407 935 y(thisPro)q(cess)h(\(\))d fl(!)i fg(die)g(\(\);)
316 991 y fl(g)316 1104 y fi(v)o(oid)e fg(createAndRunPro)q(cess)19 b(\(\))
316 1160 y fl(f)407 1217 y fk(//)46 b(Cr)n(e)n(ate)22 b(a)h(Pr)n(o)n(c)n(ess)
e(that)i(wil)r(l)f(run)h(the)g(function)407 1273 y(//)46 b(printMessageA)o
(ndDie\(\))20 b(with)j(ar)n(gument)g(22.)46 b(The)22 b(new)h(pr)n(o)n(c)n(ess)
407 1330 y(//)46 b(wil)r(l)22 b(run)h(in)f(the)h(same)g(Domain)g(\(i.e.)f(the)
h(kernel)f(Domain\))h(as)407 1386 y(//)46 b(the)23 b(curr)n(ent)f(Pr)n(o)n
(c)n(ess.)407 1443 y fg(Pro)q(cessSta)o(r)16 b(p)o(ro)q(cess)g(=)f fi(new)g fg
(PreemptableSystemPro)q(cess)498 1499 y(\(\(PFV\))f(p)o(rintMessageAndDie,)j
(thisPro)q(cess)g(\(\))e fl(!)g fg(domain)g(\(\),)589 1556 y(no)o(rmal,)e(22\
\);)407 1612 y fk(//)46 b(A)n(dd)22 b(the)h(new)g(Pr)n(o)n(c)n(ess)e(to)i(the)
g(SystemSche)n(duler.)407 1669 y fg(p)o(ro)q(cess)16 b fl(!)g fg(ready)f(\(\)\
;)407 1725 y fk(//)46 b(After)22 b(a)h(while,)g(the)g(new)f(Pr)n(o)n(c)n(ess)
f(wil)r(l)i(run)g(and)f(print)h(the)407 1781 y(//)46 b(numb)n(er)22 b(22,)h
(the)g(ar)n(gument)g(for)g(the)g(printMessageA)o(ndDie\(\))407 1838 y(//)46 b
(function.)316 1894 y fl(g)1753 1918 y 2 1313 v 196 1920 a 1559 2 v 329 1997 a
fi(Figure)17 b(2.13)p fn(:)j(Creating)14 b(and)h(running)g(a)g fg(Preemptable\
SystemPro)q(cess)952 2760 y fn(28)g eop bop 196 267 a 1559 2 v 196 2257 a 2
1990 v 316 314 a fk(//)46 b(Assume)22 b(that)h(the)g(R)n(esour)n(c)n(e)f(clas\
s)g(r)n(epr)n(esents)f(a)i(typ)n(e)g(of)g(r)n(esour)n(c)n(e)316 370 y(//)46 b
(that)23 b(c)n(an)f(b)n(e)h(use)n(d)f(by)h(at)g(most)g(one)f(user)h(at)g(any)
g(time.)45 b(Users)316 427 y(//)h(must)23 b(c)n(al)r(l)f(R)n(esour)n(c)n(e::a\
c)n(quir)n(e\(\))f(to)i(r)n(e)n(quest)f(the)h(r)n(esour)n(c)n(e,)f(and)316 483
y(//)46 b(c)n(al)r(l)22 b(R)n(esour)n(c)n(e::r)n(ele)n(ase\(\))e(when)i(they)
h(have)g(\014nishe)n(d)f(using)g(the)316 539 y(//)46 b(r)n(esour)n(c)n(e.)316
652 y fg(Resource)16 b(::)k(Resource)c(\(\))316 709 y fl(f)407 765 y fk(//)46
b(Cr)n(e)n(ate)22 b(a)h(Semaphor)n(e)g(for)g(exclusive)f(ac)n(c)n(ess)f(to)i
(the)g(r)n(esour)n(c)n(e.)407 822 y(//)46 b(mutex)23 b(is)f(a)h(memb)n(er)g
(variable)g(of)g(class)e(R)n(esour)n(c)n(e.)45 b(The)22 b(initial)407 878 y
(//)46 b(value)23 b(of)f(the)h(c)n(ounter)g(is)f(1,)h(me)n(aning)f(that)h(the)
g(r)n(esour)n(c)n(e)f(is)407 935 y(//)46 b(available)22 b(only)g(to)h(one)g
(user.)407 991 y fg(mutex)15 b(=)h fi(new)f fg(Semapho)o(re)f(\(1\);)316 1048
y fl(g)316 1160 y fi(v)o(oid)g fg(Resource)i(::)k(acquire)15 b(\(\))316 1217 y
fl(f)407 1273 y fk(//)46 b(The)22 b(ac)n(quir)n(e\(\))g(metho)n(d)h(wil)r(l)g
(gr)n(ant)f(us)h(exclusive)f(ac)n(c)n(ess)f(to)407 1330 y(//)46 b(the)23 b
(r)n(esour)n(c)n(e)f(and)g(r)n(eturn)h(imme)n(diately,)g(if)f(no)h(one)f(is)
407 1386 y(//)46 b(curr)n(ently)22 b(using)g(the)h(r)n(esour)n(c)n(e.)45 b
(Otherwise,)22 b(the)h(Semaphor)n(e)407 1443 y(//)46 b(wil)r(l)22 b(blo)n(ck)
g(us)h(until)f(the)h(r)n(esour)n(c)n(e)f(is)g(r)n(ele)n(ase)n(d)g(and)g(hande)
n(d)407 1499 y(//)46 b(over)23 b(to)g(us)f(for)i(exclusive)d(ac)n(c)n(ess.)
407 1556 y fg(mutex)15 b fl(!)h fg(P)f(\(\);)316 1612 y fl(g)316 1725 y fi
(v)o(oid)f fg(Resource)i(::)k(release)15 b(\(\))316 1781 y fl(f)407 1838 y fk
(//)46 b(The)22 b(r)n(ele)n(ase\(\))f(metho)n(d)i(gives)f(the)h(r)n(esour)n
(c)n(e,)f(to)h(which)g(we)407 1894 y(//)46 b(have)23 b(exclusive)f(ac)n(c)n
(ess,)f(to)i(another)g(Pr)n(o)n(c)n(ess)e(that)i(is)407 1951 y(//)46 b(curr)n
(ently)22 b(blo)n(cke)n(d)g(in)g(ac)n(quir)n(e\(\).)44 b(If)23 b(no)f(Pr)n
(o)n(c)n(esses)407 2007 y(//)46 b(ar)n(e)22 b(blo)n(cke)n(d)g(in)g(ac)n(quir)
n(e\(\),)g(the)h(r)n(esour)n(c)n(e)f(wil)r(l)h(b)n(e)f(gr)n(ante)n(d)g(to)407
2064 y(//)46 b(the)23 b(next)f(Pr)n(o)n(c)n(ess)f(that)i(c)n(al)r(ls)f(ac)n
(quir)n(e\(\).)45 b(The)22 b(r)n(ele)n(ase\(\))407 2120 y(//)46 b(metho)n(d)
23 b(never)f(blo)n(cks.)407 2177 y fg(mutex)15 b fl(!)h fg(V)f(\(\);)316 2233
y fl(g)1753 2257 y 2 1990 v 196 2259 a 1559 2 v 432 2336 a fi(Figure)i(2.14)p
fn(:)j(Using)14 b(a)h fg(Semapho)o(re)g fn(for)g(m)o(utual)e(exclusion)952
2760 y(29)g eop bop 37 42 a fn(later)13 b(execution.)20 b(This)14 b(is)f(di\
\013eren)o(t)g(from)g(the)h(seman)o(tics)e(of)h(regular)g fg(Semapho)o(res)p
fn(,)h(whic)o(h)g(dictates)f(that)37 126 y(up)q(on)21 b(un)o(blo)q(c)o(king,)
f fg(Pro)q(cess)g fn(A)f(should)h(b)q(e)g(put)g(in)o(to)e(the)i(System)e(Sc)o
(heduler)j(and)e fg(Pro)q(cess)i fn(B)e(should)37 211 y(con)o(tin)o(ue)c(to)g
(run.)108 296 y(T)l(o)f(w)o(ait)f(for)h(a)g fg(Pro)q(cess)h fn(to)f(\014nish)
h(terminate,)d fg(Pro)q(cess::notifyUp)q(onCompletion\(\))k fn(ma)o(y)c(b)q
(e)j(called)g(b)o(y)37 380 y(the)i(k)o(ernel)g(or)f(application)f(programmer.)
22 b(Supp)q(ose)c(it)e(is)g(desired)h(for)f fg(Pro)q(cess)h fn(A)g(to)f(w)o
(ait)g(for)g fg(Pro)q(cess)37 465 y fn(B)21 b(to)e(terminate.)33 b fg(Pro)q
(cess)21 b fn(A)f(ma)o(y)f(in)o(v)o(ok)o(e)g(the)h fg(notifyUp)q(onCompletion\
\(\))h fn(metho)q(d)e(on)h(B,)g(passing)g(a)37 550 y fg(Semapho)o(re)j fn(as)
f(the)g(argumen)o(t.)40 b(When)23 b(B)g(terminates,)f(it)g(will)f(in)o(v)o
(ok)o(e)g(the)i fg(V\(\))f fn(op)q(eration)g(on)g(the)37 634 y fg(Semapho)o
(re)p fn(.)e(Therefore)14 b(in)h(order)f(to)g(w)o(ait)f(for)h(B,)h fg(Pro)q
(cess)g fn(A)g(should)g(in)o(v)o(ok)o(e)e(the)i fg(P\(\))f fn(op)q(eration)g
(on)g(the)37 719 y fg(Semapho)o(re)p fn(,)h(pro)o(vided)g(that)f(the)i fg(Sem\
apho)o(re)e fn(has)h(an)h(initial)d(coun)o(t)i(of)g(0.)37 870 y ff(2.2.3)56 b
(Pro)r(cess)18 b(Implemen)n(tation)37 984 y fi(2.2.3.1)52 b(Pro)q(cess)17 b
(Sc)o(heduling)37 1098 y fn(Ev)o(ery)g fg(Pro)q(cess)h fn(holds)e(a)h(p)q(oin)
o(ter)f(to)h(a)f fg(Pro)q(cessContainer)j fn(and)e(calling)f fg(ready\(\))g fn
(on)h(a)g(new)g fg(Pro)q(cess)h fn(will)37 1183 y(cause)k(the)f fg(Pro)q(cess)
h fn(to)f(b)q(e)g(added)h(to)f(the)g fg(Pro)q(cessContainer)q fn(.)1169 1166 y
fr(13)1245 1183 y fn(Normally)l(,)f fg(Pro)q(cesses)i fn(p)q(oin)o(t)f(to)f
(the)37 1267 y(System)f(Sc)o(heduler)h(so)e(that)h(calling)f fg(ready\(\))g fn
(on)h(a)g(new)h(Pro)q(cess)f(will)f(e\013ectiv)o(ely)g(mak)o(e)g(it)g(ready)h
(for)37 1352 y(execution.)108 1437 y(The)13 b(System)f(Sc)o(heduler)i(is)e
(an)h(instance)g(of)f(the)h(class)g fg(SystemScheduler)q fn(.)20 b(A)13 b fg
(SystemScheduler)j fn(main-)37 1521 y(tains)e(t)o(w)o(o)e(other)i fg(Pro)q
(cessContainers)p fn(,)i(one)e(for)g(holding)f(non-preemptable)h fg(Pro)q(ces\
ses)h fn(and)f(the)g(other)g(for)37 1606 y(holding)j(preemptable)e fg(Pro)q
(cesses)p fn(.)26 b(Whenev)o(er)17 b(the)g fg(SystemScheduler)i fn(is)d(ask)o
(ed)h(to)f(sc)o(hedule)h(a)g(Pro)q(cess)37 1691 y(for)i(execution)f(\(through)
g(the)h fg(SystemScheduler::remove\(\))f fn(metho)q(d\),)g(the)h(sc)o(heduler)
g(pic)o(ks)f(a)h fg(Pro)q(cess)37 1775 y fn(from)c(the)g(non-preemptable)h fg
(Pro)q(cessContainer)i fn(\014rst,)d(using)g(the)h(preemptable)f fg(Pro)q(ces\
sContainer)j fn(only)37 1860 y(when)d(the)g(non-preemptable)e(one)i(is)f(empt)
o(y)l(.)k(With)13 b(this)h(algorithm,)d(non-preemptable)j fg(Pro)q(cesses)i fn
(\(e.g.)37 1945 y fg(SystemPro)q(cesses)p fn(\))k(are)d(guaran)o(teed)g(to)g
(run)h(at)f(a)h(higher)f(priorit)o(y)f(than)i(preemptable)f fg(Pro)q(cesses)i
fn(\(e.g.)37 2029 y fg(ApplicationPro)q(cesses)p fn(\).)108 2114 y(The)e fg
(Pro)q(cessContainer)i fn(for)d(holding)h(the)g(non-preemptable)f fg(Pro)q
(cesses)i fn(in)f(a)g fg(SystemScheduler)i fn(is)e(a)37 2199 y fg(FIF)o(OSche\
duler)q fn(.)329 2182 y fr(14)400 2199 y fn(This)h(means)h(that)f(non-preempt\
able)h fg(Pro)q(cesses)h fn(are)f(alw)o(a)o(ys)f(sc)o(heduled)i(in)f(FIF)o
(O)37 2283 y(order.)h(The)14 b fg(Pro)q(cessContainer)i fn(for)e(holding)f
(preemptable)h fg(Pro)q(cesses)h fn(is)f(selectable)g(during)g(k)o(ernel)g
(com-)37 2368 y(pilation.)34 b(In)20 b(PC-Choices,)h(this)f fg(Pro)q(cessCont\
ainer)i fn(is)d(a)h(m)o(ultilev)o(el)d(\(\014v)o(e-lev)o(el\))j(feedbac)o(k)g
(sc)o(heduler)37 2452 y 750 2 v 74 2479 a fs(13)107 2494 y fp(The)14 b(mem)o
(b)q(er)f(v)n(ariable)h fa(Pro)q(cess::)r 12 2 v 11 w(readyContainer)h fp(p)q
(oin)o(ts)f(to)h(the)f fa(Pro)q(cessContainer)q fp(.)21 b(The)14 b(presen)o
(t)h(implemen)o(tation)37 2540 y(con)o(tains)f(a)f(bug)h(|)f(a)g fa(Pro)q(ces\
s)f fp(will)g(b)q(e)h(added)h(t)o(wice)e(to)h(a)g fa(Pro)q(cessContainer)g fp
(if)f fa(ready\(\))h fp(is)g(called)g(t)o(wice.)74 2570 y fs(14)107 2586 y fp
(The)g fa(FIF)o(OScheduler)g fp(is)g(created)g(in)g(the)g fa(SystemScheduler)
g fp(constructor.)952 2760 y fn(30)g eop bop 37 42 a fn(\()p fg(MLFSchedulerU\
SS)p fn(\))19 b(with)e(a)h(quan)o(tum)e(of)i(0.1)f(seconds.)1079 25 y fr(15)
1144 42 y fn(The)h(m)o(ultilev)o(el)d(feedbac)o(k)j(sc)o(heduler)g(w)o(as)37
126 y(emplo)o(y)o(ed)c(b)q(ecause)i(it)f(o\013ers)f(b)q(etter)h(resp)q(onse)h
(for)f(in)o(teractiv)o(e)e(applications.)108 211 y(A)24 b(single)f(instance)h
(of)g(the)g(FIF)o(O)g(sc)o(heduler)g(\()p fg(Semapho)o(reRegulatedFIF)o(OSche\
duler)q fn(\))i(called)d(the)37 296 y(Garbage)16 b(Can)f(holds)h fg(Pro)q(ces\
ses)h fn(that)e(ha)o(v)o(e)h(requested)g(to)g(b)q(e)g(terminated)f(\(through)
g fg(Pro)q(cess::die\(\))p fn(\).)1876 279 y fr(16)37 380 y fn(These)i fg(Pro)
q(cesses)g fn(p)q(oin)o(t)f(to)f(the)h(Garbage)f(Can)h(instead)g(of)f(the)h
(System)f(Sc)o(heduler.)23 b(The)16 b(W)l(aste)g(Man-)37 465 y(agemen)o(t)e fg
(Pro)q(cess)i fn(fetc)o(hes)f fg(Pro)q(cesses)i fn(from)c(the)j(Garbage)e(Can)
h(and)g(destro)o(ys)g(them.)1568 448 y fr(17)37 613 y fi(2.2.3.2)52 b(Pro)q
(cessor)16 b(Con)o(text)37 727 y fn(Eac)o(h)22 b fg(Pro)q(cess)h fn(is)e(asso)
q(ciated)g(with)g(a)g fg(Pro)q(cesso)o(rContext)p fn(.)1094 711 y fr(18)1172
727 y fn(A)h fg(Pro)q(cesso)o(rContext)h fn(encapsulates)e(the)37 812 y(state)
14 b(of)f(the)h(pro)q(cessor)g(\(e.g.)19 b(v)m(alues)14 b(of)f(the)h(pro)q
(cessor)g(registers\))f(that)g(w)o(as)g(sa)o(v)o(ed)g(when)i(susp)q(ending)g
(a)37 897 y fg(Pro)q(cess)h fn(from)d(execution.)20 b(A)14 b fg(Pro)q(cesso)o
(rContext)i fn(pro)o(vides)e(pro)q(cessor-dep)q(enden)o(t)j(metho)q(ds)c(to)h
(sa)o(v)o(e)g(the)37 981 y(pro)q(cessor)k(state)e(and)h(to)g(restore)g(the)g
(pro)q(cessor)g(state)f(from)g(a)h fg(Pro)q(cesso)o(rContext)p fn(.)27 b fg
(Pro)q(cesso)o(rContexts)37 1066 y fn(are)12 b(mainly)e(used)j(to)e(implemen)
o(t)e(the)j(switc)o(hing)f(of)g(Pro)q(cesses)h(on)g(the)g(pro)q(cessor,)g(whi\
c)o(h)g(in)o(v)o(olv)o(es)f(sa)o(ving)37 1151 y(a)k(running)f fg(Pro)q(cess)p
fn(')h(state)f(and)g(restoring)f(a)h(susp)q(ended)j fg(Pro)q(cess)p fn(')d
(state.)19 b(A)c fg(Pro)q(cesso)o(rContext)g fn(ma)o(y)e(not)37 1235 y(necess\
arily)j(con)o(tain)f(a)g(complete)g(snapshot)g(of)h(a)f fg(Pro)q(cess)i fn
(state)e(|)h(for)f(example,)g(the)h(complete)e(set)i(of)37 1320 y(pro)q(cesso\
r)h(registers)f(need)i(not)e(b)q(e)i(sa)o(v)o(ed)e(in)o(to)g(a)h fg(Pro)q(ces\
so)o(rContext)h fn(if)e(the)h(compiler)e(or)i(pro)q(cessor)g(has)37 1405 y
(already)e(sa)o(v)o(ed)g(some)f(registers)g(on)h(the)g(stac)o(k.)108 1489 y fg
(Pro)q(cesso)o(rContext)g fn(is)f(an)g(abstract)g(base)g(class.)19 b(In)c(PC-\
Choices,)f(the)g(concrete)h(sub)q(classes)f(are)g fg(i386-)37 1574 y(SystemCo\
ntext)p fn(,)j fg(i386UninterruptibleSystemContext)h fn(and)d fg(i386Applicat\
ionContext)p fn(,)i(all)d(of)g(them)g(b)q(eing)37 1659 y(sub)q(classes)23 b
(of)g fg(i386GenericContext)p fn(.)43 b(The)23 b fg(i386GenericContext)g fn
(stores)f(the)h(v)m(alues)g(of)f(the)h(program)37 1743 y(coun)o(ter)e(and)g
(four)g(registers)f(that)g(are)h(not)f(sa)o(v)o(ed)h(b)o(y)g(the)g(compiler.)
35 b(Besides)21 b(these)g(registers,)g(the)37 1828 y(ob)s(ject)h(stores)f(the)
i(addresses)f(of)g(the)g(k)o(ernel)g(and)g(user)g(stac)o(ks.)40 b(No)22 b(add\
itional)f(data)g(is)h(stored)g(in)37 1913 y(the)11 b(sub)q(classes)g(of)f fg
(i386GenericContext)p fn(.)19 b fg(i386SystemContexts)12 b fn(and)f fg(i386Un\
interruptibleSystemContexts)37 1997 y fn(capture)22 b(the)f(states)g(of)g(in)
o(terruptible)f(and)h(unin)o(terruptible)g fg(Pro)q(cesses)i fn(that)e(execut\
e)h(at)e(the)i(k)o(ernel)37 2082 y(privilege)14 b(lev)o(el.)19 b fg(i386Appli\
cationContexts)d fn(are)e(for)g fg(Pro)q(cesses)i fn(that)d(execute)i(at)f
(the)g(user)h(privilege)e(lev)o(el)37 2167 y(\(i.e.)19 b fg(ApplicationPro)q
(cesses)p fn(\).)37 2250 y 750 2 v 74 2277 a fs(15)107 2293 y fp(The)13 b(m)o
(ultilev)o(el)e(feedbac)o(k)i(sc)o(heduler)h(is)f(created)g(in)g fa(PCKernel:\
:initialize\(\))p fp(.)74 2323 y fs(16)107 2339 y fp(The)g(Garbage)h(Can)f
(is)f(created)i(in)e fa(PCKernel::initialize\(\))p fp(.)74 2369 y fs(17)107
2385 y fp(The)j(W)m(aste)h(Managemen)o(t)g fa(Pro)q(cess)f fp(is)g(created)h
(in)f fa(Kernel::initializeDevicesAndManagers\(\))g fp(and)h(runs)g(the)g(fun\
ction)37 2430 y fa(Kernel::w)o(asteManagementPro)q(cessEntry\(\))p fp(.)74
2460 y fs(18)107 2476 y fp(The)d(mem)o(b)q(er)e(v)n(ariable)i fa(Pro)q(cess::)
r 12 2 v 11 w(context)f fp(p)q(oin)o(ts)h(to)g(the)g fa(Pro)q(cesso)o(rContex\
t)p fp(.)952 2760 y fn(31)g eop bop 37 42 a fi(2.2.3.3)52 b(Switc)o(hing)16 b
(Pro)q(cessor)h(Con)o(texts)37 156 y fg(Pro)q(cess::givePro)q(cesso)o(rT)l
(o\(\))22 b fn(is)g(the)h(metho)q(d)f(that)g(in)o(v)o(ok)o(es)g(pro)q(cessor-\
indep)q(enden)o(t)i(and)f(pro)q(cessor-)37 240 y(dep)q(enden)o(t)14 b(metho)q
(ds)d(to)g(switc)o(h)g(the)h fg(Pro)q(cess)g fn(curren)o(tly)g(running)f(b)o
(y)h(the)g(pro)q(cessor)g(to)f(another)g fg(Pro)q(cess)p fn(.)37 325 y(The)17
b(caller)e(of)h(the)g(metho)q(d)g(is)f(the)i fg(Pro)q(cess)g fn(that)e(should)
h(b)q(e)h(switc)o(hed)f(out)g(of)g(the)g(pro)q(cessor,)g(and)g(the)37 410 y
(parameter)e(of)h(the)g(metho)q(d)f(sp)q(eci\014es)i(the)g fg(Pro)q(cess)g fn
(to)e(b)q(e)i(executed)g(next.)k(This)15 b(metho)q(d)f(is)h(called)g(b)o(y:)
106 542 y fl(\017)22 b fg(Pro)q(cess::die\(\))p fn(,)15 b(to)f(execute)i(the)
g(next)f fg(Pro)q(cess)h fn(in)f(the)g(System)f(Sc)o(heduler)106 664 y fl(\
\017)22 b fg(Pro)q(cess::relinquishPro)q(cess\(\))p fn(,)17 b(called)e(b)o
(y)g(a)g fg(Pro)q(cess)h fn(that)e(wishes)h(to)g(giv)o(e)f(up)i(the)f(pro)q
(cessor)106 785 y fl(\017)22 b fg(Pro)q(cess::blo)q(ck\(\))p fn(,)15 b(called)
g(b)o(y)g fg(Semapho)o(re::P\(\))e fn(when)j(a)f fg(Pro)q(cess)h fn(should)f
(b)q(e)h(susp)q(ended)106 907 y fl(\017)22 b fg(GraciousSemapho)o(re::V\(\))p
fn(,)14 b(in)h(order)g(to)f(switc)o(h)h(to)f(the)i(un)o(blo)q(c)o(k)o(ed)f fg
(Pro)q(cess)h fn(immediately)106 1029 y fl(\017)22 b fg(CPU::idleLo)q(op\(\))
p fn(,)e(when)h(the)g fg(P)o(erCPUIdlePro)q(cess)g fn(wishes)f(to)f(hand)i
(the)f(pro)q(cessor)g(to)g(another)151 1113 y fg(Pro)q(cess)c fn(that)f(is)f
(ready)h(for)g(execution)106 1235 y fl(\017)22 b fg(TimeSliceException::basic\
Raise\(\))p fn(,)c(called)e(when)h(the)g(timeslice)d(for)i(a)h fg(Pro)q(cess)
g fn(has)f(expired)h(and)151 1319 y(the)e(pro)q(cessor)g(should)h(b)q(e)f(giv)
o(en)g(to)g(another)g fg(Pro)q(cess)108 1452 y fn(The)20 b(follo)o(wing)e(alg\
orithm)e(p)q(oin)o(ts)k(out)f(the)h(imp)q(ortan)o(t)d(steps)j(in)g(the)g fg
(Pro)q(cess::givePro)q(cesso)o(rT)l(o\(\))37 1537 y fn(metho)q(d.)g(Assume)14
b(that)h fg(Pro)q(cess)g fn(A)h(is)e(giving)h(the)g(pro)q(cessor)g(to)f fg
(Pro)q(cess)i fn(B.)93 1670 y(1.)22 b(It)14 b(calls)e fg(A)p fl(!)p fg(save\(\
\))p fn(,)i(whic)o(h)g(in)o(v)o(ok)o(es)e fg(ApplicationPro)q(cess::save\(\))
p fn(,)j(if)e(A)g(is)g(an)h(ApplicationPro)q(cess,)151 1754 y(or)19 b fg(Pro)
q(cess::save\(\))f fn(otherwise.)31 b fg(ApplicationPro)q(cess::save\(\))20 b
fn(writes)e(the)h(remaining)e(time)g(in)i(its)151 1839 y(timeslice)8 b(in)o
(to)h(a)h(mem)o(b)q(er)f(v)m(ariable.)17 b(This)10 b(residual)f(time)g(will)g
(b)q(e)i(used)f(b)o(y)g(the)h(m)o(ultilev)o(el)c(feedbac)o(k)151 1924 y(sc)o
(heduler)15 b(to)f(determine)f(the)i(priorit)o(y)d(of)j(this)e fg(Pro)q(cess)
j fn(|)e(higher)h(residual)f(times)e(corresp)q(ond)j(to)151 2008 y(higher)g
(priorit)o(y)f(lev)o(els.)19 b fg(Pro)q(cess::save\(\))c fn(is)f(an)i(empt)o
(y)d(metho)q(d.)93 2130 y(2.)22 b(The)16 b fg(checkp)q(oint\(\))i fn(metho)q
(d)d(is)h(in)o(v)o(ok)o(ed)f(on)h(A's)f fg(Pro)q(cesso)o(rContext)p fn(.)24 b
(In)16 b(PC-Choices,)g(this)f(trans-)151 2215 y(lates)10 b(to)h(an)f(in)o(v)o
(o)q(cation)g(of)g fg(i386GenericContext::checkp)q(oint\(\))k fn(or)c fg(i386\
ApplicationContext::check-)151 2299 y(p)q(oint\(\))p fn(,)16 b(whic)o(h)f(are)
f(pro)q(cessor-sp)q(eci\014c)j(metho)q(ds)d(for)g(sa)o(ving)h(the)g(pro)q(ces\
sor)g(state.)151 2402 y(It)d(should)f(b)q(e)i(p)q(oin)o(ted)e(out)h(to)f(the)
g(reader,)h(to)f(prev)o(en)o(t)h(confusion,)g(that)f fg(checkp)q(oint\(\))i fn
(is)e(a)h(p)q(eculiar)151 2487 y(metho)q(d)17 b(|)h(a)f(single)g(call)f(to)h
(the)h(metho)q(d)f(yields)g(t)o(w)o(o)f(returns)h(from)f(the)i(metho)q(d.)
1675 2471 y fr(19)1738 2487 y fn(The)g(\014rst)37 2567 y 750 2 v 74 2594 a fs
(19)107 2610 y fp(The)13 b(Unix)f(system)h(call)f fa(fo)o(rk\(\))h fp(b)q(eha)
o(v)o(es)h(similarly)m(.)952 2760 y fn(32)g eop bop 151 42 a fn(return)21 b
(o)q(ccurs)h(when)g(the)f(pro)q(cessor)g(state)g(has)g(just)g(b)q(een)h(sa)o
(v)o(ed)f(in)o(to)f(the)h fg(Pro)q(cesso)o(rContext)151 126 y fn(ob)s(ject.)
26 b(The)18 b(second)g(return)f(o)q(ccurs)h(when)g(the)f(pro)q(cessor)h(state)
e(has)i(just)f(b)q(een)h(restored)f(from)151 211 y(a)g fg(Pro)q(cesso)o(rCont\
ext)g fn(ob)s(ject.)24 b(T)l(o)17 b(distinguish)f(b)q(et)o(w)o(een)h(the)g
(t)o(w)o(o)e(returns,)i fg(checkp)q(oint\(\))i fn(returns)151 296 y(zero)c
(the)h(\014rst)e(time)g(and)h(non-zero)h(otherwise.)93 418 y(3.)22 b fg(giveP\
ro)q(cesso)o(rT)l(o\(\))14 b fn(tak)o(es)g(one)i(of)f(t)o(w)o(o)e(paths)i(dep)
q(ending)i(on)e(the)g(return)g(v)m(alue)h(of)f fg(checkp)q(oint\(\))p fn(:)
206 552 y fl(\017)22 b fn(If)14 b fg(checkp)q(oint\(\))h fn(returned)f(zero)f
(\(meaning)e(that)i(the)g(pro)q(cessor)h(state)e(has)h(just)g(b)q(een)i(sa)o
(v)o(ed\),)251 637 y(the)g fg(Pro)q(cesso)o(rContext::resto)o(re\(\))f fn(met\
ho)q(d)g(is)g(in)o(v)o(ok)o(ed)g(on)g(B's)h fg(Pro)q(cesso)o(rContext)p fn
(.)21 b(This)14 b(will)251 721 y(switc)o(h)f(the)h(pro)q(cessor)g(o)o(v)o(er)
f(to)g fg(Pro)q(cess)i fn(B)f(and)g(return)g(from)e fg(checkp)q(oint\(\))k fn
(with)e(a)f(non-zero)251 806 y(v)m(alue.)206 907 y fl(\017)22 b fn(If)d fg
(checkp)q(oint\(\))i fn(returned)f(non-zero)f(\(meaning)e(that)i(the)g(pro)q
(cessor)g(state)f(has)h(just)f(b)q(een)251 992 y(restored\),)c fg(Pro)q(cess:\
:resto)o(re\(\))h fn(is)f(called)h(on)g(the)g fg(Pro)q(cess)h fn(that)f(has)g
(just)g(b)q(een)h(restored.)108 1127 y(The)h(main)e(steps)i(p)q(erformed)f
(b)o(y)h fg(Pro)q(cess::resto)o(re\(\))f fn(are)g(as)h(follo)o(ws)d(\(the)j
(\\former)e fg(Pro)q(cess)p fn(")i(is)f(the)37 1211 y fg(Pro)q(cess)g fn(that)
f(has)g(just)g(handed)h(the)f(pro)q(cessor)g(o)o(v)o(er)g(to)f(the)h fg(Pro)q
(cess)h fn(executing)g fg(resto)o(re\(\))p fn(\):)93 1346 y(1.)22 b(If)15 b
(the)f(curren)o(t)g fg(Pro)q(cess)h fn(con)o(tains)e(a)h(Germ)f(Resp)q(onsibi\
lit)o(y)g(function,)h(the)h(function)f(is)f(called)h(and)151 1430 y(the)h(fun\
ction)g(is)g(reset)f(to)h(n)o(ull.)k(Otherwise)c fg(resto)o(re\(\))f fn(puts)
h(the)g(former)f fg(Pro)q(cess)h fn(in)o(to)f(the)i(System)151 1515 y(Sc)o
(heduler.)93 1637 y(2.)22 b(It)15 b(calls)g fg(MMU::activate\(\))f fn(\(or)g
(more)g(sp)q(eci\014cally)l(,)h fg(i386MMU::activate\(\))p fn(\))e(to)i(switc)
o(h)f(the)i(curren)o(t)151 1722 y fg(Pro)q(cess)p fn(')g(virtual)e(address)h
(space)g(if)g(necessary)l(.)93 1844 y(3.)22 b(Finally)f(it)h(calls)g fg(Appli\
cationPro)q(cess::basicRest)q(o)o(re\(\))p fn(,)k(if)c(the)g(curren)o(t)h fg
(Pro)q(cess)g fn(is)g(an)f fg(Applica-)151 1929 y(tionPro)q(cess)p fn(,)17 b
(or)f fg(Pro)q(cess::basicResto)o(re\(\))h fn(otherwise.)k fg(ApplicationPro)
q(cess::basicRes)q(to)o(re\(\))d fn(starts)151 2013 y(the)i(timeslice)e(timer)
f(that)i(will)g(generate)g(a)h fg(TimeSliceException)g fn(when)g(the)g(timesl\
ice)e(expires.)151 2098 y fg(Pro)q(cess::basicResto)o(re\(\))e fn(do)q(es)g
(nothing.)108 2232 y(When)21 b fg(Pro)q(cess::givePro)q(cesso)o(rT)l(o\(\))f
fn(wishes)g(to)g(restore)g(a)h fg(Pro)q(cesso)o(rContext)g fn(in)o(to)f(the)h
(pro)q(cessor,)37 2317 y(it)e(calls)f fg(Pro)q(cesso)o(rContext::resto)o(re\(\
\))g fn(\(not)g(to)h(b)q(e)g(confused)h(with)e fg(Pro)q(cess::resto)o(re\(\))
p fn(,)h(whic)o(h)f(is)h(called)37 2402 y(immediately)14 b(after)h(a)h fg(Pro)
q(cesso)o(rContext)i fn(has)e(b)q(een)h(restored\).)23 b(If)17 b(the)f fg(Pro)
q(cesso)o(rContext)i fn(b)q(elongs)e(to)g(a)37 2487 y fg(Pro)q(cess)f fn(that)
e(is)h(executed)g(for)g(the)g(\014rst)f(time,)f fg(Pro)q(cesso)o(rContext::re\
sto)o(re\(\))i fn(calls)e fg(i386SystemContext::-)37 2571 y(resto)o(reF)o(rom\
InitialContext\(\))k fn(or)g fg(i386ApplicationContext::resto)o(reF)o(romInit\
ialContext\(\))p fn(,)g(dep)q(ending)j(on)952 2760 y(33)g eop bop 37 42 a fn
(whether)16 b(the)g fg(Pro)q(cesso)o(rContext)h fn(b)q(elongs)f(to)f(an)h fg
(ApplicationPro)q(cess)p fn(.)24 b(Otherwise)16 b(it)f(calls)g fg(i386Generic\
-)37 126 y(Context::basicResto)o(re\(\))i fn(or)e fg(i386ApplicationContext::\
basicResto)o(re\(\))p fn(.)37 274 y fi(2.2.3.4)52 b(Pro)q(cessor-sp)q(eci\014\
c)17 b(Supp)q(ort)h(for)f(Con)o(text)g(Switc)o(hing)37 389 y fn(Multitasking)
e(is)h(facilitated)f(on)i(the)g(386)f(micropro)q(cessor)e(arc)o(hitecture)i
(b)o(y)h(a)g(hardw)o(are-de\014ned)g(data)37 473 y(structure)g(called)g(the)g
(T)l(ask)g(State)f(Segmen)o(t.)25 b(The)17 b(T)l(ask)g(State)f(Segmen)o(t)g
(pro)o(vides)h(storage)f(space)h(for)37 558 y(all)g(the)h(user-accessible)g
(registers.)26 b(The)18 b(386)f(arc)o(hitecture)g(has)h(instructions)f(for)g
(sa)o(ving)g(and)h(loading)37 643 y(registers)12 b(from)e(a)j(T)l(ask)f(State)
g(Segmen)o(t,)f(so)h(that)g(task)g(switc)o(hing)f(ma)o(y)f(b)q(e)k(implemen)o
(ted)c(easily)l(.)18 b fg(Pro)q(ces-)37 727 y(so)o(rContexts)c fn(in)f(PC-Cho\
ices)f(serv)o(e)h(the)g(same)f(purp)q(ose,)h(but)g(I)g(ha)o(v)o(e)g(not)f(b)q
(een)i(able)f(to)f(\014nd)h(out)g(wh)o(y)f(the)37 812 y(original)e(designers)
i(of)f(Choices)h(c)o(hose)g(not)f(to)g(implemen)o(t)e fg(Pro)q(cesso)o(rConte\
xts)k fn(with)e(separate)h(T)l(ask)f(State)37 897 y(Segmen)o(ts,)k(whic)o(h)g
(migh)o(t)f(ha)o(v)o(e)h(made)f(PC-Choices)i(more)e(e\016cien)o(t.)20 b(Inste\
ad,)c(PC-Choices)f(uses)h(a)g(sin-)37 981 y(gle)f(T)l(ask)g(State)g(Segmen)o
(t)g(whose)g(v)m(alues)h(are)f(rep)q(eatedly)g(sa)o(v)o(ed)g(and)h(restored)f
(from)e fg(Pro)q(cesso)o(rContext)37 1066 y fn(ob)s(jects.)191 1049 y fr(20)
108 1151 y fn(The)i(pro)q(cessor-dep)q(enden)o(t)i(classes)d(de\014ne)i(assem)
o(bly-co)q(de)e(metho)q(ds)g fg(checkp)q(oint\(\))p fn(,)j fg(basicResto)o
(re\(\))37 1235 y fn(and)g fg(resto)o(reF)o(romInitialContext\(\))p fn(.)659
1219 y fr(21)717 1235 y fn(The)f fg(checkp)q(oint\(\))i fn(metho)q(d)d(sa)o
(v)o(es)h(the)g(curren)o(t)g(state)f(of)g(the)i(pro-)37 1320 y(cessor)22 b
(in)o(to)g(the)g fg(Pro)q(cesso)o(rContext)h fn(ob)s(ject.)40 b(The)23 b fg
(basicResto)o(re\(\))g fn(metho)q(d)e(is)h(called)g(whenev)o(er)g(the)37 1405
y(pro)q(cessor)14 b(state)g(sa)o(v)o(ed)f(in)h(the)g fg(Pro)q(cesso)o(rContex\
t)h fn(should)f(b)q(e)h(loaded)f(in)o(to)f(the)h(pro)q(cessor.)20 b fg(resto)
o(reF)o(rom-)37 1489 y(InitialContext\(\))h fn(is)e(called)h(when)g(the)g fg
(Pro)q(cesso)o(rContext)h fn(is)e(loaded)g(in)o(to)g(the)h(pro)q(cessor)g(for)
f(the)h(v)o(ery)37 1574 y(\014rst)d(time)e(\(i.e.)24 b(when)17 b(a)g(new)g fg
(Pro)q(cess)h fn(b)q(egins)f(to)f(run\).)25 b(The)17 b(three)g(metho)q(ds)f
(are)g(de\014ned)i(separately)37 1659 y(in)e fg(i386GenericContext)p fn(,)f fg
(i386SystemContext)h fn(and)f fg(i386ApplicationContext)i fn(so)e(that)g(the)
g(metho)q(ds)f(ma)o(y)37 1743 y(p)q(erform)g(additional)g(pro)q(cessing)h(whe\
n)h(sa)o(ving)e(and)h(restoring)f(application)g fg(Pro)q(cesso)o(rContexts)p
fn(.)1773 1727 y fr(22)108 1828 y fg(i386GenericContext::checkp)q(oint\(\))g
fn(and)e fg(i386ApplicationContext::checkp)q(oint\(\))i fn(are)d(assem)o(bly-\
co)q(de)37 1913 y(routines)17 b(that)f(sa)o(v)o(e)g(the)h(k)o(ernel)g(stac)o
(k)f(p)q(oin)o(ter,)h(the)g(curren)o(t)f(stac)o(k)h(p)q(oin)o(ter)f(\(whic)o
(h)h(ma)o(y)e(b)q(e)i(p)q(oin)o(ting)37 1997 y(to)g(the)g(k)o(ernel)g(stac)o
(k)g(or)f(the)i(user)f(stac)o(k\),)f(the)h(program)e(coun)o(ter)i(and)h(the)f
(four)g(registers)f(DI,)h(SI,)g(BX)37 2082 y(and)f(BP)l(.)f(The)g(data)g(to)g
(b)q(e)g(sa)o(v)o(ed)g(is)g(obtained)g(from)e(the)i(T)l(ask)g(State)g(Segmen)
o(t.)108 2167 y(The)k(opp)q(osite)f(of)h fg(checkp)q(oint\(\))h fn(is)e(done)
h(b)o(y)g(the)g fg(basicResto)o(re\(\))g fn(metho)q(ds)f(of)g fg(i386GenericC\
ontext)37 2252 y fn(and)h fg(i386ApplicationContext)g fn(|)g(these)f(metho)q
(ds)f(load)g(the)h(pro)q(cessor)g(registers)f(and)h(the)g(T)l(ask)g(State)37
2333 y 750 2 v 74 2359 a fs(20)107 2375 y fp(The)13 b(T)m(ask)f(State)i(Segme\
n)o(t)e(is)h(stored)h(in)e(the)i(global)f(v)n(ariable)g fa(chtss)p fp(,)e(de\
\014ned)k(in)d fa(MachineDep)q(endent/PC/b)q(o)q(ot.s)p fp(.)74 2405 y fs(21)
107 2421 y fp(These)h(metho)q(ds)g(are)g(de\014ned)h(in)f fa(Pro)q(cesso)o
(rDep)q(endent/i386/i386ContextSwitching.s)p fp(.)74 2451 y fs(22)107 2467 y
fp(More)j(precisely)m(,)g fa(checkp)q(oint\(\))f fp(and)h fa(basicResto)o(re\
\(\))g fp(are)g(b)q(oth)g(de\014ned)h(b)o(y)f fa(i386GenericContext)f fp(and)
i(again)f(b)o(y)g fa(i386-)37 2512 y(ApplicationContext)p fp(,)c(but)i fa(res\
to)o(reF)o(romInitialContext\(\))e fp(is)g(de\014ned)i(b)o(y)g fa(i386SystemC\
ontext)e fp(and)h fa(i386ApplicationContext)p fp(.)952 2760 y fn(34)g eop bop
37 42 a fn(Segmen)o(t)18 b(with)g(the)h(data)e(sa)o(v)o(ed)i(b)o(y)f fg(check\
p)q(oint\(\))p fn(.)32 b(A)o(t)18 b(the)h(last)e(step,)i(the)g(metho)q(d)f
(branc)o(hes)g(to)g(the)37 126 y(program)c(coun)o(ter)h(v)m(alue)g(previously)
g(sa)o(v)o(ed)f(b)o(y)h fg(checkp)q(oint\(\))p fn(.)108 211 y fg(i386SystemCo\
ntext::resto)o(reF)o(romInitialContext\(\))p fn(,)e(called)h(when)h(a)f(non-)
p fg(ApplicationPro)q(cess)j fn(b)q(egins)37 296 y(execution,)j(simply)c(sa)o
(v)o(es)i(the)h(k)o(ernel)f(stac)o(k)g(p)q(oin)o(ter)g(in)o(to)g(the)g(T)l
(ask)g(State)g(Segmen)o(t)g(and)h(calls)e fg(i386-)37 380 y(SystemContext::in\
itialResto)o(reAssis)q(t\(\))p fn(.)22 b(This)15 b(metho)q(d)f(do)q(es)i(the)
f(follo)o(wing:)93 490 y(1.)22 b(It)f(calls)f fg(Pro)q(cesso)o(rContext::rest\
o)o(reAssist\(\))p fn(.)37 b(This)20 b(metho)q(d,)h(in)f(turn,)i(calls)e fg
(Pro)q(cess::resto)o(re\(\))p fn(,)151 575 y(describ)q(ed)c(ab)q(o)o(v)o(e.)
93 690 y(2.)22 b(It)15 b(turns)g(o\013)g(in)o(terrupts)f(if)h(the)g fg(Pro)q
(cesso)o(rContext)h fn(is)f(unin)o(terruptible.)93 805 y(3.)22 b(It)d(calls)f
(the)h fg(entryP)o(oint)h fn(function)f(for)g(the)g fg(Pro)q(cess)p fn(,)h
(passing)e(in)h(t)o(w)o(o)f(argumen)o(ts)f(for)i(the)g(func-)151 889 y(tion.)
g(The)14 b fg(entryP)o(oint)h fn(function)f(and)g(the)h(argumen)o(ts)d(w)o
(ere)i(set)f(when)i(the)f fg(Pro)q(cesso)o(rContext)h fn(w)o(as)151 974 y(cre\
ated)g(in)g(the)h fg(Pro)q(cess)g fn(constructor.)93 1089 y(4.)22 b(When)16 b
(the)f fg(entryP)o(oint)h fn(function)f(returns,)g(the)g(curren)o(t)g fg(Pro)
q(cess)h fn(is)f(terminated.)108 1199 y fg(i386ApplicationContext::resto)o
(reF)o(romInitialContext\(\))p fn(,)c(called)g(when)h(an)g fg(ApplicationPro)
q(cess)h fn(b)q(egins)37 1283 y(execution,)23 b(is)d(sligh)o(tly)g(more)f(com\
plicated)h(due)h(to)g(the)g(extra)f(ob)s(jects)h(that)f(ha)o(v)o(e)h(to)f(b)q
(e)i(passed)f(to)37 1368 y fg(ApplicationPro)q(cesses)p fn(,)d(as)c(w)o(ell)f
(as)h(due)h(to)f(the)h(fact)e(that)h(the)h(k)o(ernel)f(m)o(ust)f(cross)h(the)
g(k)o(ernel)g(protection)37 1453 y(b)q(oundary)i(in)f(order)g(to)g(execute)h
(the)f fg(ApplicationPro)q(cess)p fn(.)22 b(The)15 b(main)f(steps)h(are)g(hig\
hligh)o(ted)f(here:)93 1563 y(1.)22 b(It)15 b(sa)o(v)o(es)g(the)g(k)o(ernel)g
(stac)o(k)f(p)q(oin)o(ter)h(in)o(to)f(the)i(T)l(ask)e(State)h(Segmen)o(t.)93
1678 y(2.)22 b(It)h(calls)f fg(i386ApplicationContext::initialResto)o(reAssis\
t\(\))j fn(to)d(set)h(up)g(the)f(\\default)g(pro)o(xy")g(and)151 1762 y(switc)
o(h)f(to)f(the)i(Application)e fg(Domain)p fn(.)38 b fg(initialResto)o(reAssi\
st\(\))23 b fn(calls)d fg(Pro)q(cesso)o(rContext::resto)o(re-)151 1847 y(Assi\
st\(\))c fn(as)f(w)o(ell.)93 1962 y(3.)22 b(It)c(initializes)d(the)i(k)o(erne\
l)g(stac)o(k)g(with)g(the)g fg(entryP)o(oint)h fn(argumen)o(ts)e(and)h(the)h
fg(entryP)o(oint)g fn(address.)151 2047 y(The)e(default)e(pro)o(xy)h(is)g(als\
o)f(passed)h(as)g(an)g(argumen)o(t)f(to)g(the)i fg(entryP)o(oint)g fn(functio\
n.)93 2162 y(4.)22 b(Ultimately)l(,)9 b(it)i(executes)h(an)f(in)o(terrupt-ret\
urn)g(instruction)f(\(IRET\).)h(This)g(step)g(causes)h(the)f(v)m(alues)151
2246 y(sa)o(v)o(ed)j(in)g(the)g(previous)g(step)g(on)g(the)g(k)o(ernel)g(stac)
o(k)f(to)h(b)q(e)h(loaded)f(in)o(to)f(the)h(appropriate)f(registers.)151 2331
y(The)j(privilege)e(lev)o(el)g(is)h(do)o(wngraded)g(to)f(the)i(user)f(privile\
ge)f(lev)o(el)h(while)g(jumping)f(to)g fg(entryP)o(oint)p fn(.)108 2441 y(The)
k(default)e(pro)o(xy)h(men)o(tioned)f(earlier)h(is)f(a)h(pro)o(xy)g(to)g(the)
g(k)o(ernel)g fg(SystemInterface)h fn(ob)s(ject.)26 b(This)37 2525 y(pro)o
(xy)11 b(\(kno)o(wn)f(as)h(the)g fg(Standa)o(rdSystemInterface)p fn(\))h(will)
e(b)q(e)h(used)h(b)o(y)e(the)h(startup)g(co)q(de)g(in)g(the)g(application)37
2610 y(program)j(to)g(fetc)o(h)h(other)g(system)f(pro)o(xies,)g(suc)o(h)h(as)
g(the)g fg(Standa)o(rdNameServer)q fn(.)952 2760 y(35)g eop bop 37 42 a fd
(2.3)70 b(Exception)23 b(Subsystem)37 171 y fn(The)15 b(exception)f(subsystem)
g(catc)o(hes)g(error)f(conditions,)g(suc)o(h)i(as)f(in)o(v)m(alid)f(memory)f
(accesses,)i(and)h(serv)o(es)37 256 y(in)o(terrupts)g(from)f(I/O)i(devices)f
(as)g(w)o(ell.)20 b(I/O)c(device)f(in)o(terrupts)g(are)g(not)g(dealt)g(with)g
(b)o(y)g(the)g(exception)37 341 y(subsystem)e(p)q(er)h(se)f(|)h(the)g(subsyst\
em)e(merely)g(pro)o(vides)h(lo)o(w-lev)o(el)f(mec)o(hanisms)f(that)i(assist)f
(other)h(sub-)37 425 y(systems)h(in)g(handling)g(the)h(in)o(terrupt.)k(The)14
b(execution)h(of)f(16-bit)g(programs)e(dep)q(ends)k(on)f(the)f(exception)37
510 y(subsystem)h(as)g(w)o(ell;)e(this)i(will)f(b)q(e)i(discussed)f(later.)37
661 y ff(2.3.1)56 b(Exception)18 b(Mo)r(del)37 775 y fn(An)j(exception)g(is)e
(a)i(condition)e(that)h(causes)g(a)g(pro)q(cessor)h(to)e(stop)h(normal)f(prog\
ram)f(execution)i(and)37 859 y(p)q(erform)e(sp)q(ecial)g(pro)q(cessing)g(to)g
(handle)g(the)h(condition[36)n(].)29 b(The)19 b(co)q(de)g(to)e(pro)q(cess)i
(the)f(condition)g(is)37 944 y(called)d(an)g(exception)g(handler.)20 b(In)c
(Choices,)e(the)h(exception)g(handler)g(is)g(encapsulated)g(in)g(an)g fg(Exce\
ption)37 1029 y fn(ob)s(ject.)108 1113 y(A)22 b(data)g(structure)g(called)g
(the)h fg(Exception)h fn(T)l(able)e(assists)f(in)h(the)h(servicing)e(of)h(exc\
eptions)h(\(Fig-)37 1198 y(ure)18 b(2.15\).)24 b(Eac)o(h)17 b(en)o(try)f(in)h
(the)h fg(Exception)g fn(T)l(able)f(is)g(an)g fg(Exception)h fn(ob)s(ject)f
(that)f(services)h(a)g(particular)37 1283 y(t)o(yp)q(e)c(of)f(exception.)18 b
(When)13 b(an)f(exception)g(o)q(ccurs,)h(the)g(exception)f(n)o(um)o(b)q(er)f
(is)h(used)h(as)f(an)g(index)g(in)o(to)f(the)37 1368 y fg(Exception)19 b fn
(T)l(able)e(to)g(fetc)o(h)g(the)h fg(Exception)g fn(ob)s(ject)f(that)g(is)g
(dedicated)g(for)g(the)g(exception.)27 b(After)17 b(that,)37 1452 y(the)f(exc\
eption)g(handler)f(in)g(the)h fg(Exception)h fn(ob)s(ject)e(is)g(in)o(v)o(ok)
o(ed,)f(passing)h(as)g(the)g(argumen)o(t)f(a)h(p)q(oin)o(ter)g(to)37 1537 y
(a)j(pro)q(cessor-dep)q(enden)o(t)h(data)e(structure)h(con)o(taining)f(more)f
(information)f(ab)q(out)j(the)f(exception.)28 b(The)37 1622 y fg(Pro)q(cess)
20 b fn(that)e(had)h(b)q(een)g(in)o(terrupted)g(resumes)e(execution)i(after)f
(the)h(exception)f(has)h(b)q(een)h(pro)q(cessed)37 1706 y(\(Figure)15 b(2.16\
\).)423 1767 y
17429529 9472573 9077882 24536596 29207101 35456368 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Helvetica Times-Roman
%%Pages: 1
%%BoundingBox: 138 373 444 539
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 52 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1.52145 0 0 1.52145 -162.16 -209.763 ] concat

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 256.5 365.25 ] concat
%I 3
24 322
57 345
98 345
3 MLine
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 269 334.25 ] concat
%I
424 352 520 309 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 265.846 429.728 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 290.346 419.228 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 314.846 408.728 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 339.346 398.228 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 273.5 332.25 ] concat
%I 4
-45 455
-37 429
317 276
319 297
4 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 273.5 332.25 ] concat
%I 8
320 296
390 286
440 310
502 316
502 296
439 289
390 265
318 275
8 Poly
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 273.25 438.972 ] concat
%I
[
(5)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 298.71 428.238 ] concat
%I
[
(6)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 322.954 417.176 ] concat
%I
[
(7)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 346.12 407.451 ] concat
%I
[
(8)
] Text
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 140 445 ] concat
%I
[
(Exception Table)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 344 538 ] concat
%I
[
(Exception)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 245 389 ] concat
%I
[
(Exception Number)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 51 134.25 ] concat
%I
306 388 278 365 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 38 139.25 ] concat
%I
202 303 239 303 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 188 266.25 ] concat
%I
354 279 338 247 Line
%I 2
End

End %I eop

showpage

%%Trailer

end

endTexFig
482 2465 a fi(Figure)h(2.15)p fn(:)k fg(Exceptions)d fn(and)e
(the)h fg(Exception)g fn(T)l(able)952 2760 y(36)g eop bop 323 0 a
20602844 14208860 13090570 19537182 35324805 34798551 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Helvetica Times-Roman
%%Pages: 1
%%BoundingBox: 199 297 537 529
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 52 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.316379 -4.49819e-25 4.49819e-25 0.316379 148.699 243.701 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1.52145 0 0 1.52145 -162.16 -209.763 ] concat

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 256.5 365.25 ] concat
%I 3
24 322
57 345
98 345
3 MLine
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 269 334.25 ] concat
%I
424 352 520 309 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 265.846 429.728 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 290.346 419.228 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 314.846 408.728 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 339.346 398.228 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 273.5 332.25 ] concat
%I 4
-45 455
-37 429
317 276
319 297
4 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 273.5 332.25 ] concat
%I 8
320 296
390 286
440 310
502 316
502 296
439 289
390 265
318 275
8 Poly
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 273.25 438.972 ] concat
%I
[
(5)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 298.71 428.238 ] concat
%I
[
(6)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 322.954 417.176 ] concat
%I
[
(7)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 346.12 407.451 ] concat
%I
[
(8)
] Text
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 404 489 ] concat
%I
[
(Exception)
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 32 132 ] concat
%I 4
333 235
304 248
310 272
346 295
4 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 32 132 ] concat
%I 4
389 299
426 291
424 262
388 235
4 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 30 139 ] concat
%I
238 228 329 228 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 190 139 ] concat
%I
238 228 329 228 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 213 313 ] concat
%I
[
(Process)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 270 361 ] concat
%I
[
(Control Flow)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 280 418 ] concat
%I
[
(Handle)
(exception)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 462 417 ] concat
%I
[
(Resume from)
(exception)
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
637 998 a fi(Figure)16 b(2.16)p fn(:)k(Exception)15 b(handling)
37 1131 y ff(2.3.2)56 b(Exception)18 b(In)n(terface)37 1245 y fg(Exception)g
fn(is)e(an)h(abstract)e(base)i(class)f(that)g(should)g(b)q(e)h(sub)q(classed)
g(b)o(y)g(the)f(programmer)e(to)h(represen)o(t)37 1330 y(a)g(sp)q(eci\014c)h
(t)o(yp)q(e)f(of)g(exception.)20 b(The)15 b fg(basicRaise\(\))h fn(metho)q
(d)f(should)g(b)q(e)h(de\014ned)g(b)o(y)f(the)g(programmer)d(to)37 1415 y(han\
dle)18 b(the)f(exception)h(appropriately)l(.)24 b(F)l(or)17 b(example,)f(the)
i(programm)o(er)d(ma)o(y)g(sub)q(class)i fg(Exception)i fn(to)37 1499 y(giv)o
(e)13 b(a)f(new)h(class)g(named)f fg(SoundDigitizerException)p fn(,)j(whose)d
fg(basicRaise\(\))i fn(metho)q(d)e(is)h(de\014ned)h(to)e(handle)37 1584 y(in)
o(terrupts)k(from)f(a)h(sound)h(digitizer.)22 b(When)17 b(an)g(exception)f
(o)q(ccurs,)h(the)g fg(basicRaise\(\))g fn(metho)q(d)f(will)f(b)q(e)37 1669 y
(called)i(with)f(an)h(argumen)o(t,)e(a)i(p)q(oin)o(ter)f(to)g(a)h fg(stackF)o
(rame)f fn(ob)s(ject.)1220 1652 y fr(23)1282 1669 y fn(The)h fg(stackF)o(rame)
f fn(ob)s(ject)g(con)o(tains)37 1753 y(the)e(register)f(v)m(alues)h(sa)o(v)o
(ed)f(during)h(the)g(exception.)20 b(The)14 b fg(basicRaise\(\))g fn(metho)q
(d)f(ma)o(y)f(mak)o(e)h(use)h(of)f(these)37 1838 y(v)m(alues)j(to)e(pro)q(ces\
s)i(the)f(exception.)108 1923 y(An)k fg(Exception)g fn(is)f(added)h(to)f(the)
g fg(Exception)i fn(T)l(able)e(b)o(y)g(calling)f(the)i fg(CPU::setException\(\
\))h fn(metho)q(d.)37 2008 y(Figure)15 b(2.17)f(sho)o(ws)g(ho)o(w)h(this)g
(is)f(done.)196 2068 y 1559 2 v 196 2308 a 2 240 v 316 2114 a fk(//)46 b(Cr)n
(e)n(ate)22 b(an)g(Exc)n(eption)g(to)i(hand)r(le)e(the)h(sound)g(digitizer.)
316 2171 y fg(Exception)17 b fl(\003)p fi(exception)d fg(=)i fi(new)f fg(Soun\
dDigitizerException;)316 2227 y fk(//)46 b(A)n(dd)22 b(the)h(exc)n(eption)g
(to)g(the)g(Exc)n(eption)f(T)m(able)f(at)i(entry)g(numb)n(er)f(39.)316 2284 y
fg(thisCPU)17 b(\(\))d fl(!)i fg(setException)h(\(39,)d fi(exception)p fg(\);)
1753 2308 y 2 240 v 196 2310 a 1559 2 v 395 2386 a fi(Figure)j(2.17)p fn(:)i
(Adding)d(an)f fg(Exception)i fn(to)d(the)h fg(Exception)i fn(T)l(able)37 2468
y 750 2 v 74 2494 a fs(23)107 2510 y fa(stackF)o(rame)12 b fp(is)h(de\014ned)
h(in)f fa(Includes/Pro)q(cesso)o(rDep)q(endent/i386/i386Context.h)p fp(.)952
2760 y fn(37)g eop bop 108 42 a fn(Choices)21 b(supp)q(orts)f(an)h(alternate)
f(metho)q(d)g(of)g(servicing)g(exceptions.)37 b(An)21 b fg(InterruptPro)q(ces\
s)i fn(ma)o(y)37 126 y(b)q(e)c(executed)g(as)f(a)g(bac)o(kground)g(pro)q(cess)
g(to)g(service)g(a)g(sp)q(eci\014c)h(exception)f(whenev)o(er)h(it)e(o)q(ccurs)
i(\(Fig-)37 211 y(ure)d(2.18\).)j(This)c(feature)g(is)g(implemen)o(ted)e(with)
i(a)g(sp)q(ecial)g(kind)h(of)f fg(Exception)i fn(kno)o(wn)e(as)g(the)g fg(Aw)
o(aited-)37 296 y(InterruptException)p fn(.)23 b(An)15 b fg(InterruptPro)q
(cess)i fn(ma)o(y)c(in)o(v)o(ok)o(e)h(the)g fg(a)o(w)o(ait\(\))g fn(metho)q
(d)g(on)h(the)g fg(Aw)o(aitedInterrup-)37 380 y(tException)h fn(to)d(blo)q
(c)o(k)h(un)o(til)f(an)h(exception)g(o)q(ccurs)g(and,)g(up)q(on)h(un)o(blo)q
(c)o(king,)e(service)h(the)g(exception.)19 b(The)37 465 y fg(InterruptPro)q
(cess)i fn(executes)e(a)f(lo)q(op)g(that)f(p)q(erforms)g(these)i(steps)f(rep)
q(eatedly)l(.)30 b(Figure)17 b(2.19)g(illustrates)37 550 y(the)f(use)f(of)g
(an)g fg(Aw)o(aitedInterruptExcept)q(ion)j fn(in)d(an)g fg(InterruptPro)q(ces\
s)p fn(.)-30 608 y
31733118 23681433 1315635 13024788 52822753 51375554 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Helvetica Times-Roman
%%Pages: 1
%%BoundingBox: 20 198 803 781
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 52 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1.52145 0 0 1.52145 -340.16 -5.76297 ] concat

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 256.5 365.25 ] concat
%I 3
24 322
57 345
98 345
3 MLine
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 269 334.25 ] concat
%I
424 352 520 309 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 265.846 429.728 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 290.346 419.228 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 314.846 408.728 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 339.346 398.228 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 273.5 332.25 ] concat
%I 4
-45 455
-37 429
317 276
319 297
4 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 273.5 332.25 ] concat
%I 8
320 296
390 286
440 310
502 316
502 296
439 289
390 265
318 275
8 Poly
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 273.25 438.972 ] concat
%I
[
(5)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 298.71 428.238 ] concat
%I
[
(6)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 322.954 417.176 ] concat
%I
[
(7)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 346.12 407.451 ] concat
%I
[
(8)
] Text
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 190 706 ] concat
%I
[
(Exception)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.316379 -4.49819e-25 4.49819e-25 0.316379 242.699 566.701 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 284 762 ] concat
%I
[
(InterruptProcess)
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 -78 336 ] concat
%I 3
376 357
337 355
305 331
3 BSpl
%I 1
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.316379 -4.49819e-25 4.49819e-25 0.316379 388.699 447.701 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1.52145 0 0 1.52145 77.84 -5.763 ] concat

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 256.5 365.25 ] concat
%I 3
24 322
57 345
98 345
3 MLine
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 269 334.25 ] concat
%I
424 352 520 309 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 265.846 429.728 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 290.346 419.228 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 314.846 408.728 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 339.346 398.228 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 273.5 332.25 ] concat
%I 4
-45 455
-37 429
317 276
319 297
4 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 273.5 332.25 ] concat
%I 8
320 296
390 286
440 310
502 316
502 296
439 289
390 265
318 275
8 Poly
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 273.25 438.972 ] concat
%I
[
(5)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 298.71 428.238 ] concat
%I
[
(6)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 322.954 417.176 ] concat
%I
[
(7)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 346.12 407.451 ] concat
%I
[
(8)
] Text
End

End %I eop

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 272 336 ] concat
%I 4
333 235
304 248
310 272
346 295
4 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 270 343 ] concat
%I
238 228 329 228 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 453 642 ] concat
%I
[
(Process)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 510 565 ] concat
%I
[
(Control Flow)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 520 622 ] concat
%I
[
(Handle)
(exception)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.316379 -4.49819e-25 4.49819e-25 0.316379 660.699 566.701 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 447 517 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 720 638 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 702 762 ] concat
%I
[
(InterruptProcess)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.316379 -4.49819e-25 4.49819e-25 0.316379 -29.301 145.701 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1.52145 0 0 1.52145 -340.16 -307.763 ] concat

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 256.5 365.25 ] concat
%I 3
24 322
57 345
98 345
3 MLine
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 269 334.25 ] concat
%I
424 352 520 309 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 265.846 429.728 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 290.346 419.228 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 314.846 408.728 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 339.346 398.228 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 273.5 332.25 ] concat
%I 4
-45 455
-37 429
317 276
319 297
4 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 273.5 332.25 ] concat
%I 8
320 296
390 286
440 310
502 316
502 296
439 289
390 265
318 275
8 Poly
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 273.25 438.972 ] concat
%I
[
(5)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 298.71 428.238 ] concat
%I
[
(6)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 322.954 417.176 ] concat
%I
[
(7)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 346.12 407.451 ] concat
%I
[
(8)
] Text
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 35 340 ] concat
%I
[
(Process)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.316379 -4.49819e-25 4.49819e-25 0.316379 242.699 264.701 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 284 460 ] concat
%I
[
(InterruptProcess)
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 -78 34 ] concat
%I 6
314 321
350 321
379 331
378 358
347 357
309 331
6 BSpl
%I 1
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.316379 -4.49819e-25 4.49819e-25 0.316379 465.699 145.701 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1.52145 0 0 1.52145 83.84 -307.763 ] concat

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 256.5 365.25 ] concat
%I 3
24 322
57 345
98 345
3 MLine
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 269 334.25 ] concat
%I
424 352 520 309 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 265.846 429.728 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 290.346 419.228 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 314.846 408.728 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.0882353 0 0 0.0882353 339.346 398.228 ] concat
%I 18
298 644
52 188
58 174
80 160
110 150
150 142
196 136
236 132
270 132
318 130
362 134
394 134
412 138
442 142
480 148
514 160
534 172
538 188
18 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 273.5 332.25 ] concat
%I 4
-45 455
-37 429
317 276
319 297
4 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 273.5 332.25 ] concat
%I 8
320 296
390 286
440 310
502 316
502 296
439 289
390 265
318 275
8 Poly
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 273.25 438.972 ] concat
%I
[
(5)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 298.71 428.238 ] concat
%I
[
(6)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 322.954 417.176 ] concat
%I
[
(7)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 0.2716 0 0 0.2716 346.12 407.451 ] concat
%I
[
(8)
] Text
End

End %I eop

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 278 34 ] concat
%I 4
389 299
426 291
424 262
388 235
4 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 436 41 ] concat
%I
238 228 329 228 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 594 263 ] concat
%I
[
(Resume from)
(exception)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.316379 -4.49819e-25 4.49819e-25 0.316379 666.699 264.701 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 524 215 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 726 336 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 708 460 ] concat
%I
[
(InterruptProcess)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 302 638 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 59 775 ] concat
%I
[
(InterruptProcess waits)
(for an exception)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 302 336 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 34 481 ] concat
%I
[
(The InterruptProcess resumes)
(execution to process the exception,)
(and then waits for the exception again)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 447 475 ] concat
%I
[
(The original Process resumes)
(execution)
] Text
End

Begin %I Line
%I b 65535
3 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 2 -0 -0 2 -2 -135 ] concat
%I
187 403 226 403 Line
%I 0.5
End

Begin %I Line
%I b 65535
3 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 2 -0 -0 2 -2 -439 ] concat
%I
187 403 226 403 Line
%I 0.5
End

Begin %I Line
%I b 65535
3 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 2 -0 -0 2 -2 -141 ] concat
%I
219 344 188 327 Line
%I 0.5
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 449 780 ] concat
%I
[
(The exception occurs, the)
(Exception is invoked and the)
(executing Process waits)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 35 215 ] concat
%I
[
([Ready])
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
285 2206 a fi(Figure)h(2.18)p fn(:)k(Handling)15 b(exceptions)
g(with)g(an)g fg(Aw)o(aitedInterruptException)37 2407 y ff(2.3.3)56 b(Excepti\
on)18 b(Implemen)n(tation)37 2521 y fn(According)i(to)f(the)g(de\014nition)h
(of)f(the)h(386)e(micropro)q(cessor)g(arc)o(hitecture,)h(in)o(terrupts)g(are)
g(caused)i(b)o(y)37 2606 y(comp)q(onen)o(ts)c(external)f(to)g(the)h(386)g(mic\
ropro)q(cessor,)e(whereas)i(exceptions)g(are)f(pro)q(cessor-detected)i(or)952
2760 y(38)g eop bop 196 2 a 1559 2 v 196 862 a 2 861 v 316 48 a fk(//)46 b
(The)22 b(c)n(o)n(de)h(her)n(e)f(must)h(run)g(in)f(an)h(InterruptPr)n(o)n(c)n
(ess.)316 105 y(//)46 b(First,)22 b(cr)n(e)n(ate)g(a)h(new)g(A)o(waite)n(dInt\
erruptExc)n(eption.)316 161 y fg(Aw)o(aitedInterruptException)c fl(\003)p fi
(exception)14 b fg(=)407 218 y fi(new)h fg(Aw)o(aitedInterruptException;)316
274 y fk(//)46 b(A)n(dd)22 b(the)h(exc)n(eption)g(to)g(the)g(Exc)n(eption)f
(T)m(able)f(at)316 330 y(//)46 b(entry)22 b(numb)n(er)h(39.)316 387 y fg(this\
CPU\(\))16 b fl(!)g fg(setException)h(\(39,)d fi(exception)p fg(\);)316 443 y
fk(//)46 b(L)n(o)n(op)22 b(for)n(ever)h(hand)r(ling)f(the)h(exc)n(eption.)316
500 y fi(for)15 b fg(\(;;\))316 556 y fl(f)407 613 y fk(//)46 b(Wait)23 b(for)
g(exc)n(eption)f(numb)n(er)h(39)g(to)g(take)g(plac)n(e.)407 669 y fi(exceptio\
n)15 b fl(!)g fg(a)o(w)o(ait)g(\(\);)407 726 y fk(//)46 b(Hand)r(le)22 b(the)
h(exc)n(eption)f(her)n(e.)407 782 y fn(.)8 b(.)g(.)316 839 y fl(g)1753 862 y 2
861 v 196 864 a 1559 2 v 481 941 a fi(Figure)17 b(2.19)p fn(:)i(Using)c(an)g
fg(Aw)o(aitedInterruptExcept)q(ion)37 1075 y fn(programmed)c(ev)o(en)o(ts.)19
b(Both)14 b(of)f(these)h(in)o(terrupts)f(and)h(exceptions)g(are)f(termed)g
(exceptions)h(in)f(Choices.)37 1159 y(The)18 b(386)f(arc)o(hitecture)g(de\014\
nes)i(256)e(exception)g(and)h(in)o(terrupt)f(v)o(ectors.)26 b(The)18 b(microp\
ro)q(cessor)e(uses)i(a)37 1244 y(programmable)11 b(data)h(structure)i(called)
f(the)g(In)o(terrupt)h(Descriptor)e(T)l(able)h(to)g(determine)g(the)g(address)
h(of)37 1329 y(the)j(handler)g(routine)f(to)g(b)q(e)h(executed)h(whenev)o(er)
f(an)f(in)o(terrupt)g(or)g(exception)h(o)q(ccurs.)25 b(The)16 b(In)o(terrupt)
37 1413 y(Descriptor)i(T)l(able)g(is)g(a)h(table)e(of)i(256)e(gate)h(descript\
ors)g(whic)o(h)g(sp)q(ecify)h(the)g(handler)f(routines.)30 b(Eac)o(h)37 1498 y
(gate)16 b(descriptor)g(is)g(either)g(a)g(T)l(ask)g(Gate,)f(In)o(terrupt)h
(Gate)g(or)g(T)l(rap)g(Gate.)22 b(The)17 b(lo)q(cation)e(of)h(the)g(table)37
1583 y(is)h(giv)o(en)f(b)o(y)h(the)g(In)o(terrupt)g(Descriptor)e(T)l(able)i
(Register.)24 b(Normally)14 b(the)j(In)o(terrupt)g(Descriptor)f(T)l(able)37
1667 y(Register)h(ma)o(y)e(p)q(oin)o(t)h(to)g(an)o(y)g(lo)q(cation)g(in)h(ph)
o(ysical)f(memory)l(,)e(but)j(under)g(the)g(386)f(real-address)g(mo)q(de)37
1752 y(of)21 b(op)q(eration,)h(the)f(In)o(terrupt)g(Descriptor)f(T)l(able)h
(Register)g(should)g(p)q(oin)o(t)g(to)g(address)g(0,)h(where)f(the)37 1837 y
(in)o(terrupt)15 b(table)g(is)f(lo)q(cated)h(in)g(the)g(8086)f(micropro)q(ces\
sor.)37 1985 y fi(2.3.3.1)52 b(In)o(terrupts)16 b(and)i(exceptions)f(handled)
g(b)o(y)g(PC-Choices)37 2099 y fn(PC-Choices)e(recognizes)g(only)g(t)o(w)o
(o)f(exceptions:)19 b(the)d(General)e(Protection)g(Exception)h(\(v)o(ector)f
(13\))g(and)37 2184 y(the)19 b(P)o(age)f(F)l(ault)f(Exception)i(\(v)o(ector)e
(14\).)29 b(The)19 b(General)f(Protection)f(Exception)h(is)g(generated)h(when)
37 2268 y(privileged)g(instructions)f(are)h(executed)h(in)f(the)h(virtual-808\
6)d(mo)q(de.)31 b(The)19 b(op)q(erating)g(system)e(should)37 2353 y(handle)22
b(this)e(exception)h(b)o(y)g(em)o(ulating)e(the)i(privileged)g(instruction)f
(for)g(the)h(virtual-8086)e(program.)37 2438 y(The)14 b(exception)f(is)g(also)
g(generated)g(b)o(y)g(other)g(kinds)g(of)g(protection)g(violations,)e(but)i
(PC-Choices)g(ignores)37 2523 y(them)i(and)h(attempts)e(to)h(restart)f(the)i
(faulting)e(instruction.)20 b(The)c(P)o(age)f(F)l(ault)g(Exception)g(is)g(gen\
erated)37 2607 y(when)21 b(the)f(k)o(ernel)g(or)g(application)e(programs)g
(attempt)g(to)i(access)g(a)g(non-existen)o(t)f(memory)f(address,)952 2760 y
(39)g eop bop 37 42 a fn(or)18 b(when)g(an)g(application)e(program)g(accesses)
i(a)f(region)g(of)h(memory)d(that)i(it)g(do)q(es)h(not)f(ha)o(v)o(e)h(the)g
(righ)o(t)37 126 y(to)g(access.)31 b(PC-Choices)18 b(handles)h(this)f(excepti\
on)h(b)o(y)f(displa)o(ying)f(the)i(faulting)e(address)i(and)g(a)f(stac)o(k)37
211 y(bac)o(ktrace,)d(and)g(killing)f(the)h(curren)o(t)g fg(Pro)q(cess)p fn
(.)108 296 y(PC-Choices)j(uses)g(in)o(terrupt)g(v)o(ectors)f(24)h(through)f
(39)h(for)g(external)f(in)o(terrupts)h(\(IR)o(Q\))g(0)g(through)37 380 y(15.)
96 364 y fr(24)172 380 y fn(During)j(k)o(ernel)g(initialization,)e(PC-Choices)
j(programs)d(the)i(Programmabl)o(e)e(In)o(terrupt)j(Con-)37 465 y(trollers)14
b(to)h(use)g(these)h(in)o(terrupt)e(v)o(ectors)g(for)h(external)g(in)o(terrup\
ts.)37 611 y fi(2.3.3.2)52 b(T)l(ables)17 b(for)g(in)o(terrupt)f(and)i(except\
ion)f(handling)37 725 y fn(PC-Choices)c(uses)g(the)f(arra)o(y)g fg(IDT)f fn
(to)h(represen)o(t)h(the)g(In)o(terrupt)f(Descriptor)g(T)l(able.)1515 709 y fr
(25)1571 725 y fn(All)g(en)o(tries)g(in)g fg(IDT)37 810 y fn(are)17 b(In)o
(terrupt)h(Gates)e(that)g(p)q(oin)o(t)h(to)g(di\013eren)o(t)f(handlers.)1086
794 y fr(26)1149 810 y fn(These)i(handlers)f(are)g(assem)o(bler)e(routines)37
895 y(named)e fg(Interrupt0)h fn(to)e fg(Interrupt255)p fn(,)h(where)h fg(Int\
erruptN)g fn(is)f(a)f(routine)h(that)f(pushes)i(a)f(dumm)o(y)e(error)h(co)q
(de)37 979 y(on)o(to)f(the)h(stac)o(k,)f(if)h(the)f(exception)h(has)g(not)f
(pushed)i(an)f(error)f(co)q(de)h(already)l(,)g(switc)o(hes)f(to)g(the)h(k)o
(ernel)f(data)37 1064 y(segmen)o(t,)j(and)g(branc)o(hes)i(to)e(the)g(address)
h(sp)q(eci\014ed)h(b)o(y)f(the)g fg(N)p fn(th)g(en)o(try)f(in)g(the)h(arra)o
(y)f fg(InterruptHo)q(oks)p fn(.)1874 1048 y fr(27)108 1149 y fn(When)h(unini\
tialized,)e(eac)o(h)i(en)o(try)f(in)g(the)g(arra)o(y)g fg(InterruptHo)q(oks)i
fn(con)o(tains)d(the)i(address)f(of)g(the)h fg(Call-)37 1234 y(Stra)o(yInterr\
upt\(\))20 b fn(or)e fg(CallStra)o(yInterruptWithErro)o(rCo)q(de\(\))g fn(fun\
ctions)h(whic)o(h)f(displa)o(y)g(messages)g(on)g(the)37 1318 y(console)i(and)
g(terminate)f(the)h(k)o(ernel.)720 1302 y fr(28)791 1318 y fn(After)g(k)o(ern\
el)g(initialization,)e(eac)o(h)i(en)o(try)g(in)g fg(InterruptHo)q(oks)37 1403
y fn(con)o(tains)h(the)h(address)f(of)h(metho)q(d)e fg(i386CPU::interruptAssi\
st\(\))p fn(.)40 b(The)22 b(metho)q(d)f(pushes)h(all)f(general-)37 1488 y(pur\
p)q(ose)e(registers)f(on)o(to)f(the)h(stac)o(k,)g(except)h(for)f(registers)f
(BX,)h(BP)l(,)g(SI)h(and)g(DI,)f(whic)o(h)g(are)g(sa)o(v)o(ed)g(in)37 1572 y
(global)c(v)m(ariables)g(sa)o(v)o(eBX,)g(sa)o(v)o(eBP)l(,)h(sa)o(v)o(eSI)g
(and)g(sa)o(v)o(eDI.)1079 1556 y fr(29)1130 1572 y fn(After)g(that,)f(the)h
(metho)q(d)f(calls)g fg(i386CPU::-)37 1657 y(ha)o(rdw)o(a)o(reInterruptAssist\
\(\))p fn(,)j(restores)d(the)i(registers)e(and)h(returns)g(to)g(the)g(in)o
(terrupted)g(co)q(de.)108 1742 y(When)d fg(i386CPU::ha)o(rdw)o(a)o(reInterrup\
tAssist\(\))g fn(is)g(called,)g(information)d(ab)q(out)j(the)g(in)o(terrupt)f
(is)g(passed)37 1826 y(in)17 b(as)f(a)h(parameter)e(in)h(the)h(form)e(of)h
(a)g fg(stackF)o(rame)h fn(structure.)1170 1810 y fr(30)1231 1826 y fn(This)f
(structure)h(con)o(tains)f(the)g(v)m(alues)37 1911 y(of)g(registers,)e(the)i
(error)e(co)q(de)j(and)e(the)h(in)o(terrupt)f(or)g(exception)h(v)o(ector)f
(n)o(um)o(b)q(er.)20 b(This)15 b(v)o(ector)g(n)o(um)o(b)q(er)37 1996 y(is)j
(used)h(as)e(an)h(index)h(in)o(to)e(the)h fg(Exception)h fn(T)l(able)f(of)g
(the)g(CPU)g(to)f(obtain)g(the)h fg(Exception)i fn(ob)s(ject)d(that)37 2080 y
(should)j(handle)g(this)f(exception)h(or)f(in)o(terrupt.)33 b fg(Exception::r\
aise\(\))20 b fn(is)f(the)h(metho)q(d)f(that)g(is)g(called)h(b)o(y)37 2156 y
750 2 v 74 2183 a fs(24)107 2199 y fp(The)j(range)g(of)g(v)o(ectors)h(ma)o
(y)e(b)q(e)i(c)o(hanged)g(b)o(y)f(altering)g(the)h(v)n(alue)f(of)g(the)g fa
(HARD)o(W)m(ARE)r 12 2 v 11 w(V)o(ecto)o(rs)g fp(constan)o(t)h(in)37 2245 y fa
(Includes/MachineDep)q(endent/PC/V)o(ecto)o(rs.h)p fp(.)74 2274 y fs(25)107
2290 y fa(IDT)12 b fp(is)h(de\014ned)h(in)f fa(Pro)q(cesso)o(rDep)q(endent/i3\
86/i386CPU.cc)p fp(.)74 2320 y fs(26)107 2336 y fp(The)g fa(IDT)f fp(en)o(tri\
es)h(are)g(set)g(b)o(y)g fa(PCi386CPU::installExceptions\(\))p fp(.)74 2366 y
fs(27)107 2382 y fp(The)18 b(routines)g fa(Interrupt0)g fp(through)h fa(Inter\
rupt255)e fp(are)i(de\014ned)g(in)f fa(Pro)q(cesso)o(rDep)q(endent/i386/i386I\
ntrExcp.s)p fp(.)31 b(The)37 2427 y(arra)o(y)14 b fa(InterruptHo)q(oks)e fp
(is)h(de\014ned)h(in)f fa(Pro)q(cesso)o(rDep)q(endent/i386/i386CPU.cc)p fp
(.)74 2457 y fs(28)107 2473 y fa(CallStra)o(yInterrupt\(\))j fp(and)i fa(Call\
Stra)o(yInterruptWithErro)o(rCo)q(de\(\))f fp(are)f(de\014ned)j(in)d fa(Pro)q
(cesso)o(rDep)q(endent/i386/i386Intr-)37 2519 y(Excp.s)p fp(.)74 2548 y fs
(29)107 2564 y fa(i386CPU::interruptAssist\(\))10 b fp(is)j(de\014ned)h(in)f
fa(Pro)q(cesso)o(rDep)q(endent/i386/i386ContextSwitching.s)p fp(.)74 2594 y fs
(30)107 2610 y fa(stackF)o(rame)f fp(is)h(de\014ned)h(in)f fa(Includes/Pro)q
(cesso)o(rDep)q(endent/i386/i386Context.h)p fp(.)952 2760 y fn(40)g eop bop 37
42 a fg(i386CPU::ha)o(rdw)o(a)o(reInterruptAssist\(\))14 b fn(to)e(handle)h
(the)g(exception)g(or)g(in)o(terrupt.)18 b fg(Exception)c fn(is)f(sub)q(class\
ed)37 126 y(to)i(pro)o(vide)g(sp)q(ecialized)g(implemen)o(tatio)o(ns)e(of)h
(the)i fg(basicRaise\(\))g fn(metho)q(d,)e(called)h(b)o(y)g fg(Exception::rai\
se\(\))p fn(.)37 211 y(F)l(or)j(example,)f fg(i386GeneralProtectionException)
j fn(is)e(a)g(sub)q(class)g(of)g fg(Exception)h fn(whose)f(implemen)o(tatio)o
(n)37 296 y(of)d(the)h fg(basicRaise\(\))g fn(metho)q(d)e(handles)h(the)h(Gen\
eral)e(Protection)g(Exception.)37 444 y fi(2.3.3.3)52 b(En)o(tries)16 b(in)h
(the)h(Exception)g(T)l(able)37 558 y fn(The)j(13th)e(en)o(try)h(in)g(the)g fg
(Exception)h fn(T)l(able,)g(corresp)q(onding)f(to)g(the)g(General)f(Protectio\
n)g(Exception,)37 643 y(p)q(oin)o(ts)e(to)g(an)h(instance)f(of)g fg(i386Gener\
alProtectionException)p fn(,)j(while)d(the)g(14th)g(en)o(try)g(p)q(oin)o(ts)g
(to)g(an)g(in-)37 727 y(stance)j(of)f fg(i386P)o(ageF)o(aultException)p fn
(.)704 711 y fr(31)775 727 y fn(The)h(24th)f(en)o(try)g(corresp)q(onds)h(to)f
(the)h(p)q(erio)q(dic)f(timer)f(in)o(ter-)37 812 y(rupt)k(and)g(p)q(oin)o(ts)
f(to)g(a)g fg(TimerManagerException)g fn(ob)s(ject.)1111 795 y fr(32)1187 812
y fn(En)o(tries)g(24)g(through)g(39)g(p)q(oin)o(t)g(to)g(the)37 897 y fg(Debu\
gStra)o(yException)e fn(ob)s(ject)d(or)g(to)g(di\013eren)o(t)g fg(Aw)o(aitedI\
nterruptException)k fn(ob)s(jects)c(that)g(will)f(forw)o(ard)37 981 y(the)g
(in)o(terrupt)e(to)g(16-bit)g(in)o(terrupt)h(routines)f(\(see)h(Section)g(2.4\
.3.4\).)1267 965 y fr(33)1321 981 y fn(All)f(other)h(en)o(tries)f(in)h(the)g
fg(Excep-)37 1066 y(tion)i fn(T)l(able)f(p)q(oin)o(t)g(to)f(the)i fg(DebugStr\
a)o(yException)h fn(ob)s(ject.)108 1151 y(A)11 b fg(DebugStra)o(yException)j
fn(ignores)c(the)h(exception)h(that)e(w)o(as)h(raised.)18 b(If)11 b(the)h(exc\
eption)f(w)o(as)f(generated)37 1235 y(externally)16 b(\(e.g.)25 b(an)16 b(in)
o(terrupt)g(generated)h(b)o(y)g(an)g(I/O)g(device\),)g(the)g fg(DebugStra)o
(yException)i fn(sends)e(the)37 1320 y(end-of-in)o(terrupt)i(command)e(to)h
(the)h(master)e(Programm)o(able)f(In)o(terrupt)i(Con)o(troller)f(to)h(ac)o
(kno)o(wledge)37 1405 y(the)f(in)o(terrupt.)22 b(Since)17 b(the)f(PC)g(arc)o
(hitecture)g(uses)g(a)g(dual-lev)o(el)g(cascading)f(in)o(terrupt)h(structure,)
g(some)37 1489 y(in)o(terrupts)d(m)o(ust)e(b)q(e)j(ac)o(kno)o(wledged)f(b)o
(y)g(sending)g(the)h(end-of-in)o(terrupts)f(to)f(b)q(oth)i(the)f(sla)o(v)o
(e)f(and)h(master)37 1574 y(Programmable)k(In)o(terrupt)j(Con)o(trollers.)33 b
(If)21 b(the)f(exception)h(w)o(as)e(not)h(generated)g(externally)f(\(e.g.)35 b
(a)37 1659 y(math)14 b(exception\),)h(the)g fg(DebugStra)o(yException)i fn
(displa)o(ys)d(a)h(stac)o(k)f(bac)o(ktrace)h(and)g(w)o(aits)f(for)g(a)h(k)o
(eypress.)37 1807 y fi(2.3.3.4)52 b(Aw)o(aitedIn)o(terruptException)37 1921 y
fn(An)18 b fg(Aw)o(aitedInterruptExcep)q(tion)j fn(is)c(asso)q(ciated)g(with)
g(a)g(single)g fg(GraciousSemapho)o(re)h fn(on)g(whic)o(h)f(the)h fg(V\(\))37
2006 y fn(op)q(eration)d(is)g(in)o(v)o(ok)o(ed)f(ev)o(ery)h(time)f(the)h(exce\
ption)h(is)f(raised.)k(The)d fg(Aw)o(aitedInterruptException::a)o(w)o(ait\(\))
37 2090 y fn(metho)q(d)g(simply)g(in)o(v)o(ok)o(es)f(the)i fg(P\(\))f fn(op)q
(eration)g(on)h(the)g fg(GraciousSemapho)o(re)p fn(.)24 b(Whenev)o(er)17 b
(the)g(exception)37 2175 y(is)f(raised,)f(the)i fg(InterruptPro)q(cess)h fn
(blo)q(c)o(king)d(on)h(the)g fg(GraciousSemapho)o(re)g fn(is)g(resumed)f(imme\
diately)l(,)e(due)37 2260 y(to)i(the)g(seman)o(tics)f(of)g(the)i fg(GraciousS\
emapho)o(re)p fn(.)37 2341 y 750 2 v 74 2368 a fs(31)107 2384 y fp(The)26 b fa
(i386GeneralProtectionException)h fp(and)g fa(i386P)o(ageF)o(aultException)g
fp(are)g(added)g(to)g(the)f fa(Exception)g fp(T)m(able)h(in)37 2429 y fa(Pro)
q(cesso)o(rDep)q(endent/i386/i386CPU.cc)p fp(.)74 2459 y fs(32)107 2475 y fp
(The)13 b fa(TimerManagerException)g fp(is)g(added)h(to)f(the)g fa(Exception)
f fp(T)m(able)h(in)g fa(MachineDep)q(endent/PC/PCi386CPU.cc)p fp(.)74 2505 y
fs(33)107 2521 y fp(The)h fa(DebugStra)o(yExceptions)g fp(are)h(added)h(to)e
(the)h fa(Exception)f fp(T)m(able)g(in)h fa(MachineDep)q(endent/PC/PCi386CPU.\
cc)p fp(.)k(The)37 2566 y fa(Aw)o(aitedInterruptExceptions)12 b fp(are)h(adde\
d)h(to)f(the)h fa(Exception)e fp(T)m(able)h(in)f fa(MachineDep)q(endent/PC/Vi\
rtualPCException.cc)p fp(.)952 2760 y fn(41)g eop bop 37 42 a fi(2.3.3.5)52 b
(Tim)o(er)14 b(in)o(terrupt)37 156 y fn(Exception)f(n)o(um)o(b)q(er)e(24)h
(corresp)q(onds)h(to)e(the)i(hardw)o(are)e(timer)g(in)o(terrupt.)18 b(During)
12 b(k)o(ernel)g(initialization,)37 240 y(the)17 b(hardw)o(are)e(timer)g(is)g
(programmed)f(to)h(generate)h(in)o(terrupts)g(at)f(a)h(\014xed)h(frequency)l
(.)24 b(The)16 b fg(Exception)37 325 y fn(ob)s(ject)11 b(that)f(handles)h(thi\
s)g(exception)g(is)f(of)h(class)f fg(TimerManagerException)p fn(.)1378 308 y
fr(34)1433 325 y fn(The)h fg(basicRaise\(\))h fn(metho)q(d)37 410 y(of)k(this)
g(exception)g(\014rst)g(calls)f(the)h(System)f(Timer)g(to)g(incremen)o(t)g
(the)h(tic)o(k)g(coun)o(ter,)g(and)g(then)g(informs)37 494 y(the)f(Timer)e
(Manager)h(and)g(P)o(erio)q(dic)g(Manager)g(ab)q(out)g(the)h(timer)e(tic)o
(k.)18 b(Subsequen)o(tly)l(,)d(these)g(managers)37 579 y(ma)o(y)20 b(expire)h
fg(TimeoutTimers)f fn(or)h fg(P)o(erio)q(dicTimers)p fn(.)36 b(The)22 b fg
(TimerManagerException)e fn(ma)o(y)g(b)q(e)h(required)37 664 y(to)e(ac)o(kno)
o(wledge)f(the)i(timer)d(tic)o(k)h(b)o(y)h(resetting)g(an)g(I/O)g(p)q(ort.)32
b(This)18 b(is)h(done)h(only)e(if)h(the)g(PS2Timer)37 748 y(parameter)g(is)g
(turned)i(on)f(in)f(the)h(system)f(con\014guration)g(\014le.)35 b(Lastly)l
(,)20 b(the)g fg(TimerManagerException)37 833 y fn(noti\014es)i(the)f fg(PCTi\
mesliceTimer)f fn(ab)q(out)h(the)h(timer)d(tic)o(k.)38 b(The)22 b fg(PCTimesl\
iceTimer)d fn(ma)o(y)h(preempt)h(a)37 918 y fg(Pro)q(cess)16 b fn(if)f(its)g
(timeslice)e(has)i(expired.)37 1098 y fd(2.4)70 b(Virtual)24 b(PC)e(Subsystem)
37 1228 y fn(The)14 b(virtual)d(PC)i(subsystem)f(enables)h(PC-Choices)g(to)f
(run)h(16-bit)f(programs,)f(suc)o(h)i(as)g(BIOS)h(functions,)37 1313 y(DOS)i
(functions)f(and)g(DOS)g(applications.)j(Conceptually)l(,)d(the)g(virtual)e
(PC)i(subsystem)f(con)o(trols)g(a)g(\\16-)37 1397 y(bit)21 b(virtual)f(mac)o
(hine")g(for)h(executing)h(16-bit)e(programs.)37 b(A)21 b(sp)q(ecial)g(featur\
e)g(is)g(pro)o(vided)g(to)g(allo)o(w)37 1482 y(e\016cien)o(t)15 b(comm)o(unic\
ati)o(on)d(from)h(16-bit)g(programs)f(to)i(32-bit)g(PC-Choices)g(programs.)j
(This)d(subsystem)37 1567 y(is)20 b(highly-sp)q(eci\014c)g(to)f(the)g(386)g
(micropro)q(cessor)e(and,)k(compared)d(to)h(other)g(subsystems,)h(is)f(the)g
(least)37 1651 y(p)q(ortable)c(one.)37 1802 y ff(2.4.1)56 b(Virtual)20 b(PC)f
(Mo)r(del)37 1916 y fn(The)c fg(VirtualPC)g fn(app)q(ears)g(to)e(other)i(subs\
ystems)e(in)h(the)h(PC-Choices)f(k)o(ernel)g(as)g(a)g(dispatc)o(her)g(for)g
(16-bit)37 2001 y(programs)e(\(Figure)h(2.20\).)18 b(Since)d(the)f(PC-Choices)
g(k)o(ernel)g(runs)g(in)g(the)g(nativ)o(e)g(32-bit)f(mo)q(de)g(of)h(the)g(386)
37 2086 y(micropro)q(cessor,)j(it)h(ma)o(y)f(not)h(execute)h(16-bit)f(program\
s)e(directly)i(b)o(y)g(branc)o(hing)g(to)g(them.)28 b(Instead,)37 2170 y(the)
16 b fg(VirtualPC)f fn(pro)o(vides)g(metho)q(ds)f(that)h(can)g(b)q(e)h(called)
f(b)o(y)g(the)g(k)o(ernel)g(to)g(run)g(the)g(16-bit)g(programs.)108 2255 y
(T)l(raditionally)l(,)k(16-bit)h(soft)o(w)o(are)f(running)i(on)f(8086-based)g
(PCs)g(system)f(services)i(through)f(in)o(ter-)37 2340 y(rupt)f(v)o(ectors)f
(b)o(y)g(generating)g(soft)o(w)o(are)f(in)o(terrupts)g(\(via)h(the)g(INT)h
(instruction\).)29 b(P)o(arameter)16 b(passing)37 2424 y(is)g(ac)o(hiev)o(ed)
f(trivially)e(b)o(y)j(passing)f(v)m(alues)g(through)h(the)f(pro)q(cessor)h
(registers.)j(On)e(these)e(mac)o(hines,)f(the)37 2505 y 750 2 v 74 2532 a fs
(34)107 2548 y fa(TimerManagerException)f fp(is)g(de\014ned)h(in)f fa(Machine\
Dep)q(endent/PC/PCTimerManager.cc)p fp(.)952 2760 y fn(42)g eop bop 513 652 a
14587755 18945146 13551042 13551042 37429821 44336906 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 206 206 569 674
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 1 -0 -0 1 191.5 99 ] concat
%I 20
182 441
182 393
170 393
170 412
30 412
30 142
365 142
365 412
226 412
226 393
215 393
215 442
226 442
226 423
379 423
379 131
17 131
17 423
170 423
170 441
20 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 333.987 520.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 225.561 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 259.117 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 292.674 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 326.23 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 421.061 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 454.617 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 488.174 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 521.73 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 191.5 -63 ] concat
%I
37 311 358 361 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 191.5 -5.99995 ] concat
%I
37 311 358 361 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 191.5 51.0001 ] concat
%I
37 311 358 361 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 191.5 108 ] concat
%I
37 311 358 361 Rect
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 334.5 451 ] concat
%I
[
(DOS Applications)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 342.5 394 ] concat
%I
[
(Device Drivers)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 372 335 ] concat
%I
[
(DOS)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 370 280 ] concat
%I
[
(BIOS)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 203.987 560.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 457.987 548.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 194.5 99 ] concat
%I
196 457 196 361 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 478 490 ] concat
%I
[
(16-bit mode)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 478 559 ] concat
%I
[
(32-bit mode)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 364 221 ] concat
%I
[
(Virtual PC)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 283 652 ] concat
%I
[
(Process)
] Text
End

Begin %I Rect
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 178 222.5 ] concat
%I
158 372 235 402 Rect
End

Begin %I Rect
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 208 222.5 ] concat
%I
400 142 480 172 Rect
End

Begin %I Rect
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 298 222.5 ] concat
%I
376 258 450 283 Rect
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 219.987 341.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 447.987 284.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 371.987 212.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

End %I eop

showpage

%%Trailer

end

endTexFig
341 1950 a fi(Figure)17 b(2.20)p fn(:)i(The)d fg(VirtualPC)f fn
(as)g(a)g(dispatc)o(her)g(of)g(16-bit)f(programs)952 2760 y(43)g eop bop 37 42
a fn(in)o(terrupt)16 b(v)o(ectors)f(are)g(connected)i(to)e(DOS)h(and)g(BIOS)h
(routines)f(that)f(pro)o(vide)g(system)g(services,)g(suc)o(h)37 126 y(as)20 b
(\014le)f(services,)h(disk)g(services)f(and)h(console)f(services.)33 b(BIOS)
20 b(also)f(pro)o(vides)g(in)o(terrupt)g(handlers)g(to)37 211 y(handle)d(hard\
w)o(are)e(in)o(terrupts)h(generated)g(b)o(y)g(I/O)h(devices.)108 296 y(The)22
b(primary)e(purp)q(ose)j(of)e(the)h fg(VirtualPC)h fn(is)e(to)h(pro)o(vide)f
(access)h(to)f(DOS)i(and)f(BIOS)h(services.)37 380 y(Although)14 b(the)h fg
(VirtualPC)f fn(is)g(only)f(capable)i(of)e(dispatc)o(hing)h(16-bit)f(in)o(ter\
rupt)g(handlers,)h(this)g(capabilit)o(y)37 465 y(is)k(adequate)g(for)f(access\
ing)g(all)g(DOS)h(and)g(BIOS)h(services.)28 b(DOS)18 b(applications)e(ma)o
(y)g(b)q(e)j(executed)g(b)o(y)37 550 y(calling)h(a)h(DOS)g(service)f(to)h(dis\
patc)o(h)f(applications.)35 b(In)22 b(addition,)f(PC-Choices)f(uses)h(the)g
(in)o(terrupt)37 634 y(handlers)16 b(de\014ned)g(in)f(BIOS)i(to)d(handle)i
(I/O)f(devices.)108 719 y(A)i(less)g(imp)q(ortan)o(t)e(function)i(of)f(the)i
fg(VirtualPC)f fn(is)g(to)f(allo)o(w)g(PC-Choices)g(to)h(execute)h(user-de\
\014ned)37 804 y(16-bit)13 b(device)g(driv)o(ers.)18 b(These)c(driv)o(ers)e
(are)g(accessed)i(through)f(in)o(terrupt)f(v)o(ectors)g(as)g(w)o(ell.)18 b
(Examples)12 b(of)37 888 y(user-de\014ned)k(device)e(driv)o(ers)f(are)g(the)g
(mouse)g(driv)o(er)g(and)g(the)h(pac)o(k)o(et)f(driv)o(er)g(for)g(Ethernet)g
(net)o(w)o(orking.)108 973 y(An)i(activ)o(e)f(thread)h(of)g(con)o(trol)e(exec\
uting)i(16-bit)f(co)q(de)i(in)e(the)h fg(VirtualPC)h fn(is)e(abstracted)g(b)o
(y)h(a)g fg(Virtu-)37 1058 y(alPCT)l(ask)p fn(.)26 b(In)18 b(order)e(to)h(exe\
cute)g(a)g(16-bit)f(routine)h(in)f(the)i fg(VirtualPC)p fn(,)e(the)i(k)o(erne\
l)e(programmer)e(m)o(ust)37 1142 y(\014rst)h(call)f(the)h fg(VirtualPC)g fn
(to)g(allo)q(cate)e(a)i fg(VirtualPCT)l(ask)p fn(,)h(and)f(then)g(call)f(the)
h fg(VirtualPC)h fn(to)e(dispatc)o(h)g(the)37 1227 y(task.)19 b(After)12 b
(a)h fg(VirtualPCT)l(ask)g fn(has)g(\014nished)h(running)e(a)h(16-bit)f(routi\
ne,)g(it)g(ma)o(y)f(b)q(e)j(dispatc)o(hed)e(again.)1876 1211 y fr(35)108 1312
y fn(Some)j(hardw)o(are)h(in)o(terrupts)f(are)h(serviced)g(with)g(the)g(help)
g(of)g fg(VirtualPCT)l(asks)p fn(.)24 b(F)l(or)16 b(example,)f(disk)37 1396 y
(in)o(terrupts)c(m)o(ust)f(b)q(e)h(forw)o(arded)g(to)f(the)i(disk)f(in)o(terr\
upt)f(routine)h(in)g(BIOS)h(in)f(order)g(for)g(BIOS)h(to)f(function)37 1481 y
(prop)q(erly)l(.)40 b(Hence)23 b(a)e fg(VirtualPCT)l(ask)i fn(is)e(dispatc)o
(hed)h(to)f(execute)i(the)f(BIOS)g(disk)g(in)o(terrupt)f(routine)37 1566 y
(whenev)o(er)16 b(a)f(disk)g(in)o(terrupt)f(o)q(ccurs.)108 1650 y(Lo)o(w)21 b
(memory)l(,)e(de\014ned)j(as)f(memory)d(b)q(eneath)k(the)f(one-megab)o(yte)e
(address)i(b)q(oundary)l(,)h(is)f(freely)37 1735 y(accessible)16 b(b)o(y)g
(16-bit)g(programs)e(and)i(32-bit)f(PC-Choices)h(application)f(programs,)e
(pro)o(viding)i(a)h(c)o(heap)37 1820 y(means)h(of)g(comm)o(unication)d(b)q
(et)o(w)o(een)k(the)g(t)o(w)o(o)e(t)o(yp)q(es)i(of)f(programs.)25 b fg(Virtua\
lPC)18 b fn(in)o(terceptors)e(a\013ord)h(a)37 1905 y(di\013eren)o(t)h(kind)h
(of)f(comm)o(unication)e(b)q(et)o(w)o(een)j(the)f(t)o(w)o(o)g(t)o(yp)q(es)g
(of)g(programs.)28 b(In)20 b(this)e(comm)o(unicatio)o(n)37 1989 y(sc)o(heme,)
g(a)g(PC-Choices)g(application)e(program)g(ma)o(y)g(\\in)o(tercept")h(an)h
(in)o(terrupt)g(v)o(ector)f(and)h(susp)q(end)37 2074 y(itself)f(un)o(til)g
(a)g(16-bit)g(routine)g(generates)g(that)g(particular)f(soft)o(w)o(are)g(in)o
(terrupt)h(\(via)f(the)i(INT)g(instruc-)37 2159 y(tion\).)i(The)c(v)m(alues)g
(of)f(the)g(registers)f(when)i(the)g(soft)o(w)o(are)e(in)o(terrupt)g(w)o(as)h
(generated)h(are)f(passed)h(to)e(the)37 2243 y(application)i(program,)f(so)h
(the)h(16-bit)f(routine)g(can)h(pass)f(sp)q(ecial)h(information)d(through)i
(the)h(registers.)37 2328 y(The)h(16-bit)e(routine)h(that)f(generated)i(the)f
(in)o(terrupt)f(will)g(not)h(w)o(ait)f(for)g(the)i(in)o(tercepting)e(program)
f(to)37 2413 y(resp)q(ond)k(\(Figure)e(2.21\).)26 b fg(VirtualPC)18 b fn(in)o
(terceptors)f(ma)o(y)f(b)q(e)i(used)h(to)e(sync)o(hronize)h(the)g(execution)f
(of)h(a)37 2496 y 750 2 v 74 2523 a fs(35)107 2539 y fp(In)c(the)h(presen)o
(t)g(implemen)o(tation,)d(programmers)i(should)h(not)g(deallo)q(cate)f(an)o
(y)h fa(VirtualPCT)m(asks)e fp(b)q(ecause)j(the)f(deallo-)37 2585 y(cated)f
(memory)d(w)o(ould)i(not)h(b)q(e)f(reused.)952 2760 y fn(44)g eop bop 37 42 a
fn(16-bit)18 b(program)e(with)h(the)h(execution)h(of)e(a)h(32-bit)f(program.)
27 b(In)18 b(a)g(later)f(c)o(hapter,)i(w)o(e)e(shall)h(see)g(ho)o(w)37 126 y
fg(VirtualPC)e fn(in)o(terceptors)e(are)h(applied)g(to)g(build)g(device)h(dri\
v)o(ers.)93 185 y
27849364 28417720 855162 4473159 39863746 44271124 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 13 68 606 673
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -192 6 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 0.5 -0 -0 0.5 205 330 ] concat
%I 10
313 383
7 383
7 192
18 195
25 190
33 195
33 362
312 362
318 370
309 376
10 Poly
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 225.561 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 259.117 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 292.674 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 326.23 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 52.487 346.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 -4.01303 534.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 162 512 ] concat
%I
[
(16-bit mode)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 164 544 ] concat
%I
[
(32-bit mode)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 88 390 ] concat
%I
[
([Ready])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 28 669 ] concat
%I
[
([Running])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 -88 204 ] concat
%I 3
144 377
144 362
169 331
3 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 131 593 ] concat
%I
[
(Interrupt)
(vector)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 -88 204 ] concat
%I
237 359 237 332 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 93 653 ] concat
%I
[
(32-bit process)
(intercepts interrupt)
(vector and blocks)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 132 8 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 0.5 -0 -0 0.5 205 330 ] concat
%I 10
313 383
7 383
7 192
18 195
25 190
33 195
33 362
312 362
318 370
309 376
10 Poly
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 225.561 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 259.117 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 292.674 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 326.23 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 376.487 348.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 319.987 536.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 236 206 ] concat
%I 5
196 265
194 290
169 319
155 282
166 259
5 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 462 460 ] concat
%I
[
(16-bit process generates)
(software interrupt,)
(passing register values)
(to the 32-bit process)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 405 392 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 352 671 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -42 62 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -1.52588e-05 -362 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 0.5 -0 -0 0.5 205 330 ] concat
%I 10
313 383
7 383
7 192
18 195
25 190
33 195
33 362
312 362
318 370
309 376
10 Poly
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 225.561 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 259.117 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 292.674 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 326.23 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 244.487 -21.9241 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 187.987 166.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 280 21.9999 ] concat
%I
[
([Ready])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 220 301 ] concat
%I
[
([Running])
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -164 ] concat
%I 3
172 332
183 358
159 386
3 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 278 263 ] concat
%I
[
(32-bit process)
(resumes execution)
] Text
End

End %I eop

Begin %I Line
%I b 65535
3 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 2 -0 -0 2 -101 -267 ] concat
%I
215 340 184 312 Line
%I 0.5
End

Begin %I Line
%I b 65535
3 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 2 -0 -0 2 -101 -267 ] concat
%I
165 367 203 367 Line
%I 0.5
End

End %I eop

showpage

%%Trailer

end

endTexFig
247 2083 a fi(Figure)h(2.21)p fn(:)j(In)o(terpro)q(cess)15 b
(comm)o(unication)d(through)j(an)g(in)o(tercepted)g(v)o(ector)108 2217 y(Appl\
ication)10 b(programs)e(are)i(only)g(allo)o(w)o(ed)f(to)h(access)h(the)f fg
(VirtualPC)h fn(through)f(the)h fg(VirtualPCInterface)37 2302 y fn(\(Figure)g
(2.22\).)16 b(As)c(DOS,)f(BIOS)h(and)f(most)e(16-bit)i(soft)o(w)o(are)e(are)i
(non-reen)o(tran)o(t,)g(the)g fg(VirtualPCInterface)37 2387 y fn(is)20 b(need\
ed)h(to)e(sequen)o(tialize)h(all)e(calls)h(made)g(b)o(y)h(application)f(progr\
ams)e(to)j(the)g fg(VirtualPC)p fn(.)f(Another)37 2471 y(function)h(of)g(the)
g fg(VirtualPCInterface)h fn(is)f(to)f(cop)o(y)h(argumen)o(ts)e(for)i(the)g
(calls)f(to)g(16-bit)h(routines)f(from)37 2556 y(application)14 b(memory)e
(in)o(to)i(lo)o(w)f(memory)l(,)f(where)j(the)g(16-bit)f(routines)g(ma)o(y)f
(access)i(them,)f(and)g(to)h(cop)o(y)952 2760 y(45)g eop bop 37 42 a fn(the)
13 b(argumen)o(ts)d(bac)o(k)i(in)o(to)f(application)g(memory)l(.)17 b(The)12 b
(t)o(yp)q(e)g(of)g(cop)o(ying)f(to)h(b)q(e)h(done)f(ma)o(y)f(b)q(e)i(con)o
(trolled)37 126 y(b)o(y)h(the)f(application)f(programm)o(er)e(for)j(greater)f
(e\016ciency)l(.)20 b(F)l(or)13 b(example,)f(the)h(application)f(programm)o
(er)37 211 y(ma)o(y)h(sp)q(ecify)i(that)f(a)g(bu\013er)h(should)g(b)q(e)g(cop\
ied)g(in)o(to)e(lo)o(w)h(memory)e(prior)i(to)g(the)g(16-bit)g(call)g(but)g
(should)37 296 y(not)d(b)q(e)h(copied)f(bac)o(k)f(after)g(the)h(call,)g(b)q
(ecause)h(the)f(16-bit)f(routine)g(do)q(es)h(not)g(mo)q(dify)e(the)i(bu\013er\
.)19 b(Through)37 380 y(the)14 b fg(VirtualPCInterface)p fn(,)g(the)f(applica\
tion)f(programmer)e(ma)o(y)i(also)g(sp)q(ecify)i(the)f(in)o(terrupt)g(v)o(ect\
ors)f(to)h(b)q(e)37 465 y(in)o(tercepted.)327 524 y
20460758 28417720 7762247 8420065 33811824 44468469 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 118 128 514 676
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 134 255 ] concat
%I
2 222 364 288 Rect
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 232 300 ] concat
%I 6
45 495
45 374
92 337
260 337
301 374
301 494
6 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.738095 0 0 0.738095 93.8084 243.522 ] concat

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I
201 269 81 22 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 68 ] concat
%I
201 269 81 22 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.429415 -0 -0 0.429415 217.688 179.487 ] concat
%I
201 269 81 22 Elli
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
352 195 265 122 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
46 199 129 126 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
38 339 38 210 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 205 231 ] concat
%I
363 341 363 212 Line
%I 2
End

End %I eop

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 1 -0 -0 1 119.5 -1 ] concat
%I 20
182 441
182 393
170 393
170 412
30 412
30 142
365 142
365 412
226 412
226 393
215 393
215 442
226 442
226 423
379 423
379 131
17 131
17 423
170 423
170 441
20 Poly
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 153.561 384.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 187.117 384.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 220.674 384.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 254.23 384.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 349.061 384.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 382.617 384.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 416.174 384.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 449.73 384.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 257.987 229.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 173.987 542.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 338.987 562.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 406 390 ] concat
%I
[
(16-bit mode)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 406 459 ] concat
%I
[
(32-bit mode)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 419 161 ] concat
%I
[
(Virtual PC)
] Text
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 232 300 ] concat
%I 4
69 409
69 393
145 409
146 423
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 232 300 ] concat
%I 4
72 502
71 492
119 503
120 514
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 232 300 ] concat
%I 4
161 339
162 331
208 329
209 339
4 Poly
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 232 300 ] concat
%I 4
162 422
162 409
239 406
240 420
4 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 229.987 440.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 275.987 412.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 380 492 ] concat
%I
[
(Virtual PC Interface)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 191 521 ] concat
%I
[
(Semaphore)
] Text
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 1 -0 -0 1 134 102 ] concat
%I
178 347 178 254 Line
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 1 -0 -0 1 134 102 ] concat
%I 4
187 255
187 328
200 346
222 350
4 BSpl
%I 1
End

Begin %I Rect
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0.5 SetP
%I t
[ 1.09066 -0 -0 0.808889 114.613 277.52 ] concat
%I
5 356 367 369 Rect
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 419 592 ] concat
%I
[
(Kernel boundary)
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 100 174 ] concat
%I 3
271 441
236 421
224 372
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 100 174 ] concat
%I 3
153 429
179 422
210 373
3 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 251 639 ] concat
%I
[
(Application)
(Process)
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
355 2422 a fi(Figure)j(2.22)p fn(:)k(The)15 b fg(VirtualPCInte\
rface)h fn(for)f(application)f(programs)952 2760 y(46)g eop bop 37 42 a ff
(2.4.2)56 b(Virtual)20 b(PC)f(In)n(terface)37 156 y fn(Prior)c(to)g(calling)g
(a)g(16-bit)g(routine,)g(the)g fg(VirtualPC::newT)l(ask\(\))h fn(metho)q(d)f
(should)h(b)q(e)g(called)g(to)f(allo)q(cate)37 240 y(a)k(new)g fg(VirtualPCT)
l(ask)h fn(that)e(will)f(b)q(e)j(used)f(to)g(execute)g(the)g(routine.)30 b
(An)19 b(in)o(terrupt)f(routine)h(ma)o(y)e(b)q(e)37 325 y(executed)i(b)o(y)e
(in)o(v)o(oking)e(the)j fg(executeV)o(ecto)o(r\(\))g fn(metho)q(d)e(on)h(the)
g fg(VirtualPCT)l(ask)p fn(,)h(passing)f(the)g(in)o(terrupt)37 410 y(v)o(ecto\
r)12 b(n)o(um)o(b)q(er)g(as)f(the)i(\014rst)f(argumen)o(t.)17 b(The)12 b(seco\
nd)h(argumen)o(t,)e(of)g(t)o(yp)q(e)i fg(VirtualPCRegisters)p fn(,)h(sp)q(eci\
\014es)37 494 y(the)h(v)m(alues)f(to)g(b)q(e)g(loaded)g(in)o(to)f(the)i(regis\
ters)e(b)q(efore)h(executing)g(the)g(in)o(terrupt)g(routine.)19 b(Up)q(on)14 b
(comple-)37 579 y(tion,)19 b fg(VirtualPC::executeV)o(ecto)o(r\(\))f fn(retur\
ns)h(a)f(non-zero)g(v)m(alue)h(if)f(an)g(error)g(o)q(ccurred)h(while)e(execut\
ing)37 664 y(the)c(routine,)g(otherwise)f(it)g(returns)h(zero.)19 b(The)13 b
(second)h(argumen)o(t)d(of)h fg(VirtualPC::executeV)o(ecto)o(r\(\))h fn(is)g
(up-)37 748 y(dated)h(with)f(the)h(v)m(alues)g(presen)o(t)f(in)h(the)f(regist\
ers)g(just)g(after)g(the)h(16-bit)e(routine)i(had)f(\014nished)i(running.)37
833 y(Figure)f(2.23)g(sho)o(ws)g(ho)o(w)g(one)h(ma)o(y)e(use)i(a)f fg(Virtual\
PCT)l(ask)i fn(to)e(execute)h(the)g(BIOS)h(routine)e(that)g(prin)o(ts)g(a)37
918 y(c)o(haracter)h(on)o(to)f(the)i(screen.)551 901 y fr(36)196 969 y 1559 2
v 196 1999 a 2 1031 v 316 1016 a fk(//)46 b(A)o(l)r(lo)n(c)n(ate)21 b(a)i(new)
g(task)f(for)h(exe)n(cuting)g(the)g(BIOS)e(r)n(outine.)316 1072 y fg(VirtualP\
CT)l(ask)16 b fl(\003)p fg(task)g(=)f(TheVirtualPC.newT)l(ask)j(\(\);)316 1129
y fk(//)46 b(De\014ne)22 b(the)h(struct)g(for)g(storing)f(r)n(e)n(gister)g
(values.)316 1185 y fg(VirtualPCRegisters)17 b(regs;)316 1242 y fk(//)46 b
(Pr)n(ep)n(ar)n(e)22 b(the)h(ar)n(guments)f(for)h(the)g(BIOS)f(r)n(outine.)
316 1298 y(//)46 b(AH)22 b fn(=)h fk(0x09)h(sele)n(cts)d(vide)n(o)h(BIOS)g
(servic)n(e)g(9,)316 1354 y(//)46 b(AL)22 b fn(=)h fk(0x01)g(sele)n(cts)e(the)
i(smiley-fac)n(e)f(char)n(acter)i(to)f(b)n(e)316 1411 y(//)46 b(displaye)n
(d.)316 1467 y fg(regs.ax)14 b(=)i(0x0901;)316 1524 y fk(//)46 b(BH)22 b fn
(=)h fk(0x00)h(sele)n(cts)d(display)i(p)n(age)f(0,)316 1580 y(//)46 b(BL)22 b
fn(=)h fk(0x07)h(sele)n(cts)d(the)i(normal)f(text)h(attibute.)316 1637 y fg
(regs.b)o(x)15 b(=)g(0x0007;)316 1693 y fk(//)46 b(CX)22 b fn(=)h fk(0x01)g
(sp)n(e)n(ci\014es)e(that)j(the)f(char)n(acter)g(should)g(b)n(e)316 1750 y
(//)46 b(printe)n(d)22 b(only)h(onc)n(e.)316 1806 y fg(regs.cx)15 b(=)g(1;)
316 1863 y fk(//)46 b(Exe)n(cute)22 b(interrupt)i(ve)n(ctor)e(0x10)i(for)f
(vide)n(o)f(BIOS)g(servic)n(e,)316 1919 y(//)46 b(p)n(assing)21 b(the)i(desir)
n(e)n(d)f(r)n(e)n(gister)g(values.)316 1975 y fg(task)16 b fl(!)g fg(executeV)
o(ecto)o(r)g(\(0x10,)e(®s\);)1753 1999 y 2 1031 v 196 2001 a 1559 2 v 314
2078 a fi(Figure)i(2.23)p fn(:)k(Calling)13 b(BIOS)k(from)c(the)i(k)o(ernel)g
(to)g(displa)o(y)f(a)h(c)o(haracter)108 2221 y(Calling)e(a)g(16-bit)h(routine)
f(from)f(an)i(application)f(program)f(is)i(done)g(sligh)o(tly)f(di\013eren)o
(t.)18 b(First,)13 b(appli-)37 2306 y(cation)j(programs)f(cannot)h(directly)g
(in)o(v)o(ok)o(e)g(metho)q(ds)f(on)i(the)g fg(VirtualPC)p fn(.)f(They)h(m)o
(ust)e(dispatc)o(h)h(16-bit)37 2391 y(programs)10 b(b)o(y)i(in)o(v)o(oking)f
(metho)q(ds)g(on)i(the)f fg(VirtualPCInterface)p fn(,)h(whic)o(h)f(ma)o(y)e
(b)q(e)j(obtained)f(from)e(the)i fg(Stan-)37 2476 y(da)o(rdNameServer)18 b fn
(b)o(y)f(lo)q(oking)g(up)h(the)f(name)g(\\virtualPCIn)o(terface".)25 b(Second\
,)18 b(application)f(programs)37 2557 y 750 2 v 74 2583 a fs(36)107 2599 y fa
(TheVirtualPC)12 b fp(is)h(declared)g(in)g fa(Includes/MachineDep)q(endent/PC\
/VirtualPC.h)p fp(.)952 2760 y fn(47)g eop bop 37 42 a fn(do)12 b(not)g(use)g
(the)g fg(VirtualPCRegisters)h fn(structure)f(to)f(pass)h(register)f(v)m(alue\
s.)19 b(Instead,)12 b(they)g(sp)q(ecify)h(the)f(reg-)37 126 y(ister)j(v)m(alu\
es)h(through)f(an)h fg(VirtualPCArgs)f fn(ob)s(ject.)21 b(The)16 b(co)q(de)g
(in)f(Figure)g(2.24)f(is)h(functionally)g(iden)o(tical)37 211 y(to)g(the)g
(co)q(de)h(in)f(Figure)g(2.23.)568 194 y fr(37)196 268 y 1559 2 v 196 1354 a 2
1087 v 316 314 a fk(//)46 b(F)m(etch)22 b(the)h(VirtualPCInterfac)n(e)e(fr)n
(om)i(the)g(nameserver.)316 371 y fg(VirtualPCInterface)16 b fl(\003)p fg(vir\
tualPCInterface)f(=)h(Standa)o(rdNameServer)f fl(!)407 427 y fg(lo)q(okup)h
(\()p fh("virtualPCInterface")p fg(,)11 b fh("VirtualPCInterface")p fg(\);)
316 483 y fk(//)46 b(De\014ne)22 b(the)h(obje)n(ct)f(for)h(storing)f(r)n(e)n
(gister)g(values.)316 540 y fg(VirtualPCArgs)15 b(a)o(rgs;)316 596 y fk(//)46
b(Pr)n(ep)n(ar)n(e)22 b(the)h(ar)n(guments)f(for)h(the)g(BIOS)f(r)n(outine.)
316 653 y(//)46 b(AH)22 b fn(=)h fk(0x09)h(sele)n(cts)d(vide)n(o)h(BIOS)g(ser\
vic)n(e)g(9,)316 709 y(//)46 b(AL)22 b fn(=)h fk(0x01)g(sele)n(cts)e(the)i
(smiley-fac)n(e)f(char)n(acter)i(to)f(b)n(e)316 766 y(//)46 b(displaye)n(d.)
316 822 y fg(a)o(rgs.set)15 b(\(rAX,)g(0x0901\);)316 879 y fk(//)46 b(BH)22 b
fn(=)h fk(0x00)h(sele)n(cts)d(display)i(p)n(age)f(0,)316 935 y(//)46 b(BL)22 b
fn(=)h fk(0x07)h(sele)n(cts)d(the)i(normal)f(text)h(attibute.)316 992 y fg
(a)o(rgs.set)15 b(\(rBX,)g(0x0007\);)316 1048 y fk(//)46 b(CX)22 b fn(=)h fk
(0x01)g(sp)n(e)n(ci\014es)e(that)j(the)f(char)n(acter)g(should)g(b)n(e)316
1104 y(//)46 b(printe)n(d)22 b(only)h(onc)n(e.)316 1161 y fg(a)o(rgs.set)15 b
(\(rCX,)f(1\);)316 1217 y fk(//)46 b(Exe)n(cute)22 b(interrupt)i(ve)n(ctor)e
(0x10)i(for)f(vide)n(o)f(BIOS)g(servic)n(e,)316 1274 y(//)46 b(p)n(assing)21 b
(the)i(desir)n(e)n(d)f(r)n(e)n(gister)g(values.)316 1330 y fg(virtualPCInterf\
ace)15 b fl(!)h fg(executeV)o(ecto)o(r)h(\(VideoBIOSV)o(ecto)o(r,)e(&a)o(rgs\
\);)1753 1354 y 2 1087 v 196 1356 a 1559 2 v 180 1433 a fi(Figure)h(2.24)p fn
(:)k(Calling)13 b(BIOS)k(from)c(an)i(application)f(program)f(to)i(displa)o
(y)f(a)h(c)o(haracter)108 1564 y(P)o(assing)g(memory)f(bu\013ers)i(as)g(argum\
en)o(ts)f(for)g(16-bit)h(routines)g(is)g(easy)g(to)f(accomplish)g(with)h fg
(Virtu-)37 1649 y(alPCArgs)p fn(.)j(Programmers)9 b(ma)o(y)i(use)i(the)f(thre\
e)h(metho)q(ds)f(as)g(sho)o(wn)g(in)g(Figure)g(2.25.)18 b(All)12 b(three)g
(metho)q(ds)37 1733 y(require)k(the)f(programmer)d(to)i(sp)q(ecify)i(in)f(the)
g(bu\013er)h(argumen)o(t)d(the)i(address)h(of)e(the)i(the)f(bu\013er.)20 b
(When)37 1818 y(the)h(16-bit)f(call)f(is)h(made,)h(the)f fg(VirtualPCInterfac\
e)h fn(will)e(allo)q(cate)h(a)g(bu\013er)g(of)g(the)h(same)e(size)h(in)h(lo)o
(w)37 1903 y(memory)11 b(and)j(set)f(the)g(segmen)o(t)f(and)h(o\013set)g(regi\
sters)f(\(e.g.)18 b(segmen)o(t)12 b(=)i fg(rES)f fn(and)g(o\013set)f(=)i fg
(rBP)f fn(to)g(select)37 1987 y(the)j(register)e(pair)g fg(ES:BP)p fn(\))i
(to)e(p)q(oin)o(t)h(to)f(the)i(bu\013er)f(in)g(lo)o(w)f(memory)l(.)108 2072 y
(Three)i(di\013eren)o(t)e(metho)q(ds)h(are)g(a)o(v)m(ailable)f(for)h(the)g
(programmer)d(to)j(c)o(ho)q(ose)g(the)h(t)o(yp)q(e)f(of)g(cop)o(ying)g(to)37
2157 y(b)q(e)h(p)q(erformed)f(b)q(et)o(w)o(een)g(the)h(lo)o(w)e(memory)e(bu\
\013er)j(and)h(the)f(application)f(program's)f(bu\013er:)106 2278 y fl(\017)
22 b fg(VirtualPCArgs::setBu\013er\(\))16 b fn(selects)f(double-cop)o(ying,)g
(where)h(the)f(application)g(program's)d(bu\013er)151 2363 y(is)j(copied)h
(in)o(to)e(the)i(lo)o(w)e(memory)f(bu\013er)j(b)q(efore)f(making)f(the)i(16-b\
it)e(call,)g(and)i(the)g(lo)o(w)e(memory)151 2448 y(bu\013er)h(is)g(copied)g
(bac)o(k)g(in)o(to)g(the)g(application)f(program's)e(bu\013er)k(after)e(makin\
g)f(the)j(call.)37 2522 y 750 2 v 74 2548 a fs(37)107 2564 y fa(VideoBIOSV)o
(ecto)o(r)g fp(is)g(equiv)n(alen)o(t)h(to)f(the)g(v)n(alue)h(0x10.)28 b(See)
17 b fa(Includes/MachineDep)q(endent/PC/VirtualPCInterf)o(ace.h)37 2610 y fp
(for)c(a)g(list)f(of)h(other)h(sym)o(b)q(olic)e(constan)o(ts.)952 2760 y fn
(48)g eop bop 196 2 a 1559 2 v 196 411 a 2 410 v 316 48 a fi(v)o(oid)14 b fg
(VirtualPCArgs)h(::)20 b(setBu\013er)c(\(I86Register)f(segment,)407 105 y(I86\
Register)g(o\013set,)g fi(c)o(har)g fl(\003)p fg(bu\013er,)f fi(in)o(t)h fg
(bu\013erSize\))316 161 y fi(v)o(oid)f fg(VirtualPCArgs)h(::)20 b(setConstBu\
\013er)d(\(I86Register)e(segment,)407 218 y(I86Register)g(o\013set,)g fi(cons\
t)g(c)o(har)g fl(\003)p fg(bu\013er,)407 274 y fi(in)o(t)f fg(bu\013erSize)i
(=)f(-1\))316 330 y fi(v)o(oid)f fg(VirtualPCArgs)h(::)20 b(setUninitBu\013er)
d(\(I86Register)e(segment,)407 387 y(I86Register)g(o\013set,)g fi(c)o(har)g fl
(\003)p fg(bu\013er,)f fi(in)o(t)h fg(bu\013erSize\))1753 411 y 2 410 v 196
413 a 1559 2 v 361 490 a fi(Figure)i(2.25)p fn(:)j(Metho)q(ds)15 b(for)f(pass\
ing)h(bu\013ers)g(to)g(16-bit)f(programs)106 615 y fl(\017)22 b fg(VirtualPCA\
rgs::setConstBu\013er\(\))14 b fn(assumes)e(that)g(the)h(application)e(progra\
m's)g(bu\013er)h(will)g(remain)151 700 y(constan)o(t)19 b(during)h(the)g(16-b\
it)g(call,)g(meaning)e(that)i(the)g(application)f(program's)e(bu\013er)j(will)
f(b)q(e)151 784 y(copied)d(to)e(the)h(lo)o(w)f(memory)f(bu\013er,)i(but)g(the)
h(lo)o(w)e(memory)e(bu\013er)j(will)f(not)h(b)q(e)h(copied)f(bac)o(k.)106 902
y fl(\017)22 b fg(VirtualPCArgs::setUninitBu\013er\(\))13 b fn(assumes)d(that)
g(the)i(application)e(program's)f(bu\013er)i(is)g(uninitial-)151 987 y(ized,)
j(meaning)d(that)i(the)g(application)f(program's)f(bu\013er)i(will)f(not)h
(b)q(e)h(copied)f(to)g(the)g(lo)o(w)f(memory)151 1072 y(bu\013er,)h(but,)g
(after)f(the)h(16-bit)e(call,)h(the)h(lo)o(w)f(memory)e(bu\013er)j(will)e(b)q
(e)i(copied)g(in)o(to)f(the)h(application)151 1156 y(program's)g(bu\013er.)
108 1277 y(The)j(fourth)f(argumen)o(t)f(for)h(all)f(three)i(metho)q(ds)f(sp)q
(ecify)g(the)h(size)g(of)f(the)g(bu\013ers,)h(but)f(if)g(the)h(fourth)37 1361
y(argumen)o(t)g(for)g fg(VirtualPCArgs::setConstBu\013er\(\))i fn(is)f(omitte\
d,)e(the)i(third)g(argumen)o(t)e(is)h(assumed)g(to)h(b)q(e)37 1446 y(a)j(n)o
(ull-terminated)d(string,)j(and)f(the)h(size)f(of)h(the)f(bu\013er)h(will)e
(b)q(e)i(equal)g(to)f(the)g(length)h(of)f(the)g(string)37 1531 y(\(coun)o(tin\
g)c(the)g(terminating)e(n)o(ull\).)19 b(This)c(feature)g(is)g(con)o(v)o(enien)
o(t)g(for)f(the)i(programmer)c(to)i(pass)i(strings)37 1615 y(to)f(16-bit)f
(routines.)20 b(T)l(able)15 b(2.2)f(summaries)e(the)k(b)q(eha)o(viour)f(of)f
(the)i(metho)q(ds.)235 1713 y 1481 2 v 234 1769 a 2 57 v 259 1752 a fg(Virtua\
lPCArgs)598 1769 y 2 57 v 630 1752 a fn(Prior)e(to)h(call,)f(cop)o(y)h(bu\013\
er)1151 1769 y 2 57 v 1176 1752 a(After)g(the)g(call,)f(cop)o(y)i(bu\013er)
1715 1769 y 2 57 v 234 1826 a 2 57 v 259 1809 a(metho)q(d)598 1826 y 2 57 v
624 1809 a(from)d(application)h(memory)1151 1826 y 2 57 v 1231 1809 a(from)f
(lo)o(w)h(memory)f(to)1715 1826 y 2 57 v 234 1882 a 2 57 v 364 w 2 57 v 715
1865 a(to)i(lo)o(w)f(memory?)1151 1882 y 2 57 v 1225 1865 a(application)g(mem\
ory?)1715 1882 y 2 57 v 235 1884 a 1481 2 v 234 1940 a 2 57 v 259 1923 a fg
(setBu\013er\(\))598 1940 y 2 57 v 845 1923 a fn(y)o(es)1151 1940 y 2 57 v
1403 1923 a(y)o(es)1715 1940 y 2 57 v 234 1997 a 2 57 v 259 1980 a fg(setCons\
tBu\013er\(\))598 1997 y 2 57 v 845 1980 a fn(y)o(es)1151 1997 y 2 57 v 1409
1980 a(no)1715 1997 y 2 57 v 234 2053 a 2 57 v 259 2036 a fg(setUinitBu\013er\
\(\))598 2053 y 2 57 v 851 2036 a fn(no)1151 2053 y 2 57 v 1403 2036 a(y)o
(es)1715 2053 y 2 57 v 235 2055 a 1481 2 v 266 2132 a fi(T)l(able)k(2.2)p fn
(:)h(Beha)o(viour)c(of)g(metho)q(ds)f(for)h(passing)f(bu\013ers)h(to)g(16-bit)
f(routines)108 2271 y(Figure)f(2.26)f(is)h(a)g(sample)g(application)f(program)
f(that)i(passes)h(a)f(memory)e(bu\013er)i(to)g(a)g(DOS)h(routine.)37 2356 y
(The)21 b(function)f(in)f(the)h(\014gure)h(ma)o(y)d(b)q(e)j(used)f(to)g(op)q
(en)g(a)g(DOS)g(\014le.)35 b(The)20 b(programmer)d(sp)q(eci\014es)j(the)37
2441 y(\014lename)g(in)h(the)g(second)g(argumen)o(t)e(and)i(passes)g(in)f(the)
h(\014rst)f(argumen)o(t)f(a)i fg(VirtualPCInterface)g fn(that)37 2525 y(w)o
(as)16 b(previously)f(fetc)o(hed)h(from)e(the)i fg(Standa)o(rdNameServer)q fn
(.)22 b(Up)q(on)17 b(successful)f(execution,)g(the)g(function)37 2610 y(retur\
ns)h(a)g(non-zero)g(v)m(alue,)g(the)g(\014le)f(handle)i(assigned)e(b)o(y)h
(DOS)g(to)f(the)h(op)q(ened)h(\014le.)24 b(Note)17 b(the)g(use)g(of)952 2760 y
(49)g eop bop 37 42 a fg(setConstBu\013er\(\))15 b fn(to)d(pass)h(the)g(\014l\
ename)f(to)h(the)g(DOS)g(routine)g(|)g(w)o(e)g(m)o(ust)e(pass)i(the)g(\014len\
ame)f(bu\013er)h(to)37 126 y(DOS)i(to)g(sp)q(ecify)g(what)f(\014le)g(to)g(op)
q(en,)i(but)e(w)o(e)h(do)f(not)h(care)f(ab)q(out)h(the)g(con)o(ten)o(ts)f(of)
g(the)h(\014lename)e(bu\013er)37 211 y(after)i(the)g(DOS)g(routine)g(has)f
(returned.)21 b(Therefore,)14 b(w)o(e)h(use)g(the)g fg(setConstBu\013er\(\))i
fn(metho)q(d.)i(Although)37 296 y fg(setConstBu\013er\(\))e fn(accepts)f(up)g
(to)f(four)g(argumen)o(ts,)e(w)o(e)i(sp)q(ecify)h(only)f(three)h(argumen)o
(ts,)d(meaning)h(that)37 380 y(the)g(bu\013er)f(argumen)o(t)f(\(i.e.)18 b(\
\014lename\))12 b(is)h(a)g(n)o(ull-terminated)f(string)g(and)h(the)h(size)f
(of)g(the)g(bu\013er)h(is)f(equal)37 465 y(to)i(the)g(length)g(of)g(the)g(str\
ing.)196 525 y 1559 2 v 196 1838 a 2 1313 v 316 572 a fi(in)o(t)f fg(op)q(enD\
OSFile)j(\(VirtualPCInterface)f fl(\003)p fg(virtualPCInterface,)407 628 y fi
(const)f(c)o(har)g fl(\003)p fg(\014lename\))316 685 y fl(f)407 741 y fk(//)
46 b(Op)n(en)22 b(the)h(DOS)f(\014le)g(with)h(sp)n(e)n(ci\014e)n(d)e(\014lena\
me)h(and)407 798 y(//)46 b(r)n(eturn)22 b(a)h(DOS)g(hand)r(le)g(for)g(the)g
(op)n(ene)n(d)f(\014le.)44 b(R)n(eturn)407 854 y(//)i(0)23 b(in)f(c)n(ase)g
(of)h(err)n(or.)46 b(virtualPCInterfac)n(e)21 b(is)h(the)407 911 y(//)46 b
(VirtualPCInterfac)n(e)21 b(that)i(has)g(b)n(e)n(en)f(fetche)n(d)g(fr)n(om)
407 967 y(//)46 b(the)23 b(Standar)n(dNameServer.)407 1080 y(//)46 b(Make)22 b
(a)h(structur)n(e)g(for)g(storing)g(ar)n(guments)f(to)h(the)407 1136 y(//)46 b
(DOS)22 b(c)n(al)r(l.)407 1193 y fg(VirtualPCArgs)15 b(a)o(rgs;)407 1249 y fk
(//)46 b(Sele)n(ct)21 b(DOS)i(function)f(0x3d)h(in)g(r)n(e)n(gister)e(AH,)i
(and)f(set)407 1306 y(//)46 b(r)n(e)n(gisters)21 b(DS:D)o(X)i(to)g(p)n(oint)f
(to)h(the)g(\014lename.)407 1362 y fg(a)o(rgs.set)15 b(\(rAX,)f(0x3d00\);)407
1419 y(a)o(rgs.setConstBu\013er)i(\(rDS,)e(rD)o(X,)g(\014lename\);)407 1475 y
fk(//)46 b(Exe)n(cute)22 b(the)h(DOS)g(c)n(al)r(l)f(\(DOSV)m(e)n(ctor)f fn
(=)i fk(0x21\).)407 1532 y fg(virtualPCInterface)15 b fl(!)h fg(executeV)o
(ecto)o(r)h(\(DOSV)o(ecto)o(r,)e(&a)o(rgs\);)407 1588 y fk(//)46 b(Carry)23 b
(\015ag)f(is)g(set)h(in)f(c)n(ase)g(of)h(err)n(or.)46 b(If)22 b(not,)407 1644
y(//)46 b(r)n(eturn)22 b(the)h(hand)r(le)g(in)f(r)n(e)n(gister)g(AX.)407 1701
y fi(if)14 b fg(\(a)o(rgs.get)h(\(rFlags\))e(&)j(1\))e fi(return)h fg(0;)407
1757 y fi(return)f fg(a)o(rgs.get)h(\(rAX\);)316 1814 y fl(g)1753 1838 y 2
1313 v 196 1840 a 1559 2 v 271 1916 a fi(Figure)i(2.26)p fn(:)j(Calling)13 b
(DOS)j(from)d(an)i(application)f(program)f(to)i(op)q(en)h(a)f(\014le)108 2051
y(Programmers)8 b(ma)o(y)i(call)h fg(VirtualPCArgs::setDT)l(A\(\))h fn(to)g
(declare)f(the)h(Disk)f(T)l(ransfer)h(Area)f(to)g(b)q(e)i(used)37 2136 y(for)
k(calling)e(a)i(16-bit)e(routine.)24 b(The)17 b(Disk)f(T)l(ransfer)h(Area)f
(is)g(a)h(general-purp)q(ose)g(memory)d(bu\013er)j(used)37 2220 y(b)o(y)g(cer\
tain)e(DOS)i(routines.)22 b(The)16 b(argumen)o(ts)e(for)i(the)g(metho)q(d)f
(are)h(the)g(p)q(oin)o(ter)g(to)f(the)i(Disk)e(T)l(ransfer)37 2305 y(Area)i
(and)h(the)f(size)g(of)g(the)g(Disk)f(T)l(ransfer)h(Area.)26 b(The)17 b(Disk)
f(T)l(ransfer)h(Area)g(is)g(alw)o(a)o(ys)e(copied)j(t)o(wice,)37 2390 y(once)
g(from)e(application)h(memory)e(in)o(to)h(lo)o(w)h(memory)e(b)q(efore)j(makin\
g)e(the)h(call,)g(and)h(once)g(more)e(from)37 2474 y(lo)o(w)f(memory)d(to)j
(application)f(memory)e(after)j(the)g(call.)952 2760 y(50)g eop bop 108 42 a
fn(As)18 b(men)o(tioned)e(earlier,)h(a)g(PC-Choices)g(application)g(program)e
(ma)o(y)h(in)o(tercept)h(a)g(16-bit)g(in)o(terrupt)37 126 y(v)o(ector)k(as)g
(a)g(means)f(of)h(comm)o(unicatio)o(n)e(from)g(a)i(16-bit)g(program)e(to)i
(the)g(PC-Choices)g(application)37 211 y(program.)27 b(T)l(o)17 b(in)o(tercep\
t)h(an)g(in)o(terrupt)f(v)o(ector,)h fg(VirtualPCInterface::interceptV)o(ecto)
o(r\(\))h fn(is)e(called)h(with)37 296 y(t)o(w)o(o)12 b(argumen)o(ts,)f(the)i
(\014rst)f(argumen)o(t)f(b)q(eing)i(the)g(in)o(terrupt)f(v)o(ector)g(n)o(um)o
(b)q(er,)g(and)h(the)g(second)g(argumen)o(t)37 380 y(b)q(eing)g(a)f fg(Virtua\
lPCRegisterQueue)k fn(ob)s(ject)c(that)g(will)f(b)q(e)i(used)g(for)f(p)q(osti\
ng)g(all)f(in)o(v)o(o)q(cations)g(of)h(that)g(in)o(ter-)37 465 y(rupt.)23 b
(A)16 b fg(VirtualPCRegisterQueue)j fn(is)c(a)h(FIF)o(O)g(queue)h(whose)f(en)
o(tries)f(are)h fg(VirtualPCRegisters)h fn(ob)s(jects.)37 550 y(Whenev)o(er)e
(the)g(in)o(terrupt)e(v)o(ector)h(is)g(in)o(v)o(ok)o(ed)f(b)o(y)h(a)g(16-bit)
g(program,)e(a)i(new)g fg(VirtualPCRegisters)i fn(ob)s(ject)37 634 y(will)i
(b)q(e)i(added)g(to)f(the)g(queue.)32 b(The)20 b(ob)s(ject)e(will)g(con)o(tai\
n)h(the)g(v)m(alues)g(of)g(the)g(pro)q(cessor)g(registers)f(at)37 719 y(the)h
(instan)o(t)f(that)g(the)h(in)o(terrupt)f(v)o(ector)h(w)o(as)f(in)o(v)o(ok)o
(ed.)30 b(Programm)o(ers)16 b(ma)o(y)h(call)h fg(VirtualPCRegister-)37 804 y
(Queue::dequeu)q(e\(\))j fn(to)d(remo)o(v)o(e)f(the)i fg(VirtualPCRegisters)i
fn(at)d(the)h(head)g(of)f(the)h(queue.)31 b(If)19 b(the)g(queue)h(is)37 888 y
(empt)o(y)l(,)d(the)h(metho)q(d)f(will)f(blo)q(c)o(k.)27 b(A)17 b(programmer)
e(ma)o(y)h(in)o(tercept)h(an)g(in)o(terrupt)g(v)o(ector)g(as)g(sho)o(wn)h(in)
37 973 y(Figure)d(2.27.)196 1033 y 1559 2 v 196 2176 a 2 1144 v 316 1080 a fk
(//)46 b(Cr)n(e)n(ate)22 b(a)h(VirtualPCR)n(e)n(gisterQueue)f(for)h(inter)n
(c)n(epting)316 1136 y(//)46 b(an)22 b(interrupt)i(ve)n(ctor.)45 b(R)n(eserve)
22 b(sp)n(ac)n(e)g(for)h(100)g(entries.)316 1193 y fg(VirtualPCRegisterQueueS\
ta)o(r)18 b(queue)f(=)e fi(new)407 1249 y fg(VirtualPCRegisterQueue)j(\(100\)\
;)316 1306 y fk(//)46 b(Inter)n(c)n(ept)21 b(interrupt)j(ve)n(ctor)e(0x60)i
(with)f(the)g(new)316 1362 y(//)46 b(queue.)g(virtualPCInterfac)n(e)21 b(is)h
(assume)n(d)h(to)g(have)316 1419 y(//)46 b(b)n(e)n(en)21 b(fetche)n(d)i(fr)n
(om)g(the)g(Standar)n(dNameServer)f(e)n(arlier.)316 1475 y fg(virtualPCInterf\
ace)15 b fl(!)h fg(interceptV)o(ecto)o(r)h(\(0x60,)c(queue\);)316 1532 y fk
(//)46 b(L)n(o)n(op)22 b(for)n(ever)h(pr)n(o)n(c)n(essing)e(e)n(ach)h(interru\
pt)i(c)n(al)r(l.)316 1588 y fi(for)15 b fg(\(;;\))316 1644 y fl(f)407 1701 y
fg(VirtualPCRegisters)h(regs;)407 1757 y fk(//)46 b(Wait)23 b(until)f(the)h
(ve)n(ctor)g(is)f(invoke)n(d,)g(then)h(\014l)r(l)407 1814 y(//)46 b(in)22 b
(r)n(e)n(gs)g(with)h(the)g(r)n(e)n(gister)f(values)g(at)h(the)g(time)407 1870
y(//)46 b(of)23 b(the)g(interrupt)g(invo)n(c)n(ation.)407 1927 y fg(queue)17 b
fl(!)e fg(dequeue)j(\(®s\);)407 1983 y fk(//)46 b(Pass)22 b(the)h(r)n(e)n
(gister)e(values)i(to)g(a)g(function)f(for)407 2040 y(//)46 b(pr)n(o)n(c)n
(essing.)407 2096 y fg(p)o(ro)q(cessInterruptCall)17 b(\(®s\);)316 2153 y
fl(g)1753 2176 y 2 1144 v 196 2178 a 1559 2 v 513 2255 a fi(Figure)f(2.27)p fn
(:)k(In)o(tercepting)15 b(an)g(in)o(terrupt)g(v)o(ector)108 2390 y(The)10 b
(programmer)d(ma)o(y)i(use)h fg(VirtualPCRegisterQueue::isEmpt)o(y\(\))i fn
(to)e(determine)f(whether)h(the)g(queue)37 2474 y(is)15 b(empt)o(y)l(,)e(but)
i(the)g(programmer)d(is)j(discouraged)f(from)f(p)q(olling)h(a)h(queue)h(that)
e(w)o(a)o(y)g(frequen)o(tly)l(.)19 b(An)c(in-)952 2760 y(51)g eop bop 37 42 a
fn(terrupt)17 b(v)o(ector)f(ma)o(y)f(b)q(e)j(unin)o(tercepted)f(b)o(y)g(calli\
ng)e fg(VirtualPCInterface::resto)o(reV)o(ecto)o(r\(\))p fn(,)h(passing)g(the)
37 126 y(in)o(terrupt)f(v)o(ector)f(n)o(um)o(b)q(er)h(as)g(the)g(argumen)o
(t.)37 277 y ff(2.4.3)56 b(Virtual)20 b(PC)f(Implemen)n(tation)37 391 y fn
(In)c(order)e(to)g(implemen)o(t)d(the)k fg(VirtualPC)g fn(the)f(virtual-8086)
f(mo)q(de)g(pro)o(vided)i(b)o(y)f(the)h(386)e(micropro)q(cessor)37 476 y(w)o
(as)e(used.)19 b(The)10 b(pro)q(cessor)g(allo)o(ws)f(system)f(programmers)f
(to)j(dev)o(elop)g(\\virtual)f(mac)o(hines")g(that)g(execute,)37 560 y(in)23 b
(a)f(protected)g(manner,)h(programs)d(written)h(for)h(the)g(16-bit)g(8086)f
(micropro)q(cessor.)39 b(Most)21 b(16-bit)37 645 y(programs)f(require)i(no)h
(mo)q(dication)d(to)h(run)i(under)g(a)e(virtual)g(mac)o(hine)g(since)i(the)f
(virtual)f(mac)o(hine)37 730 y(carefully)e(em)o(ulates)e(an)i(8086-based)f
(PC.)g(Protection)g(is)h(enforced)g(up)q(on)h(16-bit)e(programs,)f(whereb)o
(y)37 814 y(eac)o(h)e(instruction)f(executed)h(and)g(all)e(accesses)i(to)f
(memory)e(and)j(I/O)g(are)f(carefully)g(c)o(hec)o(k)o(ed)h(to)f(prev)o(en)o
(t)37 899 y(16-bit)h(programs)f(from)f(in)o(terfering)i(with)g(the)g(concurre\
n)o(t)h(execution)g(of)f(the)g(32-bit)g(op)q(erating)g(system)37 984 y(and)h
(application)e(programs.)108 1068 y(The)20 b(virtual)f(mac)o(hine)g(concept)i
(is)e(supp)q(orted)i(partly)e(in)h(hardw)o(are)f(and)h(in)g(soft)o(w)o(are.)
33 b(The)20 b(386)37 1153 y(micropro)q(cessor)9 b(con)o(tains)g(built-in)h
(supp)q(ort)g(for)f(virtual)g(mac)o(hines)g(but)h(in)g(order)g(to)g(pro)o(vid\
e)f(a)h(functional)37 1238 y(virtual)k(mac)o(hine,)f(a)h(sp)q(ecial)h(piece)g
(of)f(system)g(soft)o(w)o(are)e(kno)o(wn)j(as)f(the)h(virtual-8086)d(monitor)
h(m)o(ust)g(b)q(e)37 1323 y(presen)o(t)k(in)g(the)f(op)q(erating)g(system.)23
b(The)17 b(main)e(purp)q(ose)i(of)g(the)f(virtual-8086)f(monitor)f(is)i(to)g
(em)o(ulate)37 1407 y(the)g(privileged)f(instructions)f(in)i(a)f(16-bit)f(pro\
gram.)19 b(The)d(em)o(ulation)d(of)i(these)h(privileged)f(instructions)37 1492
y(is)20 b(crucial)g(for)g(the)g(prop)q(er)h(op)q(eration)e(of)h(man)o(y)f(16-\
bit)g(programs.)33 b(The)21 b(execution)f(of)g(a)g(privileged)37 1577 y(instr\
uction)g(b)o(y)g(a)g(16-bit)f(program)f(will)h(automatically)e(e\013ect)j(a)g
(system)f(trap)g(in)o(to)g(the)i(monitor)d(in)37 1661 y(order)d(to)g(em)o(ula\
te)e(the)j(instruction.)i(Hence)e(the)g(monitor)d(is)h(e\013ectiv)o(ely)g(in)
o(visible)g(to)h(16-bit)f(programs.)108 1746 y(A)21 b fg(VirtualPC)h fn(manag\
es)d(all)h(pro)q(cesses)i(executing)f(in)g(the)g(16-bit)f(virtual-8086)f(mo)q
(de.)37 b(It)21 b(serv)o(es)37 1831 y(as)h(the)g(virtual-8086)e(monitor)f(tha\
t)i(em)o(ulates)f(privileged)h(instructions)g(for)g(virtual-8086)f(pro)q(cess\
es)37 1915 y(\(Figure)12 b(2.28\).)17 b(A)12 b fg(VirtualPCT)l(ask)h fn(repre\
sen)o(ts)f(a)g(pro)q(cess)h(executing)f(inside)g(a)g fg(VirtualPC)p fn(.)g
(The)g fg(VirtualPC)37 2000 y fn(is)g(resp)q(onsible)f(for)g(allo)q(cating)f
(and)i(starting)e(up)i fg(VirtualPCT)l(asks)h fn(as)e(instructed)h(b)o(y)g
(clien)o(ts.)17 b(A)12 b fg(VirtualPC)37 2085 y fn(ma)o(y)d(b)q(e)j(programme\
d)c(to)i(in)o(tercept)g(sp)q(eci\014c)i(in)o(terrupt)e(v)o(ectors,)g(serving)
g(as)g(a)h(means)e(of)i(comm)o(unicatio)o(n)37 2169 y(from)k(a)h(virtual-8086)
e(pro)q(cess)i(to)g(a)g(32-bit)f(pro)q(cess.)23 b(The)16 b(PC-Choices)g(k)o
(ernel)g(con)o(tains)g(only)f(a)h(single)37 2254 y(instance)g(of)e fg(Virtual\
PC)p fn(.)108 2339 y(In)20 b(op)q(eration,)g(the)g fg(VirtualPC)g fn(requires)
g(t)o(w)o(o)e(regions)h(of)g(lo)o(w)g(memory)l(.)31 b(The)20 b(\014rst)f(regi\
on)g(of)h(lo)o(w)37 2423 y(memory)c(is)h(termed)f(the)i fg(VirtualPC)g fn(T)l
(ask)f(Space.)28 b fg(VirtualPCT)l(asks)19 b fn(are)e(carv)o(ed)h(out)f(from)
f(this)h(region)37 2508 y(of)g(memory)l(.)24 b(The)18 b(other)f(region)f(of)h
(lo)o(w)f(memory)f(is)i(called)g(the)g fg(VirtualPC)h fn(Bu\013er)f(Space.)27
b(Whenev)o(er)952 2760 y(52)g eop bop 318 0 a
20744932 14208860 5657231 23812997 27365212 38613893 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 86 362 416 587
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 92.487 340.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 143.987 316.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 332 523 ] concat
%I
[
(32-bit mode)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 332 486 ] concat
%I
[
(16-bit mode)
] Text
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 0.5 -0 -0 0.5 221 307.5 ] concat
%I 10
284 391
-234 391
-234 201
-222 203
-216 199
-208 203
-208 371
286 371
294 379
278 385
10 Poly
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 141 392.5 ] concat
%I 4
46 316
-26 221
366 221
295 316
4 Poly
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 166.5 530.5 ] concat
%I
[
(Virtual-8086 Monitor)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 243.487 365.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 10 208 ] concat
%I 4
108 335
141 311
148 303
147 256
4 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -0.999984 209 ] concat
%I 6
190 229
190 276
190 307
211 307
210 274
210 228
6 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 20 224 ] concat
%I 3
272 262
272 307
325 334
3 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 88 561 ] concat
%I
[
(Dispatch)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 214 480 ] concat
%I
[
(Emulate)
(privileged)
(instruction)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 299 587 ] concat
%I
[
(Terminate via)
(privileged instruction)
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
410 998 a fi(Figure)17 b(2.28)p fn(:)j(The)15 b(virtual-8086)e
(monitor)g(in)i(the)g fg(VirtualPC)37 1131 y fn(an)i(application)f(calls)g
(the)h fg(VirtualPCInterface)h fn(to)e(dispatc)o(h)h(a)f(16-bit)g(routine,)h
(the)g(argumen)o(ts)e(for)h(the)37 1216 y(routine)f(are)g(copied)g(in)o(to)g
(the)g fg(VirtualPC)g fn(Bu\013er)h(Space.)108 1301 y(A)f fg(VirtualPCT)l(ask)
g fn(con)o(tains)e(16)h(b)o(ytes)h(of)f(co)q(de)h(and)f(data)g(com)o(bined)f
(\()p fg(VirtualPCT)l(ask::co)q(de)p fn(\),)i(and)g(a)37 1385 y(stac)o(k)i
(of)g(256)f(b)o(ytes)h(\()p fg(VirtualPCT)l(ask::stack)p fn(\).)27 b(The)17 b
(co)q(de)h(in)f(a)g fg(VirtualPCT)l(ask)h fn(is)f(accessed)h(in)f(virtual-)37
1470 y(8086)e(mo)q(de)f(so)h(the)g(con)o(ten)o(ts)f(of)h(a)g fg(VirtualPCT)l
(ask)h fn(exists)f(en)o(tirely)f(in)h(lo)o(w)f(memory)l(.)j(The)f(allo)q(cati\
on)d(of)37 1555 y(lo)o(w)i(memory)d(for)j fg(VirtualPCT)l(asks)h fn(is)f(con)
o(trolled)f(b)o(y)h fg(VirtualPCT)l(ask::newT)l(ask\(\))p fn(.)37 1703 y fi
(2.4.3.1)52 b(Dispatc)o(hing)17 b(a)h(16-bit)g(routine)37 1817 y fn(When)k
(a)f fg(VirtualPCT)l(ask)h fn(executes)f(a)g(virtual-8086)e(mo)q(de)h(in)o
(terrupt)g(v)o(ector,)i(the)f(address)g(of)g fg(Virtu-)37 1902 y(alPCT)l(ask:\
:co)q(de)d fn(is)e(pushed)i(on)o(to)e(the)h(stac)o(k)f(as)h(the)g(return)f
(address,)h(so)g(that)f(the)h(instructions)f(in)g(the)37 1986 y fg(VirtualPCT)
l(ask::co)q(de)i fn(arra)o(y)c(will)h(b)q(e)i(executed)g(when)f(the)g(in)o
(terrupt)f(v)o(ector)h(returns.)22 b(In)17 b(order)e(to)h(ter-)37 2071 y(mina\
te)e(the)g fg(VirtualPCT)l(ask)i fn(when)g(the)e(v)o(ector)g(returns,)h(the)g
fg(VirtualPCT)l(ask)g fn(constructor)f(sets)h(the)g(\014rst)37 2156 y(b)o(yte)
k(of)g fg(VirtualPCT)l(ask::co)q(de)i fn(to)d(the)h(in)o(terrupt-return)g(ins\
truction)f(\(IRET\).)h(This)g(instruction)f(will)37 2240 y(cause)f(a)f(trap)f
(in)o(to)g(the)h fg(VirtualPC)g fn(monitor,)e(whic)o(h)i(will)f(terminate)f
(the)i fg(VirtualPCT)l(ask)p fn(.)23 b(Prior)15 b(to)g(the)37 2325 y(executio\
n)j(of)e(the)i fg(VirtualPCT)l(ask)p fn(,)g(the)f(address)g(of)g(the)g fg(Vir\
tualPCT)l(ask)h fn(ob)s(ject)e(is)h(sa)o(v)o(ed)g(in)g(the)g fg(Virtu-)37 2410
y(alPCT)l(ask)p fn(::co)q(de)f(arra)o(y)e(righ)o(t)g(after)g(the)i(in)o(terru\
pt-return)e(instruction.)19 b(When)d(the)f fg(VirtualPC)h fn(monitor)37 2495 y
(terminates)h(a)h fg(VirtualPCT)l(ask)p fn(,)i(it)e(reads)h(this)f(address)g
(and)h(in)o(v)o(ok)o(es)e(the)i fg(terminate\(\))f fn(metho)q(d)g(on)g(the)
952 2760 y(53)g eop bop 37 42 a fg(VirtualPCT)l(ask)14 b fn(p)q(oin)o(ted)e
(to)g(b)o(y)h(the)f(address,)h(so)f(that)g(the)h fg(VirtualPCT)l(ask)g fn(ma)
o(y)e(do)h(an)o(y)h(pre-termination)37 126 y(pro)q(cessing)j(if)e(necessary)l
(.)108 211 y fg(VirtualPCT)l(ask::executeV)o(ecto)o(r\(\))22 b fn(is)d(called)
h(b)o(y)h(the)f fg(VirtualPC)h fn(to)f(execute)h(a)f(virtual-8086)e(mo)q(de)
37 296 y(in)o(terrupt)j(v)o(ector.)37 b(The)21 b(metho)q(d)f(sa)o(v)o(es)g
(the)i fg(VirtualPCT)l(ask)g fn(address)f(in)o(to)f(the)h(co)q(de)h(arra)o
(y)d(so)i(that)37 380 y fg(VirtualPCT)l(ask::terminate\(\))g fn(ma)o(y)e(b)q
(e)i(called)g(later,)f(as)h(discussed)g(earlier.)36 b(The)21 b(metho)q(d)f
(also)f(sa)o(v)o(es)37 465 y(the)f(stac)o(k)e(p)q(oin)o(ter)h(for)g(protectio\
n)f(lev)o(el)h(0)g(\(i.e.)25 b(ESP0)18 b(for)e(the)i(TSS\),)f(whic)o(h)g(p)q
(oin)o(ts)f(to)h(the)h(stac)o(k)e(to)37 550 y(b)q(e)21 b(used)g(when)f(user-l\
ev)o(el)g(co)q(de)g(traps)f(in)o(to)g(the)h(k)o(ernel.)34 b(This)19 b(stac)o
(k)h(p)q(oin)o(ter)f(will)g(b)q(e)h(altered)f(later)37 634 y(\(b)o(y)g fg(Vir\
tualPCT)l(ask::basicExecuteV)o(ecto)o(r\(\))p fn(\),)h(so)f(it)e(is)i(necessa\
ry)f(to)g(restore)g(the)h(stac)o(k)f(p)q(oin)o(ter)g(when)37 719 y(the)f fg
(VirtualPCT)l(ask)g fn(terminates.)j fg(setjmp\(\))d fn(is)e(called)h(to)f
(sa)o(v)o(e)h(the)g(curren)o(t)g(en)o(vironmen)o(t)e(b)q(efore)j fg(Virtu-)37
804 y(alPCT)l(ask::basicExecuteV)o(ecto)o(r\(\))g fn(is)f(called.)21 b fg(bas\
icExecuteV)o(ecto)o(r\(\))c fn(is)e(a)h(non-returning)f(function,)g(so)h(a)37
888 y fg(long)q(jmp\(\))e fn(m)o(ust)e(b)q(e)j(used)f(later)f(to)h(return)f
(to)h(the)g(curren)o(t)g(en)o(vironmen)o(t)e(and)i(exit)g(the)g fg(executeV)o
(ecto)o(r\(\))37 973 y fn(metho)q(d.)108 1058 y fg(VirtualPCT)l(ask::basicExe\
cuteV)o(ect)q(o)o(r\(\))20 b fn(\014rst)f(sets)h(the)f(stac)o(k)g(p)q(oin)o
(ter)g(for)g(protection)f(lev)o(el)h(0)g(to)g(a)37 1142 y(deep)q(er)c(lev)o
(el)e(so)g(that)g(the)h(curren)o(t)f(con)o(ten)o(ts)g(on)g(top)h(of)f(the)g
(protection)g(lev)o(el)g(0)g(stac)o(k)g(will)f(b)q(e)i(preserv)o(ed)37 1227 y
(in)k(spite)e(of)h(the)g(k)o(ernel)g(traps)g(that)f(will)g(o)q(ccur)i(while)e
(executing)i(in)f(virtual-8086)e(mo)q(de.)25 b(If)17 b fg(basicExe-)37 1312 y
(cuteV)o(ecto)o(r\(\))e fn(had)g(b)q(een)g(called)f(as)h(a)f(result)f(of)h
(a)h(k)o(ernel)f(trap)g(from)e(an)j(application)e(program,)f(then)i(the)37
1396 y(stac)o(k)g(w)o(ould)g(con)o(tain)g(meaningful)f(information)f(on)j(top)
f(of)g(the)h(protection)e(lev)o(el)h(0)h(stac)o(k,)e(information)37 1481 y
(that)k(should)h(b)q(e)g(preserv)o(ed)g(to)f(enable)h(the)g(k)o(ernel)f(to)g
(return)h(prop)q(erly)f(to)g(the)h(application)e(program.)37 1566 y(The)k(met\
ho)q(d)e(then)h(pushes)g(a)g(stac)o(k)f(frame)f(\(more)h(precisely)l(,)h(a)f
(virtual-8086)f(mo)q(de)h(in)o(terrupt)g(stac)o(k)37 1650 y(frame,)c(whic)o
(h)i(is)f(di\013eren)o(t)g(from)f(a)i(virtual-8086)d(mo)q(de)i(pro)q(cedure)i
(call)e(stac)o(k)g(frame\))f(on)o(to)h(the)h(task's)37 1735 y(stac)o(k)i(indi\
cating)f(the)i(task's)e(co)q(de)i(arra)o(y)e(should)h(b)q(e)h(executed)h(when)
e(the)h(in)o(terrupt)e(v)o(ector)h(returns.)37 1820 y(The)12 b(help)q(er)g
(functions)f(in)h(class)e fg(VirtualPCStack)j fn(are)e(used)h(to)f(manipulate)
f(the)h(virtual-8086)f(mo)q(de)g(stac)o(k)37 1905 y(frame.)108 1989 y fg(Virt\
ualPCT)l(ask::execute\(\))16 b fn(is)e(called)g(next.)19 b(This)14 b(metho)q
(d)g(calls)f(the)i(assem)o(bly)d(routine)i fg(enterV86)h fn(to)37 2074 y(exec\
ute)i(the)f(in)o(terrupt)g(v)o(ector)f(via)g(an)h(in)o(terrupt-return)f(instr\
uction)g(\(IRET\).)1477 2057 y fr(38)1530 2074 y fn(Prior)g(to)h(calling)e
(the)37 2159 y(v)o(ector,)i(the)g(desired)g(register)f(v)m(alues)h(\(includin\
g)g(the)g(virtual-8086)e(stac)o(k)h(p)q(oin)o(ter\))h(are)f(pushed)i(in)f(the)
37 2243 y(righ)o(t)f(order)g(on)o(to)f(the)i(k)o(ernel)f(stac)o(k)g(\(whic)o
(h)f(is)h(distinct)g(from)f(the)h(virtual-8086)e(stac)o(k\),)h(so)h(that)g
(IRET)37 2328 y(ma)o(y)g(sa)o(v)o(e)h(them)f(in)o(to)h(the)g(virtual-8086)e
(registers)h(b)q(efore)i(branc)o(hing)f(to)g(the)g(in)o(terrupt)g(v)o(ector,)
g(whose)37 2413 y(address)e(has)g(also)f(b)q(een)h(pushed)h(on)o(to)e(the)h
(k)o(ernel)f(stac)o(k.)19 b(The)14 b(Flags)e(register)h(on)h(the)f(stac)o(k)g
(has)h(its)f(VM)37 2494 y 750 2 v 74 2521 a fs(38)107 2536 y fa(enterV86)f fp
(is)h(de\014ned)h(in)f fa(MachineDep)q(endent/PC/Virtual8086.s)p fp(.)952 2760
y fn(54)g eop bop 37 42 a fn(bit)15 b(turned)h(on.)k(This)15 b(indicates)g
(that)f(IRET)i(should)f(switc)o(h)g(in)o(to)f(virtual-8086)f(mo)q(de)i(and)g
(do)o(wngrade)37 126 y(the)h(pivilege)e(lev)o(el)h(to)f(the)i(lo)o(w)o(est)d
(lev)o(el)i(when)g(executing)h(the)f(in)o(terrupt)f(v)o(ector.)37 274 y fi
(2.4.3.2)52 b(Em)n(ulation)15 b(of)i(privileged)f(instructions)37 388 y fn
(While)10 b(a)g(virtual-8086)e(mo)q(de)i(program)e(is)h(executing,)i(all)f
(privileged)f(instructions)g(encoun)o(tered)i(will)e(trap)37 473 y(in)o(to)15
b(the)h(virtual-8086)e(monitor.)19 b(The)d(virtual-8086)e(monitor)g(is)h(exp)
q(ected)i(to)e(em)o(ulate)f(the)i(privileged)37 558 y(instructions)i(faithful\
ly)g(in)h(order)f(to)h(execute)g(16-bit/virtual-8086)d(mo)q(de)i(programs)f
(correctly)l(.)30 b(The)37 642 y(privileged)15 b(instructions)f(for)h(virtual\
-8086)e(mo)q(de)h(are)h(sho)o(wn)g(in)g(T)l(able)g(2.3.)201 752 y 1549 2 v 200
808 a 2 57 v 226 791 a(Instruction)469 808 y 2 57 v 494 791 a(Purp)q(ose)1748
808 y 2 57 v 201 810 a 1549 2 v 200 867 a 2 57 v 226 850 a fi(CLI)469 867 y 2
57 v 494 850 a fn(Clear)g(in)o(terrupt-enable)g(\015ag,)f(to)h(disable)f(all)
g(mask)m(able)g(in)o(terrupts.)1748 867 y 2 57 v 200 923 a 2 57 v 226 906 a fi
(STI)469 923 y 2 57 v 494 906 a fn(Set)i(in)o(terrupt-enable)e(\015ag,)h(to)g
(enable)g(all)f(in)o(terrupts.)1748 923 y 2 57 v 200 979 a 2 57 v 226 963 a fi
(PUSHF)469 979 y 2 57 v 494 963 a fn(Push)i(the)f(Flags)f(register)g(on)o(to)
g(the)i(stac)o(k.)1748 979 y 2 57 v 200 1036 a 2 57 v 226 1019 a fi(POPF)469
1036 y 2 57 v 494 1019 a fn(P)o(op)f(the)g(Flags)f(register)g(from)g(the)h
(stac)o(k.)1748 1036 y 2 57 v 200 1092 a 2 57 v 226 1075 a fi(INT)469 1092 y 2
57 v 494 1075 a fn(Generate)g(soft)o(w)o(are)f(in)o(terrupt.)1748 1092 y 2 57
v 200 1149 a 2 57 v 226 1132 a fi(IRET)469 1149 y 2 57 v 494 1132 a fn(Return)
i(from)e(in)o(terrupt.)1748 1149 y 2 57 v 201 1150 a 1549 2 v 440 1228 a fi
(T)l(able)j(2.3)p fn(:)j(Virtual-8086)13 b(mo)q(de)i(privileged)f(instruction\
s)108 1362 y(The)21 b(\\INT)f fm(n)p fn(")h(instruction)f(o)q(ccurs)g(frequen)
o(tly)h(in)f(16-bit/virtual-8086)d(mo)q(de)j(programs.)34 b(This)37 1446 y
(instruction)13 b(is)g(used)g(b)o(y)h(application)e(programs,)f(device)j(driv)
o(ers)e(as)h(w)o(ell)f(as)h(DOS)h(and)f(BIOS)i(to)d(request)37 1531 y(DOS)k
(and)f(BIOS)h(services.)k(Some)14 b(device)h(driv)o(ers)f(are)h(accessed)g
(through)g(soft)o(w)o(are)e(in)o(terrupts)h(as)h(w)o(ell.)37 1616 y(On)23 b
(the)g(8086)e(micropro)q(cessor,)h(the)g(INT)h(and)f(IRET)h(instructions)e
(are)h(handled)h(in)f(the)h(follo)o(wing)37 1700 y(manner:)106 1833 y fl(\017)
f fn(INT)16 b fm(n)193 1955 y fn(1.)22 b(Push)16 b(Flags)d(register)i(on)o
(to)f(stac)o(k)193 2056 y(2.)22 b(Clear)14 b(in)o(terrupt)h(and)g(trap)g(\015\
ags)193 2156 y(3.)22 b(Push)16 b(CS)f(and)g(IP)h(registers)e(on)o(to)g(stac)o
(k)193 2257 y(4.)22 b(Branc)o(h)15 b(to)g(address)g(giv)o(en)g(b)o(y)g(the)g
(16-bit)g(v)m(alues)g(at)g(absolute)f(addresses)i(4)p fm(n)f fn(and)g(4)p fm
(n)10 b fn(+)h(2)106 2379 y fl(\017)22 b fn(IRET)193 2500 y(1.)g(P)o(op)15 b
(IP)g(and)h(CS)f(registers)f(from)g(stac)o(k)193 2601 y(2.)22 b(P)o(op)15 b
(Flags)f(registers)g(from)f(stac)o(k)952 2760 y(55)g eop bop 108 42 a fn(BIOS)
20 b(and)f(DOS,)f(ho)o(w)o(ev)o(er,)g(ma)o(y)f(em)o(ulate)g(some)h(INT)g(or)h
(IRET)g(instructions)e(b)o(y)i(manipulating)37 126 y(the)c(stac)o(k)e(directl\
y)l(.)19 b(These)c(em)o(ulations)d(are)i(not)g(trapp)q(ed)g(b)o(y)g(the)h(vir\
tual-8086)d(monitor,)f(according)j(to)37 211 y(the)19 b(386)e(arc)o(hitecture)
h(de\014nition.)28 b(Th)o(us)18 b(virtual-8086)e(monitors,)g(including)i(the)
g fg(VirtualPC)h fn(monitor)37 296 y(used)f(in)e(PC-Choices,)h(m)o(ust)e(em)o
(ulate)g(INT)i(and)f(IRET)i(instructions)d(exactly)h(as)h(describ)q(ed)g(ab)q
(o)o(v)o(e.)24 b(If)37 380 y(a)c(virtual-8086)e(monitor)g(uses)i(a)g(di\013er\
en)o(t)f(format)f(for)h(the)h(stac)o(k)g(frame,)f(BIOS)i(and)g(DOS)f(will)f
(fail)37 465 y(b)q(ecause)e(they)e(exp)q(ect)h(the)f(8086)f(format.)108 550 y
(The)i(CLI)g(and)f(STI)h(instructions)f(are)g(em)o(ulated)f(b)o(y)h(the)h fg
(VirtualPC)f fn(monitor)e(exactly)i(according)g(to)37 634 y(the)f(8086)d(sema\
n)o(tics.)18 b(Allo)o(wing)11 b(unprivileged)i(virtual-8086)d(mo)q(de)i(progr\
ams)f(to)i(con)o(trol)e(the)i(in)o(terrupt)37 719 y(\015ags)f(is)g(dangerous)
g(for)g(a)g(pro)q(duction-qualit)o(y)f(op)q(erating)g(system,)g(but)i(this)f
(is)f(\014ne)i(for)f(an)g(exp)q(erimen)o(tal)37 804 y(pro)s(ject)g(lik)o(e)f
(PC-Choices.)18 b(I/O)13 b(devices)f(ma)o(y)f(not)g(function)h(correctly)f
(if)h(the)g(CLI)h(and)f(STI)h(instructions)37 888 y(are)19 b(not)f(em)o(ulate\
d)g(prop)q(erly)l(.)31 b(The)19 b fg(VirtualPC)g fn(monitor)e(em)o(ulates)g
(the)i(PUSHF)f(and)h(POPF)g(exactly)37 973 y(according)c(to)g(the)g(8086)f
(seman)o(tics)f(as)i(w)o(ell.)108 1058 y(The)i(privileged)g(instructions)e
(generate)i(the)g(General)g(Protection)e(Exception)i(when)h(executed.)26 b
(In)37 1142 y(PC-Choices,)19 b(the)g fg(GeneralProtectionException::raise\(\))
g fn(metho)q(d)f(is)g(called)g(to)f(handle)i(the)g(exception.)37 1227 y(The)
13 b(metho)q(d)e(c)o(hec)o(ks)i(whether)f(the)h(exception)f(w)o(as)f(raised)h
(in)g(virtual-8086)e(mo)q(de,)i(and)g(if)g(so,)g(the)g(excep-)37 1312 y(tion)
h(is)f(forw)o(arded)g(to)h(the)g fg(handlePCException\(\))i fn(function,)e
(whic)o(h)g(calls)f fg(VirtualPC::handleException\(\))p fn(.)108 1396 y fg
(VirtualPC::handleException\(\))j fn(functions)e(as)g(the)g(virtual-8086)e
(monitor.)17 b(It)c(examines)f(the)i(instruc-)37 1481 y(tion)g(that)f(had)i
(generated)f(the)g(exception)h(to)e(determine)g(what)h(em)o(ulation)e(to)h
(p)q(erform.)19 b(The)14 b fg(VirtualPC)37 1566 y fn(metho)q(ds)22 b(named)g
fg(emulatePushFlags\(\))p fn(,)j fg(emulateP)o(opFlags\(\))p fn(,)e fg(emulat\
eInterrupt\(\))g fn(and)g fg(emulateInter-)37 1650 y(ruptReturn\(\))17 b fn
(are)e(resp)q(onsible)g(for)g(em)o(ulating)e(the)i(v)m(arious)g(privileged)f
(instructions.)108 1735 y(Before)k(p)q(erforming)f(the)i(em)o(ulation,)d fg
(handleException\(\))21 b fn(c)o(hec)o(ks)e(the)f(address)h(of)f(the)g(faulti\
ng)f(in-)37 1820 y(struction)g(to)g(determine)g(whether)g(the)h(in)o(terrupt)
f(v)o(ector)g(has)g(already)g(completed)g(execution.)27 b(Recall)37 1905 y
(that)13 b(eac)o(h)g fg(VirtualPCT)l(ask)i fn(sp)q(eci\014es)f(an)f(IRET)h
(instruction)e(to)g(b)q(e)i(executed)h(when)e(the)h(v)o(ector)e(has)h(b)q(een)
37 1989 y(executed.)28 b(This)17 b(IRET)h(instruction)f(will)f(cause)h fg(han\
dleException\(\))j fn(to)d(b)q(e)h(called.)26 b fg(handleException\(\))37 2074
y fn(examines)12 b(the)i(address)f(of)f(the)i(IRET)f(instruction,)f(and)i(is)
e(able)h(to)f(con\014rm)h(whether)g(an)g(IRET)h(instruc-)37 2159 y(tion)k(is)
g(inside)g(a)g fg(VirtualPCT)l(ask)h fn(ob)s(ject,)f(b)q(ecause)h(all)e fg
(VirtualPCT)l(asks)j fn(are)e(allo)q(cated)f(from)g(a)h(sp)q(ecial)37 2243 y
(region)f(of)f(lo)o(w)g(memory)l(.)23 b(If)17 b(the)g(IRET)h(instruction)e
(is)g(indeed)i(inside)f(a)f fg(VirtualPCT)l(ask)26 b(handleExcep-)37 2328 y
(tion\(\))18 b fn(reads)h(the)f(address)g(of)g(the)g fg(VirtualPCT)l(ask)h fn
(from)e(the)h(b)o(ytes)g(follo)o(wing)e(the)i(IRET)h(instruction,)37 2413 y
(and)h(in)o(v)o(ok)o(es)f(the)h fg(terminate\(\))f fn(metho)q(d)g(on)h(the)f
fg(VirtualPCT)l(ask)p fn(.)35 b(This)19 b(metho)q(d)g(sa)o(v)o(es)g(the)h(v)m
(alues)g(of)37 2497 y(the)e(virtual-8086)c(registers)i(for)h(returning)g(to)f
(the)h(caller)f(and)i(then)f(calls)f fg(long)q(jmp\(\))g fn(to)h(return)g(to)
f(the)37 2582 y fg(VirtualPCT)l(ask::executeV)o(ecto)o(r\(\))22 b fn(metho)q
(d)e(called)g(earlier.)35 b(The)21 b fg(terminate\(\))f fn(metho)q(d)g(nev)o
(er)h(returns)952 2760 y(56)g eop bop 37 42 a fn(to)21 b fg(handleException\(\
\))p fn(.)41 b(The)21 b fg(VirtualPCT)l(ask)i fn(running)e(in)g(virtual-8086)
e(mo)q(de)i(has)g(e\013ectiv)o(ely)f(b)q(een)37 126 y(terminated.)108 211 y fg
(VirtualPC::emulateInterrupt\(\))e fn(is)g(called)f(whenev)o(er)i(the)f(INT)g
(instruction)f(is)h(to)f(b)q(e)i(em)o(ulated)d(for)37 296 y(a)i(virtual-8086)
e(pro)q(cess.)30 b(Some)17 b(virtual-8086)f(mo)q(de)h(soft)o(w)o(are)g(in)o
(terrupts)g(are)h(handled)h(sp)q(ecially)f(b)o(y)37 380 y(this)e(metho)q(d.)
22 b(Examples)15 b(of)h(suc)o(h)g(sp)q(ecially-handled)g(in)o(terrupts)g(are)
g(the)g(in)o(terrupts)f(that)h(ha)o(v)o(e)f(b)q(een)37 465 y(in)o(tercepted)j
(previously)f(through)g(a)g(call)f(to)h fg(VirtualPC::interceptV)o(ecto)o(r\(\
\))p fn(.)27 b(When)17 b(suc)o(h)h(an)f(in)o(terrupt)37 550 y(is)e(em)o(ulate\
d,)e(the)i(curren)o(t)g(virtual-8086)e(mo)q(de)h(registers)g(ha)o(v)o(e)g(to)
g(b)q(e)i(sa)o(v)o(ed)e(in)h(the)g fg(VirtualPCRegister-)37 634 y(Queue)i fn
(that)d(w)o(as)g(sp)q(eci\014ed)i(earlier)e(in)h(the)g fg(interceptV)o(ecto)o
(r\(\))g fn(call.)k(The)c(queue)h(is)e(obtained)h(b)o(y)g(lo)q(oking)37 719 y
(up)h(the)e fg(VirtualPC::vecto)o(rIntercepto)o(r)h fn(arra)o(y)l(,)e(whic)o
(h)h(w)o(as)g(used)h(b)o(y)g fg(interceptV)o(ecto)o(r\(\))h fn(to)e(sa)o(v)o
(e)f(the)i(regis-)37 804 y(ter)i(queue.)26 b(The)17 b(arra)o(y)f(holds)h(up)g
(to)f(256)h(p)q(oin)o(ters)f(to)g fg(VirtualPCRegisterQueues)21 b fn(that)16 b
(corresp)q(ond)h(to)37 888 y(the)f(256)e(in)o(terceptable)h(in)o(terrupt)f
(v)o(ectors.)108 973 y(In)o(terrupt)g(n)o(um)o(b)q(er)f(0x15)g(is)g(sp)q(ecia\
lly)g(handled)h(b)o(y)g fg(VirtualPC::emulateInterrupt\(\))g fn(to)f(p)q(erfo\
rm)f(v)m(ar-)37 1058 y(ious)i(functions.)19 b(BIOS)c(calls)e(this)g(in)o(terr\
upt)h(v)o(ector)f(and)h(sets)f(register)g(AH)h(to)g(0x90)f(to)g(signal)g(that)
g(it)g(is)37 1142 y(ab)q(out)g(to)f(w)o(ait)g(for)g(an)h(I/O)g(activit)o(y)e
(to)h(terminate,)f(and)i(sets)f(AH)h(to)f(0x91)g(to)g(signal)g(that)g(an)h
(I/O)g(activ-)37 1227 y(it)o(y)j(has)g(just)h(ended.)24 b(The)17 b fg(Virtual\
PC::handleDeviceBusy\(\))h fn(and)f fg(handleInterruptComplete\(\))h fn(metho)
q(ds)37 1312 y(tak)o(e)12 b(care)g(of)g(these)h(conditions)e(to)h(p)q(erform)
f(in)o(terrupt-driv)o(en)h(I/O)h(\(Figure)e(2.29,)g(2.30\).)18 b(BIOS)13 b
(sets)f(AH)37 1396 y(to)j(0x85)f(to)g(indicate)g(that)g(the)h(Alt-SysReq)g
(k)o(eystrok)o(es)f(ha)o(v)o(e)g(b)q(een)i(pressed.)k(The)15 b(k)o(ernel)g
(handles)g(this)37 1481 y(condition)k(b)o(y)g(un)o(blo)q(c)o(king)g(an)g fg
(ApplicationPro)q(cess)p fn(,)j(selected)d(at)f(random,)h(that)f(is)h(curren)
o(tly)f(w)o(aiting)37 1566 y(for)c(another)f fg(ApplicationPro)q(cess)k fn
(to)c(terminate.)905 1549 y fr(39)960 1566 y fn(\(This)g(feature)h(is)f(usefu\
l)h(for)g(forcing)f(Cho)q(cs)h(to)f(come)37 1650 y(bac)o(k)h(to)e(the)i(foreg\
round)f(while)f(it)h(is)g(w)o(aiting)e(for)i(a)g(foreground)g(application)e
(to)i(\014nish.\))19 b(If)14 b(AH)f(is)g(set)g(to)37 1735 y(0x83)f(or)f(0x86,)
h(a)f(program)f(m)o(ust)h(ha)o(v)o(e)g(requested)i(the)f(BIOS)h(timing)d(serv\
ices.)19 b(These)12 b(services)g(in)o(terfere)37 1820 y(with)19 b(PC-Choices')
e(use)i(of)g(the)f(hardw)o(are)g(timer)f(so)i(PC-Choices)f(ignores)g(the)g
(request.)31 b(The)19 b(timing)37 1905 y(services)g(are)f(used)g(in)g(rare)g
(circumstances)f(\(e.g.)28 b(\015opp)o(y)19 b(disk)f(access\))g(and)g(most)f
(soft)o(w)o(are)f(requiring)37 1989 y(BIOS)h(timing)c(services)i(will)f(run)h
(prop)q(erly)g(ev)o(en)h(when)f(the)h(requests)f(are)g(ignored.)37 2137 y fi
(2.4.3.3)52 b(Im)o(plem)l(en)o(tation)15 b(of)j(Virtual)e(PC)h(In)o(terface)
37 2252 y fn(A)f fg(VirtualPCInterface)g fn(encapsulates)g(t)o(w)o(o)e fg(Vir\
tualPCT)l(asks)j fn(and)f(t)o(w)o(o)e fg(Semapho)o(res)h fn(to)g(ensure)i(tha\
t)d(eac)o(h)37 2336 y fg(VirtualPCT)l(ask)19 b fn(is)d(b)q(eing)i(used)f(b)o
(y)h(at)e(most)f(one)j fg(Pro)q(cess)g fn(at)e(an)o(y)h(p)q(oin)o(t)g(in)g
(time.)24 b(One)17 b fg(VirtualPCT)l(ask)37 2421 y fn(is)k(dedicated)g(for)g
(executing)g(k)o(eyb)q(oard)g(BIOS)h(routines)e(and)h(the)g(other)g fg(Virtua\
lPCT)l(ask)h fn(is)f(used)g(for)37 2502 y 750 2 v 74 2529 a fs(39)107 2545 y
fp(The)13 b fa(ApplicationPro)q(cess)f fp(is)h(resumed)f(in)h fa(ApplicationP\
ro)q(cess::basicResto)o(re\(\))p fp(.)952 2760 y fn(57)g eop bop 228 350 a
23586707 28417720 2828615 9209446 33548697 45915668 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 43 140 510 698
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -162 46 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 0.5 -0 -0 0.5 205 330 ] concat
%I 10
313 383
7 383
7 192
18 195
25 190
33 195
33 362
312 362
318 370
309 376
10 Poly
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 225.561 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 259.117 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 292.674 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 326.23 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 34.487 393.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 150.987 371.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 67 537 ] concat
%I
[
(16-bit mode)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 66 604 ] concat
%I
[
(32-bit mode)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 180 418 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 126 634 ] concat
%I
[
(Interrupt)
(vector)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 -91 244 ] concat
%I
237 359 237 332 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 112 507 ] concat
%I
[
(Disk interrupt)
(process)
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 -18 250 ] concat
%I 3
174 410
232 367
230 247
3 BSpl
%I 1
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 112 46 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 0.5 -0 -0 0.5 205 330 ] concat
%I 10
313 383
7 383
7 192
18 195
25 190
33 195
33 362
312 362
318 370
309 376
10 Poly
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 225.561 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 259.117 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 292.674 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 326.23 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 308.487 393.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 424.987 371.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 454 418 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 386 507 ] concat
%I
[
(Disk interrupt)
(process)
] Text
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 256 250 ] concat
%I
220 247 167 303 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 52 696 ] concat
%I
[
(Process initiates)
(disk operation)
(by calling DOS or)
(BIOS)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 319 669 ] concat
%I
[
(BIOS sends command to)
(disk controller and signals)
(wait for I/O by generating)
(software interrupt 0x15,)
(setting AH to 0x90)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -30 -216 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 0.5 -0 -0 0.5 205 330 ] concat
%I 10
313 383
7 383
7 192
18 195
25 190
33 195
33 362
312 362
318 370
309 376
10 Poly
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 225.561 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 259.117 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 292.674 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 326.23 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 166.487 131.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 282.987 109.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 244 245 ] concat
%I
[
(Disk interrupt)
(process)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 312 156 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 178 374 ] concat
%I
[
(Upon receiving the interrupt,)
(the Virtual PC blocks the)
(process)
] Text
End

Begin %I Line
%I b 65535
3 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 2 -0 -0 2 -228 -187 ] concat
%I
232 341 266 341 Line
%I 0.5
End

Begin %I Line
%I b 65535
3 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 2 -0 -0 2 -228 -187 ] concat
%I
271 316 251 294 Line
%I 0.5
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 63 437 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 339 437 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 196 175 ] concat
%I
[
([Blocked])
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
244 2248 a fi(Figure)17 b(2.29)p fn(:)j(P)o(erforming)12 b(in)
o(terrupt-driv)o(en)j(I/O)h(with)e(BIOS:)i(I/O)g(initiation)952 2760 y(58)g
eop bop 238 0 a
23274077 12787959 855162 23747215 33548697 41705635 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 13 361 510 634
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -192 6 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 0.5 -0 -0 0.5 205 330 ] concat
%I 10
313 383
7 383
7 192
18 195
25 190
33 195
33 362
312 362
318 370
309 376
10 Poly
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 225.561 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 259.117 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 292.674 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 326.23 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 4.48699 353.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 120.987 331.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 82 467 ] concat
%I
[
(Disk interrupt)
(process)
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -48 210 ] concat
%I 5
117 264
136 288
159 305
168 301
129 260
5 BSpl
%I 1
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 112 6 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 0.5 -0 -0 0.5 205 330 ] concat
%I 10
313 383
7 383
7 192
18 195
25 190
33 195
33 362
312 362
318 370
309 376
10 Poly
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 225.561 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 259.117 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 292.674 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 326.23 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 308.487 353.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 424.987 331.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 454 378 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 386 467 ] concat
%I
[
(Disk interrupt)
(process)
] Text
End

Begin %I Line
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 258 213 ] concat
%I
165 298 215 244 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 17 632 ] concat
%I
[
(When the disk operation has been)
(completed, the disk interrupt)
(process calls BIOS, which signals)
(I/O completion by generating)
(software interrupt 0x15, setting)
(AH to 0x91)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 33 397 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 150 378 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 338 397 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 320 577 ] concat
%I
[
(Virtual PC resumes blocked)
(process)
] Text
End

Begin %I Line
%I b 65535
3 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 50 121 ] concat
%I
167 352 247 352 Line
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 50 121 ] concat
%I 4
439 338
439 429
432 470
391 489
4 BSpl
%I 1
End

End %I eop

showpage

%%Trailer

end

endTexFig
227 908 a fi(Figure)16 b(2.30)p fn(:)k(P)o(erforming)13 b(in)o
(terrupt-driv)o(en)h(I/O)i(with)e(BIOS:)i(I/O)g(completion)37 1044 y(executin\
g)j(all)e(other)h(16-bit)g(routines.)29 b(Although)18 b(16-bit)f(routines)h
(are)g(non-reen)o(tran)o(t)g(in)g(general,)g(it)37 1129 y(is)e(safe)g(to)f
(use)h(the)g(k)o(eyb)q(oard)g(BIOS)h(routines)f(concurren)o(tly)f(with)g(othe\
r)h(16-bit)f(routines.)22 b(This)15 b(setup)37 1213 y(p)q(ermits)i(one)i fg
(Pro)q(cess)g fn(to)f(run)g(a)g(BIOS)i(routine)d(that)h(w)o(aits)f(for)g(a)h
(k)o(eypress)h(and)f(another)g fg(Pro)q(cess)h fn(to)37 1298 y(in)o(v)o(ok)o
(e)c(concurren)o(tly)g(another)f(16-bit)h(routine)f(to)h(access)g(the)h(disk,)
e(for)h(instance.)108 1383 y(Prior)g(to)g(dispatc)o(hing)g(an)o(y)h(16-bit)f
(routine,)g(the)h fg(VirtualPCInterface)h fn(copies)f(memory)d(bu\013ers)j
(from)37 1467 y(the)i(application)e(memory)f(in)o(to)h(the)h fg(VirtualPC)h fn
(Bu\013er)f(Space,)h(if)f(necessary)l(,)h(as)f(sp)q(eci\014ed)h(b)o(y)f(the)h
fg(Vir-)37 1552 y(tualPCArgs)p fn(.)36 b(If)21 b(the)g(caller)e(has)h(declare\
d)h(a)f(Disk)f(T)l(ransfer)h(Area,)h(it)f(will)f(also)g(b)q(e)i(copied)g(in)o
(to)e(the)37 1637 y fg(VirtualPC)e fn(Bu\013er)f(Space)h(and)g(a)f(call)f(wil\
l)g(b)q(e)i(made)e(to)h(DOS)g(to)g(inform)e(it)i(ab)q(out)g(the)g(lo)q(cation)
g(of)f(the)37 1721 y(cop)o(y)l(.)20 b(After)15 b(the)g(16-bit)g(routine)f(has)
h(b)q(een)h(dispatc)o(hed)g(\(b)o(y)e(calling)g fg(VirtualPCT)l(ask::executeV)
o(ecto)o(r\(\))p fn(\),)37 1806 y(the)j(memory)e(bu\013ers)i(are)f(copied)h
(bac)o(k)g(from)e(the)i fg(VirtualPC)h fn(bu\013er)e(space)i(in)o(to)d(applic\
ation)h(memory)37 1891 y(as)f(dictated)g(b)o(y)g(the)h fg(VirtualPCArgs)p fn
(.)k(If)15 b(the)h(caller)e(has)h(used)h(a)f(Disk)f(T)l(ransfer)h(Area,)g(it)
f(will)g(b)q(e)i(copied)37 1975 y(bac)o(k)g(in)o(to)e(application)g(memory)e
(as)j(w)o(ell.)108 2060 y(Requests)g(b)o(y)g(the)g(programmer)c(to)j(execute)
i(the)e(DOS)h(service)g(that)f(returns)h(the)f(curren)o(t)h(Program)37 2145 y
(Segmen)o(t)k(Pre\014x)g(are)g(handled)h(sp)q(ecially)l(.)32 b(The)19 b(Progr\
am)e(Segmen)o(t)h(Pre\014x,)i(lo)q(osely)f(sp)q(eaking,)h(is)f(an)37 2229 y
(iden)o(ti\014er)i(issued)g(b)o(y)g(DOS)g(to)f(iden)o(tify)g(running)h(pro)q
(cesses.)38 b(Due)21 b(to)f(a)h(bug)g(in)f(DOS,)h(this)g(service)37 2314 y
(do)q(es)h(not)e(w)o(ork)g(correctly)g(under)i(PC-Choices.)36 b(Therefore)21 b
(the)g fg(VirtualPCInterface)g fn(b)o(ypasses)g(DOS)37 2399 y(to)16 b(service)
h(the)f(request)h(b)o(y)f(returning)g(the)h(Program)d(Segmen)o(t)h(Pre\014x)i
(that)f(w)o(as)f(sa)o(v)o(ed)h(during)h(k)o(ernel)37 2483 y(initialization.)
28 b(The)19 b(Program)e(Segmen)o(t)g(Pre\014x)i(is)g(required)f(b)o(y)h(PC-Ch\
oices)g(applications)e(that)h(use)37 2568 y(DOS)e(to)f(spa)o(wn)f(o\013)h(oth\
er)g(DOS)g(programs.)952 2760 y(59)g eop bop 37 42 a fi(2.4.3.4)52 b(Servicin\
g)16 b(in)o(terrupts)g(with)h(16-bit)h(in)o(terrupt)e(routines)37 156 y fn
(In)o(terrupts)e(from)e(I/O)j(devices)f(are)g(forw)o(arded)f(to)g(BIOS)i(with)
e(the)h(help)g(of)g fg(Aw)o(aitedInterruptExceptions)37 240 y fn(and)i fg(Int\
erruptPro)q(cesses)p fn(.)23 b(F)l(or)15 b(ev)o(ery)g(in)o(terrupt)g(that)g
(is)g(enabled)h(\(as)f(sp)q(eci\014ed)h(in)f(the)h(system)e(con\014gu-)37 325
y(ration)i(\014le\),)g(an)h fg(InterruptPro)q(cess)h fn(exists)e(to)g(serv)o
(e)h(that)f(particular)f(in)o(terrupt.)23 b(This)17 b fg(InterruptPro)q(cess)
37 410 y fn(runs)k(in)f(a)g(lo)q(op,)g(blo)q(c)o(king)g(on)g(an)g fg(Aw)o(ait\
edInterruptException)k fn(w)o(aiting)18 b(for)h(an)i(in)o(terrupt,)f(and)g
(then)37 494 y(dispatc)o(hes)15 b(a)g fg(VirtualPCT)l(ask)h fn(to)f(execute)h
(the)f(appropriate)f(16-bit)h(in)o(terrupt)f(routine.)1607 478 y fr(40)37 643
y fi(2.4.3.5)52 b(Com)o(m)m(en)n(ts)37 757 y fn(All)14 b fg(VirtualPC)g fn
(abstractions,)e(including)h fg(VirtualPC)i fn(in)o(terceptors,)d(w)o(ere)i
(in)o(v)o(en)o(ted)f(b)o(y)h(m)o(yself.)k(The)c(idea)37 841 y(of)20 b(in)o
(tegrating)d(16-bit)i(programs)e(with)i(32-bit)f(programs)g(in)h(a)g(PC)g(is)
g(not)g(new)h(|)g(sp)q(ecial)f(soft)o(w)o(are)37 926 y(pac)o(k)m(ages)e(calle\
d)f(\\DOS)g(extenders"[44)o(])g(ha)o(v)o(e)g(b)q(een)h(dev)o(elop)q(ed)g(b)o
(y)f(sev)o(eral)g(soft)o(w)o(are)e(v)o(endors.)23 b(These)37 1011 y(programs)
14 b(enable)i(32-bit)f(programs)f(to)i(b)q(e)g(executed)h(in)f(the)g(16-bit)f
(DOS)h(en)o(vironmen)o(t,)e(whic)o(h)i(is)f(the)37 1095 y(opp)q(osite)j(of)f
(what)g(is)g(done)h(b)o(y)g(PC-Choices.)27 b(Some)16 b(DOS)i(extenders)g(use)
g(the)g(virtual-8086)d(mo)q(de)i(to)37 1180 y(execute)d(16-bit)e(programs,)f
(while)h(others)h(\(suc)o(h)g(as)f(the)i(DJGPP)e(DOS)h(extender\))g(switc)o
(h)g(the)g(pro)q(cessor)37 1265 y(to)i(the)g(real-address)g(mo)q(de)g(to)f
(execute)i(16-bit)e(programs.)108 1349 y(Man)o(y)j(commercial)d(32-bit)i(op)q
(erating)g(systems)g(\(suc)o(h)h(as)g(IBM)g(OS/2\))g(allo)o(w)f(16-bit)g(prog\
rams)f(to)37 1434 y(b)q(e)h(executed)g(in)f(virtual-8086)e(mo)q(de.)19 b(Some)
14 b(of)h(these)g(op)q(erating)f(systems)g(con)o(tain)g(v)o(ery)g(sophisticat\
ed)37 1519 y(virtual-8086)j(monitors)g(that)h(em)o(ulate)g(DOS)h(and)h(BIOS)g
(services)f(directly)f(with)h(32-bit)f(co)q(de.)32 b(DOS)37 1603 y(and)20 b
(BIOS)g(calls)f(made)f(b)o(y)h(16-bit)f(programs)f(are)i(e\013ectiv)o(ely)f
(translated)g(in)o(to)h(the)g(32-bit)f(op)q(erating)37 1688 y(system's)j(nati\
v)o(e)g(system)f(calls.)40 b(Some)21 b(op)q(erating)g(systems)g(catc)o(h)g
(all)g(accesses)i(to)e(I/O)i(p)q(orts)e(and)37 1773 y(memory-mapp)q(ed)13 b
(I/O)j(regions)e(to)h(em)o(ulate)e(I/O)j(op)q(erations)e(as)h(w)o(ell.)37 1953
y fd(2.5)70 b(In)n(terpro)r(cess)23 b(Comm)n(unication)d(Subsystem)37 2083 y
fn(In)14 b(this)d(section)h(w)o(e)h(examine)e(the)h(design)h(and)f(implemen)o
(tation)d(of)j(a)g(mac)o(hine-indep)q(eden)o(t)h(in)o(terpro)q(cess)37 2168 y
(comm)o(unication)i(\(IPC\))i(sc)o(heme.)27 b(The)17 b(IPC)h(sc)o(heme)f(do)q
(es)h(not)f(supp)q(ort)h(remote)e(messaging)g(across)h(a)37 2252 y(net)o(w)o
(ork)g(lik)o(e)g(the)g(Amo)q(eba[42)o(])g(and)g(V[8])g(IPC)h(systems,)e(nor)h
(is)g(it)g(as)g(sophisticated)g(as)g(the)h(Mac)o(h[1)o(])37 2337 y(IPC)c(syst\
em.)j(Simplicit)o(y)11 b(is)h(a)h(virtue)f(of)h(the)g(PC-Choices)f(IPC)h(syst\
em)f(|)h(the)g(programmi)o(ng)d(in)o(terface)37 2422 y(is)15 b(clean)g(and)h
(straigh)o(tforw)o(ar)o(d,)c(and)k(the)f(implemen)o(tati)o(on)e(is)h(simple.)
37 2503 y 750 2 v 74 2530 a fs(40)107 2546 y fp(The)h fa(InterruptPro)q(cess)
f fp(executes)j(the)f(function)g fa(virtualPCInterruptPro)q(cessEntry\(\))d fp
(de\014ned)k(in)e fa(MachineDep)q(endent/-)37 2591 y(PC/VirtualPCException.cc)
p fp(.)952 2760 y fn(60)g eop bop 37 42 a ff(2.5.1)56 b(In)n(terpro)r(cess)17
b(Comm)n(unication)k(Mo)r(del)37 156 y fn(PC-Choices)12 b(pro)o(vides)g(a)g
(simple)f(in)o(terpro)q(cess)g(comm)o(unication)e(system)i(for)h(reliable,)f
(ordered)i(message-)37 240 y(passing)f(\(Figure)f(2.31\).)17 b(The)12 b(main)
f(ob)s(jects)g(in)h(the)g(PC-Choices)g(IPC)g(system)e(are)i(messages)f(and)h
(b)q(o)o(xes,)37 325 y(whic)o(h)j(are)g(analogous)e(to)i(letters)f(and)h(mail\
b)q(o)o(xes)e(in)h(the)h(real)g(w)o(orld.)j(In)e(this)e(IPC)h(sc)o(heme,)f
(a)h(message)37 410 y(is)g(the)f(fundamen)o(tal)g(unit)g(of)g(comm)o(unicatio\
n.)j(A)e(message)e(con)o(tains)h(a)g(\014nite)h(length)f(b)o(yte)g(arra)o(y)l
(,)g(used)37 494 y(to)i(transmit)e(data)i(from)e(one)j fg(Pro)q(cess)g fn(to)
e(another.)23 b(messages)15 b(are)h(un)o(t)o(yp)q(ed)h(|)g(the)f(IPC)g(sc)o
(heme)g(do)q(es)37 579 y(not)f(enforce)h(an)o(y)f(particular)e(enco)q(ding)j
(of)f(the)g(b)o(yte)g(arra)o(y)f(enclosed)i(in)f(a)g(message.)201 638 y
24439233 18945146 4999413 25786449 36377313 49928355 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 76 392 553 759
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.607959 2.11076e-23 -2.11076e-23 0.607959 99.115 308.273 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.274602 -0.112821 0.112821 0.274602 289.768 574.238 ] concat
%I 3
74 160
208 86
343 160
3 MLine
%I 2
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.607959 2.11076e-23 -2.11076e-23 0.607959 -41.385 178.273 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.274602 -0.112821 0.112821 0.274602 289.768 574.238 ] concat
%I 3
74 160
208 86
343 160
3 MLine
%I 2
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 442.987 473.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.607959 2.11076e-23 -2.11076e-23 0.607959 232.615 237.273 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.274602 -0.112821 0.112821 0.274602 289.768 574.238 ] concat
%I 3
74 160
208 86
343 160
3 MLine
%I 2
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1.22449 0 0 1.22449 31.8952 41.3206 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 3.22861 0 0 3.22861 -560.344 -538.727 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.125 0 0 0.125 195.375 204 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 150.75 224.5 ] concat
%I 4
138 440
138 127
177 166
177 477
4 MLine
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 0 0 0.25 151 224.5 ] concat
%I 4
314 440
314 127
346 165
346 477
4 MLine
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.125 0 0 0.125 195.375 282.25 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 3.22861 0 0 3.22861 -340.344 -538.727 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.125 0 0 0.125 195.375 204 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 -0 -0 0.25 150.75 224.5 ] concat
%I 4
138 440
138 127
177 166
177 477
4 MLine
%I 4
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.25 0 0 0.25 151 224.5 ] concat
%I 4
314 440
314 127
346 165
346 477
4 MLine
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.125 0 0 0.125 195.375 282.25 ] concat
%I 4
-3 496
-81 420
273 420
337 496
4 Poly
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 87.9872 547.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.486367 3.88387e-24 -3.88387e-24 0.486367 91.7033 230.84 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I
57 145 154 274 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I 3
169 341
249 341
249 226
3 MLine
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 284 296 418 Line
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 26 296 189 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I 4
98 242
224 402
253 402
128 242
4 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I
239 32 373 255 Line
%I 4
End

End %I eop

Begin %I Line
%I b 65520
1 0 1 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 7 202 ] concat
%I
182 296 139 296 Line
%I 1
End

Begin %I BSpl
%I b 65520
1 0 1 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 7 202 ] concat
%I 4
161 420
211 420
216 393
215 322
4 BSpl
%I 1
End

Begin %I BSpl
%I b 65520
1 0 1 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 7 202 ] concat
%I 4
362 428
398 428
399 407
399 378
4 BSpl
%I 1
End

Begin %I Line
%I b 65520
1 0 1 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 7 202 ] concat
%I
423 351 472 351 Line
%I 1
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 144 433 ] concat
%I
48 396 218 396 Line
%I 2
End

Begin %I Line
%I b 65520
1 0 0 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 144 433 ] concat
%I
251 396 407 396 Line
%I 2
End

Begin %I Rect
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 76 400 ] concat
%I
78 128 84 265 Rect
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 67.9872 417.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 178 400 ] concat
%I 4
413 324
419 331
419 256
413 256
4 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.486367 3.88387e-24 -3.88387e-24 0.486367 273.703 288.84 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I
57 145 154 274 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I 3
169 341
249 341
249 226
3 MLine
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 284 296 418 Line
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 26 296 189 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I 4
98 242
224 402
253 402
128 242
4 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I
239 32 373 255 Line
%I 4
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 118 759 ] concat
%I
[
(Domain)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 191 465 ] concat
%I
[
(LocalBox)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 150 564 ] concat
%I
[
(Message)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 124 680 ] concat
%I
[
(Process)
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
484 1936 a fi(Figure)h(2.31)p fn(:)k(In)o(terpro)q(cess)15 b
(comm)o(unication)d(mo)q(del)108 2070 y(A)19 b(b)q(o)o(x)g(is)f(a)h(FIF)o(O)f
(queue)i(for)e(holding)g(incoming)g(messages.)29 b(messages)17 b(ma)o(y)g(b)q
(e)j(retriev)o(ed)e(from)37 2155 y(a)f(b)q(o)o(x)g(only)g(b)o(y)g fg(Pro)q
(cesses)h fn(whic)o(h)f(are)g(in)g(the)g(same)e fg(Domain)h fn(as)h(the)g fg
(Pro)q(cess)h fn(whic)o(h)f(created)g(the)g(b)q(o)o(x.)37 2239 y(The)i(\\pro)
o(xy")e(of)g(a)h(b)q(o)o(x)g(ma)o(y)e(b)q(e)j(exp)q(orted)f(b)o(y)g(a)g fg
(Pro)q(cess)h fn(to)e(another)h(to)f(allo)o(w)f(the)i(other)g fg(Pro)q(cesses)
37 2324 y fn(to)f(send)g(messages)f(to)g(the)h(b)q(o)o(x.)25 b(Messages)16 b
(ma)o(y)g(b)q(e)h(sen)o(t)g(to)f(a)h(b)q(o)o(x)g(pro)o(xy)f(but)h(retriev)m
(al)f(of)h(messages)37 2409 y(from)c(a)i(pro)o(xy)f(is)g(disallo)o(w)o(ed.)j
(Bo)o(x)e(pro)o(xies)e(are)i(exp)q(orted)g(via)e(the)i(reply-to)f(\014eld)h
(of)f(messages)f(or)h(via)g(a)37 2493 y(nameserv)o(er.)k(F)l(or)12 b(example,)
f(in)h(the)h(clien)o(t-serv)o(er)e(scenario)h(of)g(a)g(distributed)g(program,)
e(when)j(the)f(clien)o(t)37 2578 y fg(Pro)q(cess)j fn(sends)f(a)g(request)g
(message)e(to)h(the)h(serv)o(er)g fg(Pro)q(cess)p fn(,)g(the)g(clien)o(t)f
(ma)o(y)g(pass)g(a)h(b)q(o)o(x)g(pro)o(xy)f(through)952 2760 y(61)g eop bop 37
42 a fn(the)16 b(message's)d(reply-to)h(\014eld)h(to)f(the)h(serv)o(er.)20 b
(In)15 b(the)g(same)f(scenario,)g(a)h(serv)o(er)f fg(Pro)q(cess)i fn(ma)o(y)d
(adv)o(ertize)37 126 y(its)k(b)q(o)o(x)h(through)f(the)g(global)f(nameserv)o
(er)h(so)g(that)f(clien)o(t)h fg(Pro)q(cesses)i fn(ma)o(y)d(fetc)o(h)h(the)h
(b)q(o)o(x)f(pro)o(xy)g(from)37 211 y(the)f(nameserv)o(er)e(and)h(use)h(the)f
(pro)o(xy)g(to)f(comm)o(unicate)f(with)h(the)h(serv)o(er)g fg(Pro)q(cess)p fn
(.)108 296 y(An)k(attempt)d(to)i(retriev)o(e)g(a)g(message)f(from)g(an)h(empt)
o(y)f(b)q(o)o(x)h(will)g(b)q(e)h(blo)q(c)o(k)o(ed)f(but)h(the)f(sending)h(of)
37 380 y(messages)14 b(is)h(nev)o(er)h(blo)q(c)o(k)o(ed.)k(Figure)15 b(2.32)f
(illustrates)f(this.)20 b(\(Solid)15 b(arro)o(ws)e(denote)j(con)o(trol)e(\015\
o)o(w)h(while)37 465 y(dashed)j(arro)o(ws)d(denote)i(data)f(\015o)o(w.\))23 b
(The)17 b(programmer)d(ma)o(y)h(query)i(a)f(b)q(o)o(x)h(to)f(determine)f(whet\
her)i(it)37 550 y(is)e(empt)o(y)l(.)104 602 y
27494136 21313290 6841303 26181140 38613893 50651955 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 104 398 587 770
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.486367 3.88387e-24 -3.88387e-24 0.486367 10.7033 403.84 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I
57 145 154 274 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I 3
169 341
249 341
249 226
3 MLine
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 284 296 418 Line
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 26 296 189 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I 4
98 242
224 402
253 402
128 242
4 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I
239 32 373 255 Line
%I 4
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 164.987 585.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 -41 294 ] concat
%I 3
242 379
223 388
206 378
3 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 193 629 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 218 718 ] concat
%I
[
(A)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.607959 2.11076e-23 -2.11076e-23 0.607959 202.615 344.273 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.274602 -0.112821 0.112821 0.274602 289.768 574.238 ] concat
%I 3
74 160
208 86
343 160
3 MLine
%I 2
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.486367 3.88387e-24 -3.88387e-24 0.486367 346.703 403.84 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I
57 145 154 274 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I 3
169 341
249 341
249 226
3 MLine
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 284 296 418 Line
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 26 296 189 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I 4
98 242
224 402
253 402
128 242
4 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I
239 32 373 255 Line
%I 4
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 315.987 565.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 500.987 585.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Line
%I b 65520
1 0 1 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 295 294 ] concat
%I
99 366 151 366 Line
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 295 294 ] concat
%I 5
100 357
129 357
139 349
127 342
99 343
5 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 554 718 ] concat
%I
[
(A)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 369 700 ] concat
%I
[
(B)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 107 769 ] concat
%I
[
(Process A attempts to)
(retrieve a Message from)
(an empty Box and blocks)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 347 609 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 351 769 ] concat
%I
[
(Process B sends a Message)
(to the Box without blocking)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 531 629 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -59 0 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.486367 3.88387e-24 -3.88387e-24 0.486367 176.703 189.84 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I
57 145 154 274 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I 3
169 341
249 341
249 226
3 MLine
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 284 296 418 Line
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 26 296 189 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I 4
98 242
224 402
253 402
128 242
4 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I
239 32 373 255 Line
%I 4
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 330.987 371.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.607959 2.11076e-23 -2.11076e-23 0.607959 124.615 143.273 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.274602 -0.112821 0.112821 0.274602 289.768 574.238 ] concat
%I 3
74 160
208 86
343 160
3 MLine
%I 2
End

End %I eop

Begin %I Line
%I b 65520
1 0 1 [12 4] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 125 80 ] concat
%I
207 373 240 373 Line
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 125 80 ] concat
%I 3
205 366
222 356
242 367
3 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 384 504 ] concat
%I
[
(A)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 277 549 ] concat
%I
[
(Process A resumes execution)
(and retrieves the Message)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 359 415 ] concat
%I
[
([Running])
] Text
End

End %I eop

Begin %I Line
%I b 65535
3 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 41 272 ] concat
%I
216 385 287 385 Line
%I 1
End

Begin %I Line
%I b 65535
3 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 41 272 ] concat
%I
286 338 222 295 Line
%I 1
End

End %I eop

showpage

%%Trailer

end

endTexFig
515 2050 a fi(Figure)i(2.32)p fn(:)i(Sending)d(and)g(receiving)
e(messages)37 2242 y ff(2.5.2)56 b(In)n(terpro)r(cess)17 b(Comm)n(unication)k
(In)n(terface)37 2356 y fn(The)c(class)f fg(Lo)q(calBo)o(x)g fn(encapsulates)
h(the)g(previously)f(describ)q(ed)h(notion)f(of)g(a)h(b)q(o)o(x.)24 b(The)17 b
(class)f fg(Bo)o(x)g fn(rep-)37 2441 y(resen)o(ts)h(a)g(b)q(o)o(x)g(pro)o(xy)
l(.)25 b fg(Lo)q(calBo)o(x)17 b fn(is)f(a)h(sub)q(class)g(of)g fg(Bo)o(x)g fn
(b)q(ecause)h(the)f fg(Lo)q(calBo)o(x)f fn(in)o(terface)h(is)f(a)h(prop)q(er)
37 2525 y(sup)q(erset)i(of)e(the)h fg(Bo)o(x)g fn(in)o(terface)f(\(i.e.)27 b
fg(Bo)o(xes)18 b fn(lac)o(k)f(the)h(message)f(retriev)m(al)g(capabilit)o(y\).)
26 b(Messages)17 b(are)37 2610 y(encapsulated)j(b)o(y)e(the)h fg(Message)h fn
(class.)30 b(The)19 b(presen)o(t)g(implemen)o(tati)o(on)d(do)q(es)j(not)g(enf\
orce)g(an)o(y)f(maxi-)952 2760 y(62)g eop bop 37 42 a fn(m)o(um)11 b(length)i
(on)g(messages,)f(but)h(sending)h(long)e(messages)g(will)g(cause)h(the)g(k)o
(ernel)g(heap)h(to)e(b)q(e)i(exhausted)37 126 y(quic)o(kly)l(.)108 211 y fg
(Lo)q(calBo)o(xes)21 b fn(and)h fg(Bo)o(xes)g fn(ma)o(y)e(b)q(e)i(b)q(ound)g
(to)f(the)g(k)o(ernel)h fg(NameServer)f fn(in)g(order)g(to)g(b)q(e)h(exp)q
(orted)37 296 y(to)f(other)h fg(Pro)q(cesses)p fn(.)40 b(The)22 b fg(Standa)o
(rdNameServers)g fn(used)g(b)o(y)f(applications,)h(termed)e(the)i(application)
37 380 y fg(NameServers)p fn(,)c(are)f(distinct)f(from)g(the)i(k)o(ernel)f fg
(NameServer)q fn(.)25 b(All)17 b fg(NameServers)g fn(in)g(PC-Choices)g(follo)
o(w)37 465 y(a)g(t)o(w)o(o-lev)o(el)f(hierarc)o(h)o(y)l(,)g(where)i(the)f(k)o
(ernel)g fg(NameServer)f fn(o)q(ccupies)i(the)f(\014rst)g(lev)o(el)f(and)i
(all)e(application)37 550 y fg(NameServers)j fn(o)q(ccup)o(y)h(the)f(second)h
(lev)o(el.)30 b(The)20 b(k)o(ernel)f fg(NameServer)f fn(is)h(said)g(to)f(b)q
(e)i(the)f(paren)o(t)g(of)g(all)37 634 y(application)14 b fg(NameServers)h fn
(due)h(to)e(the)i(follo)o(wing)d(reasons:)93 769 y(1.)22 b(Eac)o(h)13 b fg
(NameServer)q fn(,)f(k)o(ernel)i(or)f(application,)f(con)o(tains)g(its)h(o)o
(wn)g(asso)q(ciation)e(table)i(that)g(main)o(tains)151 853 y(asso)q(ciations)
h(b)q(et)o(w)o(een)h(names)f(and)i(ob)s(jects.)93 976 y(2.)22 b(During)15 b
(a)g(lo)q(okup)g(op)q(eration,)f(if)h(the)g(application)f fg(NameServer)h fn
(fails)f(to)g(\014nd)i(a)f(requested)h(ob)s(ject)151 1060 y(with)f(a)g(partic\
ular)e(name,)h(it)h(will)f(forw)o(ard)f(the)j(lo)q(okup)f(op)q(eration)f(to)h
(the)g(k)o(ernel)g(NameServ)o(er.)93 1182 y(3.)22 b(Ev)o(ery)f(application)e
(pro)q(cess,)k(when)e(created,)h(is)f(allo)q(cated)f(its)g(o)o(wn)h(applicati\
on)e fg(NameServer)q fn(.)151 1267 y(Eac)o(h)12 b(application)e(pro)q(cess)i
(uses)g(its)f(application)f fg(NameServer)h fn(b)o(y)h(default,)f(th)o(us)h
(a)f(bind)h(op)q(eration)151 1352 y(on)23 b(the)g(default)f fg(NameServer)g fn
(\(i.e.)41 b fg(Standa)o(rdNameServer)q fn(\))23 b(will)e(a\013ect)h(only)g
(the)h(application)151 1436 y fg(NameServer)q fn(,)14 b(not)g(the)i(k)o(ernel)
f fg(NameServer)q fn(.)108 1571 y(Therefore,)d(in)g(order)g(to)g(exp)q(ort)g
fg(Bo)o(xes)g fn(globally)f(to)g(other)h(application)f(pro)q(cesses,)i(the)f
(k)o(ernel)g fg(Name-)37 1655 y(Server)17 b fn(should)f(b)q(e)g(used,)h(since)
f(all)f(bindings)h(to)f(the)h(application)f fg(NameServer)g fn(are)h(not)g
(visible)f(outside)37 1740 y(the)j(application)e(pro)q(cess)h(o)o(wning)f(the)
i fg(NameServer)q fn(.)24 b(The)18 b(k)o(ernel)e fg(NameServer)h fn(ma)o(y)f
(b)q(e)i(fetc)o(hed)f(from)37 1825 y(the)c fg(Standa)o(rdNameServer)h fn(b)o
(y)e(lo)q(oking)g(up)h(the)g(name)e(\\KernelNameServ)o(er".)18 b(The)13 b(co)
q(de)g(in)g(Figure)f(2.33)37 1910 y(sho)o(ws)20 b(ho)o(w)f(an)g(application)g
(program)e(ma)o(y)h(create)i(a)f fg(Lo)q(calBo)o(x)g fn(and)h(exp)q(ort)g(it)
f(through)g(the)h(k)o(ernel)37 1994 y fg(NameServer)q fn(.)h(The)c(co)q(de)f
(in)g(Figure)f(2.34)g(sho)o(ws)h(ho)o(w)f(an)h(application)f(program)f(ma)o
(y)g(fetc)o(h)i(the)g fg(Lo)q(cal-)37 2079 y(Bo)o(x)f fn(that)g(w)o(as)f(exp)
q(orted)i(in)f(that)f(manner.)108 2164 y(When)j(a)f fg(Message)h fn(ob)s(ject)
e(is)h(created,)g(it)g(con)o(tains)f(no)h(data)g(and)g(the)h(reply-to)e(\014e\
ld)i(is)f(set)g(to)f(n)o(ull.)37 2248 y(T)l(o)g(set)g(the)g(data)g(in)g(a)g fg
(Message)p fn(,)g(w)o(e)g(call)f(the)h fg(Message::setContent\(\))j fn(metho)
q(d.)h(This)14 b(metho)q(d)h(requires)37 2333 y(t)o(w)o(o)g(argumen)o(ts:)j
(a)d(p)q(oin)o(ter)g(to)g(the)g(data)g(to)g(b)q(e)h(copied)f(in)o(to)g(the)g
fg(Message)p fn(,)h(and)g(an)f(in)o(teger)g(sp)q(ecifying)37 2418 y(the)f(n)o
(um)o(b)q(er)f(of)g(b)o(ytes)h(of)f(data)g(to)g(b)q(e)h(copied.)20 b fg(Messa\
ge::setReplyT)l(o\(\))15 b fn(is)e(used)h(to)f(set)g(the)h(reply-to)f(\014eld)
37 2502 y(of)k(the)h fg(Message)p fn(.)26 b(After)17 b(the)h fg(Message)f fn
(has)h(b)q(een)g(initialized,)e(the)h fg(Message)h fn(ma)o(y)d(b)q(e)j(sen)o
(t)f(to)g(a)g fg(Bo)o(x)g fn(or)37 2587 y(a)g fg(Lo)q(calBo)o(x)f fn(b)o(y)h
(calling)f(the)h fg(Message::send\(\))h fn(metho)q(d.)25 b(The)17 b fg(send\(\
\))h fn(metho)q(d)e(returns)h(righ)o(t)f(after)g(the)952 2760 y(63)g eop bop
196 2 a 1559 2 v 196 411 a 2 410 v 316 48 a fk(//)46 b(Cr)n(e)n(ate)22 b(a)h
(L)n(o)n(c)n(alBox.)316 105 y fg(Lo)q(calBo)o(xSta)o(r)14 b(myBo)o(x)g(=)i fi
(new)e fg(Lo)q(calBo)o(x;)316 161 y fk(//)46 b(F)m(etch)22 b(the)h(kernel)f
(NameServer.)316 218 y fg(NameServerSta)o(r)14 b(k)o(ernelNameServer)g(=)i
(Standa)o(rdNameServer)f fl(!)h fg(lo)q(okup)407 274 y(\()p fh("KernelNameSer\
ver")p fg(,)c fh("NameServer")p fg(\);)316 330 y fk(//)46 b(Bind)22 b(my)h
(L)n(o)n(c)n(alBox)f(to)h(the)g(kernel)f(NameServer.)316 387 y fg(k)o(ernelNa\
meServer)14 b fl(!)i fg(bind)g(\()p fh("FooServer")p fg(,)d(myBo)o(x\);)1753
411 y 2 410 v 196 413 a 1559 2 v 147 490 a fi(Figure)j(2.33)p fn(:)k(Creating)
14 b(a)h fg(Lo)q(calBo)o(x)f fn(and)i(exp)q(orting)e(it)h(through)f(the)i(k)o
(ernel)f fg(NameServer)196 550 y 1559 2 v 196 674 a 2 125 v 316 594 a(Bo)o
(xSta)o(r)g(serverBo)o(x)f(=)i(Standa)o(rdNameServer)f fl(!)h fg(lo)q(okup)
407 650 y(\()p fh("FooServer")p fg(,)d(Bo)o(x\);)1753 674 y 2 125 v 196 676 a
1559 2 v 417 753 a fi(Figure)j(2.34)p fn(:)k(F)l(etc)o(hing)15 b(a)g fg(Lo)q
(calBo)o(x)f fn(from)f(the)j fg(NameServer)37 887 y(Message)g fn(has)e(b)q
(een)i(sen)o(t,)e(without)g(w)o(aiting)f(for)h(the)h fg(Message)g fn(to)f(b)q
(e)i(retriev)o(ed)e(b)o(y)g(some)g(other)g fg(Pro)q(cess)p fn(.)37 971 y(Figu\
re)h(2.35)f(sho)o(ws)g(ho)o(w)h(to)g(create,)f(initialize)g(and)h(send)h(a)f
fg(Message)p fn(.)196 1031 y 1559 2 v 196 1269 a 2 238 v 316 1076 a fg(Messag\
e)h(msg;)316 1132 y(msg.setContent)h(\()p fh("This)23 b(is)g(the)h(message)f
(data")p fg(,)14 b(24\);)316 1188 y(msg.setReplyT)l(o)i(\(myBo)o(x\);)316 1245
y(msg.send)g(\(anotherBo)o(x\);)1753 1269 y 2 238 v 196 1271 a 1559 2 v 392
1348 a fi(Figure)h(2.35)p fn(:)i(Creating,)14 b(initializing)f(and)i(sending)
g(a)g fg(Message)108 1482 y fn(T)l(o)j(retriev)o(e)f(a)h fg(Message)h fn(from)
e(a)g fg(Lo)q(calBo)o(x)p fn(,)h fg(Message::receive\(\))g fn(should)g(b)q
(e)h(called.)28 b(This)18 b(metho)q(d)37 1567 y(requires)e(an)f(argumen)o(t)e
(of)i(t)o(yp)q(e)g fg(Lo)q(calBo)o(x)g fn(to)f(sp)q(ecify)i(the)f fg(Lo)q(cal\
Bo)o(x)g fn(from)e(whic)o(h)i(the)h fg(Message)f fn(should)37 1651 y(b)q(e)k
(retriev)o(ed.)28 b(The)18 b(t)o(yp)q(e-c)o(hec)o(king)g(is)f(useful)h(for)g
(prev)o(en)o(ting)f(programmers)e(from)h(reading)h fg(Messages)37 1736 y fn
(from)h(a)i fg(Bo)o(x)p fn(,)g(whic)o(h)g(is)f(really)f(mean)o(t)g(to)i(b)q
(e)g(a)f fg(Lo)q(calBo)o(x)g fn(pro)o(xy)g(that)g(do)q(es)h(not)g(allo)o(w)e
(the)h(retriev)m(al)37 1821 y(of)e fg(Messages)p fn(.)24 b(If)17 b(the)f fg
(Lo)q(calBo)o(x)g fn(is)g(empt)o(y)l(,)f fg(Message::receive\(\))h fn(will)f
(return)i(to)f(the)g(caller)g(only)g(when)h(a)37 1905 y fg(Message)f fn(arriv)
o(es.)i fg(Lo)q(calBo)o(x::isEmpt)o(y\(\))13 b fn(ma)o(y)f(b)q(e)k(used)f(to)
f(\014nd)h(out)f(whether)h(a)f fg(Lo)q(calBo)o(x)g fn(con)o(tains)g(an)o(y)37
1990 y fg(Messages)p fn(,)k(but)f(rep)q(eated)h(p)q(olling)e(of)g fg(Lo)q(cal\
Bo)o(xes)h fn(should)g(b)q(e)g(a)o(v)o(oided.)24 b(The)17 b fg(notifyBo)o(x)g
fn(feature,)g(to)f(b)q(e)37 2075 y(describ)q(ed)h(later,)e(should)h(b)q(e)h
(used)g(to)e(a)o(v)o(oid)g(the)h(p)q(olling)f(of)g fg(Lo)q(calBo)o(xes)h fn
(when)h(reading)e(from)g(m)o(ultiple)37 2160 y fg(Lo)q(calBo)o(xes)p fn(.)108
2244 y(The)k(metho)q(ds)e fg(Message::replyT)l(o\(\))p fn(,)h fg(size\(\))f fn
(and)i fg(content\(\))g fn(return)g(the)f(reply-to)f(\014eld,)i(the)g(size)f
(of)37 2329 y(the)g fg(Message)g fn(data,)e(and)i(a)f(p)q(oin)o(ter)f(to)h
(the)g fg(Message)h fn(data,)f(resp)q(ectiv)o(ely)l(.)26 b(T)l(o)16 b(retriev)
o(e)h(and)g(pro)q(cess)h(a)37 2414 y fg(Message)p fn(,)e(one)f(ma)o(y)f(write)
g(co)q(de)i(as)f(sho)o(wn)f(in)h(Figure)g(2.36.)108 2498 y(The)20 b(IPC)f(sys\
tem)f(includes)i(a)f(sp)q(ecial)g(feature)g(to)g(allo)o(w)e(a)i(single)g fg
(Pro)q(cess)h fn(to)f(retriev)o(e)f fg(Messages)37 2583 y fn(from)c(sev)o(era\
l)g fg(Bo)o(xes)h fn(without)f(ha)o(ving)g(to)g(p)q(oll)g(eac)o(h)h fg(Bo)o
(x)g fn(rep)q(eatedly)l(.)20 b(When)15 b(creating)f(a)h fg(Lo)q(calBo)o(x)p fn
(,)e(the)952 2760 y(64)g eop bop 196 2 a 1559 2 v 196 465 a 2 464 v 316 46 a
fg(Message)16 b(msg;)316 102 y fk(//)46 b(Wait)23 b(for)g(a)g(Message)f(to)h
(arrive,)g(if)g(ther)n(e)f(is)h(none,)316 159 y(//)46 b(and)23 b(c)n(opy)f
(the)h(data)h(into)e(msg.)316 215 y fg(msg.receive)14 b(\(myLo)q(calBo)o(x\);)
316 271 y fi(v)o(oid)g fl(\003)p fg(msgContent)i(=)f(msg.content)h(\(\);)316
328 y fi(in)o(t)e fg(msgSize)h(=)g(msg.size)g(\(\);)316 384 y(Bo)o(xSta)o(r)g
(replyBo)o(x)f(=)i(msg.replyT)l(o)e(\(\);)316 441 y(p)o(ro)q(cessMessage)j
(\(msgContent,)e(msgSize,)f(replyBo)o(x\);)1753 465 y 2 464 v 196 467 a 1559 2
v 464 544 a fi(Figure)j(2.36)p fn(:)i(Retrieving)c(and)h(pro)q(cessing)f(a)f
(Message)37 677 y(programmer)f(ma)o(y)h(optionally)g(sp)q(ecify)i(another)f fg
(Bo)o(x)g fn(as)g(the)h(argumen)o(t)e(of)h(the)h fg(Lo)q(calBo)o(x)f fn(const\
ructor.)37 762 y(This)i fg(Bo)o(x)f fn(argumen)o(t)f(is)h(designated)g(the)h
fg(notifyBo)o(x)f fn(and)h(ev)o(ery)g fg(Lo)q(calBo)o(x)f fn(is)g(asso)q(ciat\
ed)f(with)h(at)g(most)37 846 y(one)d fg(notifyBo)o(x)p fn(.)18 b(Ev)o(ery)12 b
(time)e(a)i fg(Message)g fn(is)g(dep)q(osited)g(in)o(to)f(a)g fg(Lo)q(calBo)o
(x)p fn(,)h(the)g(k)o(ernel)f(will)g(send)h(a)g fg(Message)37 931 y fn(to)j
(the)f(asso)q(ciated)g fg(notifyBo)o(x)p fn(,)h(setting)f(the)g(second)i fg
(Message)p fn('s)e(reply-to)g(\014eld)h(to)g(iden)o(tify)e(the)i fg(Lo)q(calB\
o)o(x)37 1016 y fn(that)g(has)g(just)g(receiv)o(ed)h(the)f(\014rst)g fg(Messa\
ge)p fn(.)21 b(With)14 b(the)h fg(notifyBo)o(x)h fn(feature,)e(a)h(single)g fg
(Pro)q(cess)h fn(ma)o(y)e(read)37 1100 y fg(Messages)21 b fn(from)c(m)o(ultip\
le)g fg(Lo)q(calBo)o(xes)i fn(asso)q(ciated)g(with)g(a)g(single)f fg(notifyBo)
o(x)p fn(.)32 b(This)19 b(is)g(illustrated)f(b)o(y)37 1185 y(Figure)d(2.37.)
37 1336 y ff(2.5.3)56 b(In)n(terpro)r(cess)17 b(Comm)n(unication)k(Implemen)n
(tation)37 1450 y fn(The)16 b(PC-Choices)g(implemen)o(tati)o(on)d(of)i(the)h
(IPC)g(system)e(describ)q(ed)j(ab)q(o)o(v)o(e)e(is)h(simple)e(and)i(straigh)o
(tfor-)37 1535 y(w)o(ard.)35 b fg(Bo)o(xes)20 b fn(and)h fg(Lo)q(calBo)o(xes)
f fn(are)g(k)o(ernel)g(en)o(tities)f(that)g(pro)o(vide)h(pro)o(xy)g(in)o(terf\
aces)f(to)h(application)37 1619 y(programs.)j(Eac)o(h)17 b fg(Lo)q(calBo)o
(x)f fn(con)o(tains)f(an)i(arra)o(y)f(\()p fg(Lo)q(calBo)o(x::messageBu\013er)
p fn(\))e(that)i(serv)o(ers)h(as)f(a)h(FIF)o(O)37 1704 y(queue)f(for)f(storin\
g)e(p)q(oin)o(ters)i(to)f(incoming)f fg(Messages)p fn(.)21 b(A)15 b fg(Semaph\
o)o(re)g fn(is)f(used)i(to)e(main)o(tain)f(consistency)37 1789 y(in)i(the)g
(queue)g(during)g(concurren)o(t)g(accesses.)20 b(Another)14 b fg(Semapho)o
(re)h fn(is)f(used)h(to)f(blo)q(c)o(k)h(attempts)d(to)j(read)37 1873 y(an)h
(empt)o(y)f(queue.)24 b fg(Messages)17 b fn(and)f(their)f(data)h(are)f(copied)
i(on)o(to)e(the)h(k)o(ernel)g(heap)g(when)h(they)f(are)g(sen)o(t)37 1958 y
(and)g(are)f(deleted)g(from)f(the)h(k)o(ernel)g(heap)h(after)e(they)h(ha)o
(v)o(e)g(b)q(een)h(retriev)o(ed.)108 2043 y(A)i fg(Lo)q(calBo)o(x)e fn(ma)o
(y)g(con)o(tain)h(up)h(to)f(1024)f fg(Messages)p fn(.)1038 2026 y fr(41)1103
2043 y fn(If)i(an)f(attempt)f(is)h(made)f(to)h(add)h(a)f fg(Message)37 2127 y
fn(to)d(a)g fg(Lo)q(calBo)o(x)f fn(that)h(has)g(no)g(more)f(ro)q(om)g(for)g fg
(Messages)p fn(,)i(the)g(curren)o(t)f fg(Pro)q(cess)h fn(will)e(rep)q(eat)h
(the)g(attempt)37 2212 y(once)i(ev)o(ery)f(second)h(un)o(til)e(it)h(is)f(succ\
essful.)108 2297 y(F)l(or)19 b(e\016cien)o(t)h(manipulation)d(of)j fg(Message\
s)p fn(,)h(the)f(implemen)o(tatio)o(n)d(of)j(the)g fg(Message)g fn(class)f
(is)h(repli-)37 2381 y(cated.)g(The)c fg(Message)g fn(metho)q(ds)e(are)h(pres\
en)o(t)g(in)g(the)h(k)o(ernel)f(and)g(also)f(in)h(the)g(application-lev)o(el)
f(system)37 2462 y 750 2 v 74 2489 a fs(41)107 2505 y fp(The)i(maxim)o(um)d fa
(Message)j fp(coun)o(t)g(is)g(de\014ned)h(b)o(y)g(the)f fa(Lo)q(calBo)o(x::me\
ssageBu\013erSize)f fp(constan)o(t)i(in)f fa(Includes/Machine-)37 2551 y(Dep)
q(endent/PC/Bo)o(x.h)p fp(.)952 2760 y fn(65)g eop bop 196 549 a 1559 2 v 196
1975 a 2 1426 v 316 596 a fk(//)46 b(Cr)n(e)n(ate)22 b(a)h(L)n(o)n(c)n(alBox)
e(as)i(the)g(notifyBox.)316 652 y fg(Lo)q(calBo)o(xSta)o(r)14 b(myNotifyBo)o
(x)g(=)i fi(new)e fg(Lo)q(calBo)o(x;)316 709 y fk(//)46 b(Cr)n(e)n(ate)22 b
(10)h(L)n(o)n(c)n(alBoxes,)e(e)n(ach)i(p)n(ointing)f(to)h(myNotifyBox)g(as)f
(its)316 765 y(//)46 b(notifyBox.)316 822 y fg(Lo)q(calBo)o(xSta)o(r)14 b(myB\
o)o(xes)h([10];)316 878 y fi(for)g fg(\()p fi(in)o(t)f fg(i)h(=)g(0;)g(i)g fl
(\024)g fg(9;)g(i++\))407 935 y(myBo)o(xes)f([i])i(=)f fi(new)g fg(Lo)q(calBo)
o(x)f(\(myNotifyBo)o(x\);)316 991 y fk(//)46 b(Exp)n(ort)23 b(al)r(l)f(10)i
(entries)d(of)i(myBoxes.)46 b(Co)n(de)22 b(omitte)n(d.)316 1048 y fn(.)8 b
(.)g(.)316 1104 y fi(for)15 b fg(\(;;\))316 1160 y fl(f)407 1217 y fg(Message)
h(msg;)407 1273 y fk(//)46 b(Wait)23 b(for)g(a)g(Message)f(fr)n(om)h(myNotify\
Box.)46 b(When)23 b(a)f(Message)407 1330 y(//)46 b(arrives)22 b(in)h(any)f
(one)h(of)g(the)f(entries)g(in)h(myBoxes,)407 1386 y(//)46 b(myNotifyBox)23 b
(wil)r(l)g(also)f(r)n(e)n(c)n(eive)f(a)i(Message.)407 1443 y fg(msg.receive)
14 b(\(myNotifyBo)o(x\);)407 1499 y fk(//)46 b(The)22 b(r)n(eplyT)m(o)g(\014e\
ld)g(says)g(which)h(L)n(o)n(c)n(alBox)f(has)h(just)f(r)n(e)n(c)n(eive)n(d)407
1556 y(//)46 b(a)23 b(Message.)44 b(o)n(c)n(cupie)n(dBox)23 b(should)g(p)n
(oint)f(to)h(one)g(of)g(the)407 1612 y(//)46 b(entries)22 b(in)g(myBoxes.)407
1669 y fg(Lo)q(calBo)o(xSta)o(r)14 b(o)q(ccupiedBo)o(x)j(=)e(\(Lo)q(calBo)o
(xSta)o(r\))f(msg.replyT)l(o)g(\(\);)407 1725 y fk(//)46 b(R)n(e)n(ad)22 b
(and)h(pr)n(o)n(c)n(ess)e(the)i(Message)f(fr)n(om)h(the)g(entry)f(in)h(myBoxe\
s)407 1781 y(//)46 b(that)23 b(has)g(sent)f(us)g(noti\014c)n(ation.)407 1838 y
fg(msg.receive)14 b(\(o)q(ccupiedBo)o(x\);)407 1894 y(p)o(ro)q(cessMessage)j
(\(msg\);)316 1951 y fl(g)1753 1975 y 2 1426 v 196 1977 a 1559 2 v 396 2053 a
fi(Figure)f(2.37)p fn(:)k(Reading)c fg(Messages)g fn(from)d(m)o(ultiple)g fg
(Lo)q(calBo)o(xes)952 2760 y fn(66)g eop bop 37 42 a fn(in)o(terface)16 b(lib\
rary)l(.)23 b(A)16 b(giv)o(en)g fg(Message)h fn(and)f(its)g(data)g(resides)g
(either)g(en)o(tirely)g(in)g(the)g(k)o(ernel)h(or)e(en)o(tirely)37 126 y(in)h
(application)e(space.)22 b(This)16 b(is)f(unlik)o(e)g fg(Bo)o(xes)p fn(,)h
(whic)o(h)g(reside)g(only)f(in)g(the)h(k)o(ernel)g(and)g(are)f(accessed)i(b)o
(y)37 211 y(application)h(programs)e(through)i(the)h(pro)o(xy)f(mec)o(hanism.)
27 b fg(Messages)19 b fn(are)g(passed)f(in)o(to)g(the)g(k)o(ernel)h(b)o(y)37
296 y(p)q(oin)o(ters,)g(but)h(the)f(pro)o(xy)f(mec)o(hanism)f(in)i(PC-Choices)
f(do)q(es)i(not)e(supp)q(ort)h(this)g(usage)f(con)o(v)o(enien)o(tly)l(.)37 380
y(More)d(precisely)l(,)f(a)g fg(Message)i fn(ma)o(y)d(store)h(a)g(pro)o(xy)g
(for)g(a)h fg(Bo)o(x)f fn(in)h(the)f fg(Message)p fn('s)h(reply-to)f(\014eld)
h(when)g(the)37 465 y fg(Message)e fn(is)e(passed)h(in)o(to)f(the)h(k)o(ernel\
.)19 b(The)12 b(pro)o(xy)f(mec)o(hanism)e(do)q(es)k(not)e(manipulate)f(pro)o
(xies)h(em)o(b)q(edded)37 550 y(inside)16 b(an)f(ob)s(ject,)f(so)h(the)g(IPC)
g(system)f(explicitly)g(strips)g(and)i(allo)q(cates)e(pro)o(xies)g(for)h fg
(Bo)o(xes)p fn(.)1703 533 y fr(42)37 698 y fi(2.5.3.1)52 b(Com)o(m)m(en)n(ts)
37 812 y fn(The)22 b(PC-Choices)e(IPC)h(system)e(w)o(as)h(deriv)o(ed)h(from)e
(a)h(system)g(designed)h(b)o(y)g(Sw)o(ee)g(Bo)q(on)f(Lim,)h(Rob)37 897 y(Knau\
erhase)f(and)f(m)o(yself)e(for)h(an)h(adv)m(anced)g(op)q(erating)f(systems)g
(course.)30 b(The)19 b(original)e(IPC)i(system)37 981 y(w)o(as)12 b(implemen)
o(ted)e(with)i(the)g(SP)l(AR)o(C)h(v)o(ersion)f(of)f(Choices[38)o(])h(and)h
(supp)q(orts)f(remote)f(messaging)f(across)37 1066 y(an)17 b(Ethernet)f(net)o
(w)o(ork.)23 b(An)17 b(in)o(teresting)e(application)g(of)h(the)h(IPC)g(system)
e(is)h(the)g(Choices)g(remote)f(\014le)37 1151 y(system[9)n(].)35 b(I)21 b
(reimplemen)o(ted)d(the)j(IPC)f(system)f(for)h(PC-Choices,)h(impro)o(ving)d
(the)i(in)o(terface)g(in)g(the)37 1235 y(pro)q(cess.)h(There)15 b(exists)g
(another)g(IPC)g(system)f(for)h(Choices)g(that)g(is)f(more)g(\015exible)i(and)
f(elab)q(orate)g(than)37 1320 y(the)h(one)f(presen)o(ted)h(here[21)o(,)f(20].)
37 2521 y 750 2 v 74 2548 a fs(42)107 2564 y fp(There)f(is)f(a)h(bug)h(in)e
(the)h(pro)o(xy)h(mec)o(hanism)e(that)h(a\013ects)g(the)g(passing)h(of)f fa
(Messages)f fp(as)h(argumen)o(ts)g(to)g fa(Bo)o(x)f fp(metho)q(ds.)37 2610 y
(Due)h(to)f(the)g(bug,)g fa(Messages)g fp(ha)o(v)o(e)g(to)g(b)q(e)g(cast)h
(to)f(in)o(tegers)g(b)q(efore)g(b)q(eing)h(passed)g(to)e(the)i fa(Bo)o(x)e fp
(metho)q(ds.)952 2760 y fn(67)g eop bop 37 405 a fc(Chapter)35 b(3)37 675 y fb
(Kernel)41 b(Pro)s(cedures)1278 897 y fj(I)16 b(get)f(out)g(of)f(b)q(ed)i(at)
f(half)g(past)f(ten)1120 954 y(Phone)h(up)h(a)f(friend)g(who's)f(a)h(part)o
(y)g(animal)1164 1010 y(T)l(urn)h(on)f(the)g(news)h(and)f(drink)g(some)f(tea)
950 1066 y(Ma)o(yb)q(e)h(if)f(y)o(ou're)h(with)f(me)h(w)o(e'll)e(do)j(some)d
(shopping)1345 1123 y(|)i(\\Left)g(to)g(m)o(y)f(o)o(wn)g(devices")108 1208 y
fn(A)j(PC-Choices)f(session)g(is)g(carried)g(out)g(in)g(four)g(phases:)23 b
(b)q(o)q(otstrapping,)16 b(when)h(the)f(k)o(ernel)g(image)37 1292 y(is)f(load\
ed)f(in)o(to)g(memory;)e(initializatio)o(n,)g(when)j(the)g(k)o(ernel)f(image)
f(is)h(executed)i(and)e(k)o(ernel)h(ob)s(jects)f(are)37 1377 y(initialized;)
21 b(application)d(dispatc)o(hing,)i(when)g(the)g(k)o(ernel)g(executes)g(the)
g(command)e(shell)h(to)h(in)o(teract)37 1462 y(with)f(the)g(user;)i(terminati\
on,)c(when)j(the)f(k)o(ernel)g(returns)g(to)f(DOS.)h(This)g(c)o(hapter)g(desc\
rib)q(es)h(eac)o(h)f(of)37 1546 y(these)d(pro)q(cedures)g(in)f(detail.)37 1727
y fd(3.1)70 b(Bo)r(otstrapping)37 1857 y fn(Loadco\013)12 b(is)f(the)g(DOS)h
(program)d(that)i(loads)g(the)h(PC-Choices)f(k)o(ernel)g(image)f(in)o(to)g
(memory)f(and)j(executes)37 1941 y(the)g(image.)243 1925 y fr(1)279 1941 y fn
(This)f(program)d(also)i(reads)h(the)h(system)d(con\014guration)h(\014le)h
(and)h(translates)d(the)i(information)37 2026 y(in)o(to)19 b(a)g(binary)g(for\
m)f(that)g(the)i(k)o(ernel)f(can)g(understand.)33 b(Loadco\013)19 b(obtains)g
(information)d(ab)q(out)j(the)37 2111 y(mac)o(hine)c(con\014guration)f(and)h
(passes)g(it)g(to)f(the)i(k)o(ernel)f(as)f(w)o(ell.)108 2195 y(As)19 b(its)f
(name)g(implies,)g(most)f(of)i(the)g(co)q(de)h(in)f(loadco\013)f(is)g(for)h
(reading)f(the)h(k)o(ernel)g(image,)f(stored)37 2280 y(in)h(the)g(GNU)f(encap\
sulated)h(COFF)f(format,)f(from)g(a)h(\014le)h(and)g(writing)e(it)h(in)o(to)f
(memory)l(.)28 b(The)19 b(\014le)g(is)37 2365 y(sp)q(eci\014ed)c(b)o(y)f(a)f
(command-line)e(argumen)o(t)h(for)h(loadco\013.)18 b(The)13 b(COFF)g(\014le)h
(con)o(tains)f(a)g(header)h(and)f(three)37 2449 y(sections,)19 b(whic)o(h)f
(are)g(the)h(text,)f(data)g(and)h(BSS)g(sections)f(of)g(the)g(k)o(ernel.)30 b
(The)18 b(text)g(section)g(con)o(tains)37 2530 y 750 2 v 89 2557 a fs(1)107
2573 y fp(Loadco\013)c(w)o(as)f(join)o(tly)f(dev)o(elop)q(ed)i(b)o(y)g(Da)o
(v)o(e)f(Kohr)g(and)h(m)o(yself.)952 2760 y fn(68)g eop bop 37 42 a fn(k)o
(ernel)19 b(co)q(de)h(and)f(the)g(data)g(section)f(con)o(tains)g(initialized)
g(k)o(ernel)h(data.)30 b(The)19 b(BSS)h(section)f(holds)g(all)37 126 y(uninit\
ialized)13 b(k)o(ernel)h(v)m(ariables)g(that)f(should)h(b)q(e)h(initialized)d
(to)i(0)f(at)h(startup)f(time,)f(but)j(no)f(\014le)g(space)g(is)37 211 y(used)
g(to)e(store)g(the)h(uninitialized)e(data.)18 b(The)13 b(header)g(sp)q(eci\
\014es)h(the)f(sizes)f(of)g(eac)o(h)h(section,)g(the)f(addresses)37 296 y(at)
j(whic)o(h)g(eac)o(h)g(section)g(should)g(b)q(e)h(loaded,)e(and)h(the)g(addre\
ss)h(where)f(execution)g(should)g(b)q(egin,)g(among)37 380 y(other)j(things.)
26 b(The)18 b(header)g(is)f(in)o(terpreted)g(b)o(y)h(loadco\013)e(in)i(order)
f(to)g(bring)g(the)h(separate)f(sections)g(of)37 465 y(the)f(k)o(ernel)f(imag\
e)e(in)o(to)h(memory)l(.)108 550 y(The)j(PC-Choices)f(k)o(ernel)h(image)e(o)q
(ccupies)i(a)g(con)o(tiguous)f(region)g(of)g(memory)e(starting)h(at)h(address)
37 634 y(0x100000,)f(whic)o(h)i(is)f(precisely)h(the)g(1)f(megab)o(yte)g(b)q
(oundary)l(.)25 b(DOS)17 b(applications)f(run)h(in)f(16-bit)g(mo)q(de)37 719 y
(and)k(are)g(normally)d(not)j(able)f(to)g(address)h(all)f(ph)o(ysical)g(memor\
y)e(ab)q(o)o(v)o(e)j(the)g(1)f(megab)o(yte)f(b)q(oundary)l(.)37 804 y(This)13
b(ph)o(ysical)g(memory)e(is)h(termed)h(high)g(memory)l(.)k(BIOS)d(pro)o(vides)
f(a)g(service)g(\(in)o(terrupt)f(0x15,)h(service)37 888 y(0x87\))f(to)h(mo)o
(v)o(e)e(blo)q(c)o(ks)h(of)h(data)f(to)h(and)g(from)e(high)i(memory)l(.)k(Loa\
dco\013)12 b(uses)h(this)g(service)g(to)f(mo)o(v)o(e)f(data)37 973 y(from)j
(ordinary)g(lo)o(w)g(memory)f(to)i(high)g(memory)l(.)108 1058 y(After)k(readi\
ng)g(the)h(k)o(ernel)g(image)d(in)o(to)i(memory)l(,)f(loadco\013)g(reads)i
(the)f(system)g(con\014guration)f(\014le)37 1142 y(and)f(stores)f(the)h(data)
f(in)o(to)g(the)h(C++)g(structure)g(called)f fg(PCCon\014guration)p fn(.)25 b
(This)17 b(is)f(done)h(in)g fg(con\014g.c)p fn(.)1893 1126 y fr(2)37 1227 y fn
(The)22 b(con\014guration)e(\014le)h(con)o(tains)f(a)g(list)g(of)g(parameter)
g(settings,)g(in)o(tersp)q(ersed)h(with)g(with)f(optional)37 1312 y(commen)o
(ts.)f(Eac)o(h)d(setting)f(is)g(of)g(the)h(form)e(\\P)l(ARM=V)-5 b(ALUE",)16 b
(where)g(\\P)l(ARM")f(is)h(the)f(name)g(of)g(the)37 1396 y(parameter)i(to)g
(b)q(e)h(set)g(and)g(\\V)-5 b(ALUE")18 b(is)f(the)h(desired)g(v)m(alue)g(for)
g(the)g(parameter.)26 b(P)o(arameter)15 b(v)m(alues)37 1481 y(are)f(either)f
(Bo)q(olean)g(\(\\y)o(es")f(or)h(\\no"\))g(or)g(n)o(umeric.)18 b(A)13 b(n)o
(umeric)g(v)m(alue)g(ma)o(y)f(b)q(e)i(written)f(in)g(the)g(decimal,)37 1566 y
(o)q(ctal)d(or)h(hexadecimal)e(formats,)g(using)i(the)g(standard)f(C)g(pre\
\014xes)i(\(\\0")d(for)i(o)q(ctal,)f(\\0x")g(for)g(hexadecimal,)37 1650 y(def\
ault)17 b(is)g(decimal\).)24 b(Lines)18 b(b)q(eginning)f(with)f(\\#")h(are)g
(assumed)f(to)h(b)q(e)g(commen)o(ts)e(and)i(are)g(ignored.)37 1735 y(Here)f
(are)f(the)g(parameters)e(that)i(ma)o(y)e(b)q(e)j(set)f(in)g(the)h(system)d
(con\014guration)i(\014le:)37 1861 y fi(MaxLo)o(wMem)o(ory)k fn(is)d(the)g
(amoun)o(t)e(of)i(lo)o(w)f(memory)f(in)h(kilob)o(ytes)g(to)h(b)q(e)h(allo)q
(cated)e(to)g(PC-Choices.)151 1946 y(PC-Choices)k(uses)h(lo)o(w)e(memory)f
(for)i(storing)f(argumen)o(ts)g(and)i(return)f(v)m(alues)h(for)f(virtual-8086)
151 2030 y(mo)q(de)13 b(v)o(ector)g(calls,)f(and)i(for)e(main)o(taining)f(inf\
ormation)f(ab)q(out)k(virtual-8086)d(mo)q(de)i(pro)q(cesses.)19 b(If)151 2115
y(MaxLo)o(wMemory)13 b(is)h(not)h(a)o(v)m(ailable,)f(a)h(smaller)d(amoun)o
(t)i(of)h(lo)o(w)f(memory)e(will)i(b)q(e)i(used.)37 2235 y fi(KernelW)l(orkin\
gMem)m(orySi)o(ze)k fn(is)14 b(the)g(amoun)o(t)e(of)i(ph)o(ysical)g(memory)d
(in)j(kilob)o(ytes)f(to)h(b)q(e)g(allo)q(cated)151 2319 y(as)19 b(the)g(k)o
(ernel's)g(w)o(orking)e(memory)l(.)30 b(The)19 b(w)o(orking)f(memory)f(is)h
(used)i(for)f(storing)e(Choices)i(ob-)151 2404 y(jects)g(that)f(are)h(dynamic\
ally)d(created)j(b)o(y)g(the)g(k)o(ernel)g(as)f(the)h(result)g(of)f(system)g
(calls)g(\(see)h(Sec-)151 2489 y(tion)c(2.1.3.1\).)37 2567 y 750 2 v 89 2594 a
fs(2)107 2610 y fa(PCCon\014guration)c fp(is)i(de\014ned)h(in)f fa(Includes/M\
achineDep)q(endent/PC/PCCon\014)o(guration.h)p fp(.)952 2760 y fn(69)g eop bop
37 42 a fi(Displa)o(yMem)n(ory)o(Usage)20 b fn(when)13 b(set)f(to)g(\\y)o(es"\
,)g(will)f(cause)i(the)f(k)o(ernel)h(to)e(prin)o(t)h(some)f(statistics)g(ab)q
(out)151 126 y(its)k(memory)d(allo)q(cation)h(when)j(it)f(b)q(o)q(ots.)37 248
y fi(PS2Keyb)q(oard)23 b fn(should)16 b(b)q(e)g(set)g(to)f(\\y)o(es")g(when)h
(running)g(PC-Choices)g(on)f(an)h(IBM)g(PS/2)f(or)h(PS/55.)151 333 y(This)f
(parameter)e(selects)i(the)h(metho)q(ds)e(to)g(b)q(e)i(used)g(for)f(enabling)
f(A20)h(\(to)f(b)q(e)i(describ)q(ed)g(later\).)37 455 y fi(PS2Timer)j fn(shou\
ld)14 b(b)q(e)h(set)e(to)h(\\y)o(es")f(when)h(running)g(PC-Choices)g(on)g(an)
g(IBM)g(PS/2)g(or)f(PS/55.)19 b(This)151 540 y(setting)14 b(turns)h(on)h(addi\
tional)d(pro)q(cessing)i(for)g(the)g(timer)e(in)o(terrupt)i(\(see)g(Section)g
(2.3.3.5\).)37 662 y fi(IR)o(Q1)j(through)g(15)23 b fn(select)15 b(the)g(exte\
rnal)g(in)o(terrupts)g(to)g(b)q(e)h(handled)g(b)o(y)f(PC-Choices.)21 b(All)14
b(IR)o(Qs)j(are)151 746 y(enabled)f(b)o(y)f(default.)k(The)d(list)e(b)q(elo)o
(w)h(is)f(condensed)j(from)c([5]:)151 881 y fi(IR)o(Q1)23 b fn(is)15 b(genera\
ted)g(whenev)o(er)g(a)g(k)o(ey)g(is)g(pressed)h(or)e(released)i(on)f(the)g
(k)o(eyb)q(oard.)151 982 y fi(IR)o(Q2)23 b fn(is)18 b(generated)i(on)f(some)e
(EGA)i(or)g(V)o(GA)f(displa)o(y)h(adapters)f(whenev)o(er)i(the)f(adapter)g
(has)251 1067 y(completed)13 b(a)h(v)o(ertical)e(retrace.)19 b(It)14 b(is)g
(also)f(generated)h(b)o(y)g(the)g(T)l(andy)g(1000-series)f(hard)h(disk)251
1152 y(and)i(b)o(y)f(the)g(Roland)g(MPU)g(MIDI)g(in)o(terface.)151 1253 y fi
(IR)o(Q3)23 b fn(is)13 b(used)h(b)o(y)g(the)g(serial)f(comm)o(unicati)o(ons)e
(p)q(orts)i(COM2)h(through)f(COM8)g(for)g(PS/2's,)g(and)251 1337 y(COM2,)h
(COM4)h(for)g(other)g(PCs.)151 1439 y fi(IR)o(Q4)23 b fn(is)13 b(used)h(b)o
(y)f(the)h(serial)e(comm)o(unicatio)o(ns)f(p)q(orts)i(COM1)g(\(on)g(most)e
(mac)o(hines\))h(and)i(COM3)251 1523 y(\(except)h(PS/2\).)151 1625 y fi(IR)o
(Q5)23 b fn(is)15 b(used)g(b)o(y)g(the)h(LPT2)f(prin)o(ter)f(adapter.)151 1726
y fi(IR)o(Q6)23 b fn(is)17 b(generated)g(b)o(y)g(the)h(\015opp)o(y)f(driv)o
(e)g(con)o(troller)f(when)i(a)f(disk)g(op)q(eration)g(has)g(b)q(een)i(com-)
251 1811 y(pleted.)151 1912 y fi(IR)o(Q7)k fn(is)15 b(generated)h(b)o(y)g(the)
h(LPT1)e(prin)o(ter)h(adapter)f(when)i(prin)o(ter)e(b)q(ecomes)h(ready)l(,)g
(but)g(most)251 1997 y(prin)o(ter)f(adapters)f(do)h(not)g(reliably)f(generate)
h(this)g(in)o(terrupt.)k(A)c(Programm)o(able)d(In)o(terrupt)251 2081 y(Con)o
(troller)h(generates)i(this)g(in)o(terrupt)f(in)h(case)g(of)g(error.)151 2183
y fi(IR)o(Q8)23 b fn(is)17 b(called)g(when)h(the)f(real-time)f(clo)q(c)o(k)h
(c)o(hip)g(generates)g(an)h(alarm)d(or)i(p)q(erio)q(dic)h(in)o(terrupt,)251
2267 y(among)c(others.)151 2369 y fi(IR)o(Q9)23 b fn(is)15 b(redirected)g(to)
f(the)i(IR)o(Q2)g(handler)f(b)o(y)g(BIOS.)151 2470 y fi(IR)o(Q10,)i(11)23 b fn
(are)15 b(reserv)o(ed)g(b)o(y)g(IBM.)151 2571 y fi(IR)o(Q12)23 b fn(is)15 b
(generated)g(b)o(y)g(the)g(p)q(oin)o(ting)g(device)g(\(e.g.)k(mouse\).)952
2760 y(70)g eop bop 151 42 a fi(IR)o(Q13)23 b fn(is)15 b(called)f(when)i(a)f
(math)f(copro)q(cessor)h(exception)g(o)q(ccurs.)151 143 y fi(IR)o(Q14)23 b fn
(is)15 b(generated)g(b)o(y)g(the)g(hard)g(driv)o(e)g(con)o(troller.)151 244 y
fi(IR)o(Q15)23 b fn(is)15 b(reserv)o(ed)g(b)o(y)g(IBM.)108 379 y(Eac)o(h)h
(parameter)e(is)i(represen)o(ted)g(b)o(y)g(a)g fg(P)o(a)o(rameter)f fn(ob)s
(ject)h(in)g fg(con\014g.c)p fn(.)22 b(There)17 b(are)f(t)o(w)o(o)e(sub)q(cla\
sses)37 463 y(of)j fg(P)o(a)o(rameter)q fn(,)e fg(Bo)q(oleanP)o(a)o(rameter)h
fn(and)h fg(IntegerP)o(a)o(rameter)q fn(.)23 b(Eac)o(h)17 b fg(P)o(a)o(ramete\
r)f fn(has)g(a)h(name,)f(v)m(alue)h(and)37 548 y(default)g(v)m(alue.)26 b(All)
16 b fg(P)o(a)o(rameters)g fn(are)h(stored)f(in)o(to)g(an)h(arra)o(y)f(that)g
(is)h(searc)o(hed)g(while)g(parsing)f(the)h(con-)37 633 y(\014guration)e(\014\
le.)22 b(Eac)o(h)15 b fg(P)o(a)o(rameter)g fn(is)g(link)o(ed)g(to)h(an)f(en)o
(try)h(in)f(the)h fg(PCCon\014guration)g fn(structure,)g(so)f(when)37 717 y
(the)i(v)m(alue)g(of)g(a)f fg(P)o(a)o(rameter)f fn(is)i(c)o(hanged,)g(the)g
(up)q(dated)g(v)m(alue)g(is)f(stored)h(in)o(to)e(the)i(corresp)q(onding)g(en)
o(try)37 802 y(in)f(the)f fg(PCCon\014guration)h fn(structure.)108 887 y(Afte\
r)i(setting)f(the)h(parameters)e(according)h(to)h(the)g(con\014guration)f(\
\014le,)i(loadco\013)d(calls)h(DOS)i(to)e(al-)37 971 y(lo)q(cate)f(a)g(c)o
(h)o(unk)h(of)f(memory)e(whose)i(size)h(w)o(as)e(sp)q(eci\014ed)j(b)o(y)e(the)
h(MaxLo)o(wMemory)c(parameter.)1782 955 y fr(3)1824 971 y fn(This)37 1056 y
(c)o(h)o(unk)18 b(allo)q(cated)e(is)h(divided)h(in)o(to)e(t)o(w)o(o)g(parts)h
(to)f(b)q(e)i(used)g(later)e(b)o(y)i(the)f(virtual)f(PC)h(subsystem.)25 b(The)
37 1141 y(\014rst)20 b(part,)f(called)g(the)h fg(VirtualPC)g fn(T)l(ask)f(Spa\
ce,)i(is)e(the)g(space)h(out)f(of)g(whic)o(h)h fg(VirtualPCT)l(asks)h fn(are)
e(al-)37 1225 y(lo)q(cated.)28 b(The)18 b(second)h(part)e(is)g(called)h(the)g
fg(VirtualPC)g fn(Bu\013er)g(Space,)h(whic)o(h)e(is)h(memory)d(reserv)o(ed)j
(for)37 1310 y(storing)12 b(argumen)o(ts)f(and)h(return)h(v)m(alues)g(for)f
(virtual-8086)e(v)o(ector)i(calls.)18 b(The)13 b(space)g(is)f(required)g(b)q
(ecause)37 1395 y(virtual-8086)h(pro)q(cesses)j(cannot)e(access)h(high)g(memo\
ry)e(|)i(all)f(argumen)o(ts)f(and)i(return)g(v)m(alues)g(m)o(ust)f(b)q(e)37
1479 y(stored)h(in)g(lo)o(w)f(memory)l(.)108 1564 y(The)19 b(remaining)e(item\
s)g(in)h(the)h fg(PCCon\014guration)g fn(structure)g(are)f(next)h(\014lled)f
(in)h(b)o(y)f(loadco\013.)29 b(The)37 1649 y(items)14 b(are:)37 1783 y fi(vir\
tualPCT)l(askBase,)i(virtualPCT)l(askBound:)k fg(virtualPCT)l(askBase)f fn
(is)d(the)h(base)g(address)g(of)f(the)151 1868 y fg(VirtualPC)d fn(T)l(ask)f
(Space.)20 b fg(virtualPCT)l(askBound)15 b fn(is)d(the)h(last)e(address)i(of)
f(the)h fg(VirtualPC)g fn(T)l(ask)f(Space)151 1953 y(plus)j(one.)37 2075 y fi
(virtualPCBu\013erBase,)g(virtualPCBu\013erBound:)21 b fg(virtualPCBu\013erBa\
se)13 b fn(is)f(the)h(base)g(address)g(of)151 2159 y(the)21 b fg(VirtualPC)g
fn(Bu\013er)g(Space.)38 b fg(virtualPCBu\013erBound)22 b fn(is)f(the)g(last)f
(address)h(of)f(the)h fg(VirtualPC)151 2244 y fn(Bu\013er)15 b(Space)h(plus)f
(one.)37 2366 y fi(extendedMemor)o(ySi)o(ze:)20 b fn(The)11 b(amoun)o(t)f(of)
g(extended)i(memory)d(\(i.e.)18 b(memory)8 b(ab)q(o)o(v)o(e)j(the)g(1)g(megab)
o(yte)151 2451 y(address\))k(in)g(the)g(mac)o(hine,)f(in)h(kilob)o(ytes.)37
2534 y 750 2 v 89 2561 a fs(3)107 2577 y fp(The)e(memory)e(is)i(allo)q(cated)
g(from)e(DOS)j(in)f fa(automaticCon\014guration\(\))p fp(.)952 2760 y fn(71)g
eop bop 37 42 a fi(psp:)22 b fn(The)15 b(Program)c(Segmen)o(t)i(Pre\014x)i
(\(PSP\))e(of)h(the)g(loadco\013)f(pro)q(cess.)20 b(The)14 b(PSP)g(is)g(a)g
(n)o(um)o(b)q(er)f(issued)151 126 y(b)o(y)j(DOS)g(to)g(iden)o(tify)f(eac)o
(h)h(DOS)g(pro)q(cess.)22 b(See)17 b(Section)f(2.4.3.3)e(for)h(the)h(use)g
(of)g(the)g(PSP)g(stored)151 211 y(in)f(the)g fg(PCCon\014guration)h fn(struc\
ture.)37 327 y fi(in)o(terruptMask1,)g(in)o(terruptMask2:)k fn(The)k(in)o(ter\
rupt)f(masks)f(of)h(the)h(Programm)o(able)c(In)o(terrupt)151 412 y(Con)o(trol\
lers.)e(These)d(masks)f(will)g(b)q(e)i(restored)f(when)g(the)h(k)o(ernel)e
(terminates.)37 528 y fi(in)o(terruptV)l(ectors:)21 b fn(The)h(addresses)g
(of)f(all)g(256)g(in)o(terrupt)g(handlers)h(in)f(the)h(curren)o(t)g(real-addr\
ess)151 613 y(mo)q(de.)g(These)16 b(addresses)h(are)e(stored)h(at)f(addresses)
i(0x0)e(through)h(0x400.)21 b(These)c(addresses)f(will)151 697 y(b)q(e)g(rest\
ored)f(when)g(the)h(k)o(ernel)f(starts)f(up)h(in)g(protected)g(mo)q(de.)1287
681 y fr(4)37 814 y fi(c)o(hoicesReturn,)i(c)o(hoicesReturnArea,)f(c)o(hoices\
ReturnSize:)21 b fg(choicesReturn)e fn(is)c(the)i(address)f(of)151 898 y(the)
g(routine)f(whic)o(h)h(should)f(b)q(e)i(executed)f(to)f(return)h(to)f(the)g
(real-address)h(mo)q(de)f(from)f(protected)151 983 y(mo)q(de)f(when)i(the)e
(k)o(ernel)h(terminates.)j fg(choicesReturnArea)g fn(is)c(the)h(address)g(of)
f(the)h(region)f(of)g(mem-)151 1068 y(ory)i(\(con)o(taining)e(co)q(de)j(and)g
(data\))e(that)g(should)h(b)q(e)h(preserv)o(ed)g(while)f(the)g(k)o(ernel)g
(is)f(running,)h(the)151 1152 y(memory)10 b(region)i(b)q(eing)h(crucial)g(for)
f(the)g(prop)q(er)h(termination)e(of)h(the)h(k)o(ernel.)19 b fg(choicesReturn\
Size)c fn(is)151 1237 y(the)e(size)g(of)f(the)h(memory)d(region)i(in)h(b)o
(ytes.)19 b fg(choicesReturn)c fn(is)e(inside)f(the)h(memory)d(region)i(b)q
(ecause)151 1322 y(the)j(termination)e(routine)i(m)o(ust)e(b)q(e)j(carefully)
f(preserv)o(ed.)108 1436 y(After)20 b(\014lling)g(all)g(en)o(tries)g(in)g(the)
h fg(PCCon\014guration)h fn(structure,)f(loadco\013)f(jumps)f(to)h(an)h(assem)
o(bly-)37 1521 y(co)q(de)g(routine)f(that)f(switc)o(hes)h(in)o(to)f(protected)
h(mo)q(de)f(and)i(branc)o(hes)f(to)f(the)i(\014rst)e(instruction)g(in)h(the)
37 1605 y(PC-Choices)d(k)o(ernel.)417 1589 y fr(5)461 1605 y fn(The)g(routine)
g(\014rst)f(reprograms)f(the)h(Programmable)e(In)o(terrupt)i(Con)o(trollers)f
(to)37 1690 y(mask)h(out)h(all)f(external)g(in)o(terrupts.)24 b(\(The)17 b
(external)g(in)o(terrupts)f(will)g(b)q(e)h(enabled)h(later)e(during)h(k)o(ern\
el)37 1775 y(initialization)12 b(according)i(to)g(the)h(settings)f(of)g(the)h
(IR)o(Q)h(parameters)d(in)h(the)h(system)e(con\014guration)h(\014le.\))37 1859
y(The)i(real-address)f(mo)q(de)f(In)o(terrupt)h(Descriptor)f(T)l(able)h(Regis\
ter)g(is)g(sa)o(v)o(ed.)108 1944 y(Next,)f(A20)g(is)g(enabled.)21 b(A20)14 b
(is)g(the)g(line)g(in)h(the)f(external)g(address)h(bus)g(of)f(the)h(386)e(mic\
ropro)q(cessor)37 2029 y(that)f(corresp)q(onds)g(to)f(bit)g(20)g(of)h(the)f
(bus.)20 b(Some)10 b(PCs)i(lea)o(v)o(e)f(this)g(line)g(disabled)h(b)o(y)g(def\
ault)f(b)q(ecause)i(some)37 2113 y(programs)j(written)g(for)g(the)i(8086)e
(micropro)q(cessor)f(assume)h(that)g(memory)f(wraps)i(around)g(after)f(the)i
(1)37 2198 y(megab)o(yte)e(b)q(oundary)l(.)27 b(These)18 b(programs)e(will)g
(not)h(run)g(correctly)g(if)g(A20)g(is)g(enabled,)h(since)f(they)h(will)37
2283 y(then)d(b)q(e)g(accessing)f(the)g(ph)o(ysical)f(memory)f(ab)q(o)o(v)o
(e)h(the)i(1)e(megab)o(yte)g(b)q(oundary)h(instead)g(of)g(the)g(memory)37 2367
y(near)g(address)f(0.)19 b(PC-Choices)14 b(requires)f(all)f(address)i(lines)f
(to)g(enabled)h(in)f(order)g(to)g(address)h(all)e(ph)o(ysical)37 2452 y(memor\
y)h(in)i(the)g(PC,)g(and)g(therefore)g(loadco\013)f(m)o(ust)g(enable)h(A20.)
37 2522 y 750 2 v 89 2548 a fs(4)107 2564 y fp(I)d(ha)o(v)o(e)i(no)f(idea)g
(wh)o(y)g(the)g(in)o(terrupt)h(table)f(is)f(alw)o(a)o(ys)h(damaged)g(when)h
(switc)o(hing)f(to)f(protected)i(mo)q(de.)89 2594 y fs(5)107 2610 y fp(The)f
(assem)o(bly-co)q(de)g(routine)g(is)i 12 2 v 11 w fa(b)q(o)q(otChoices)e fp
(in)g fa(b)q(o)q(ot.asm)p fp(.)952 2760 y fn(72)g eop bop 108 42 a fn(The)16 b
(pro)q(cedure)g(for)f(enabling)g(A20)g(on)g(an)h(IBM)f(PS/2)g(or)g(PS/55)g
(is)g(di\013eren)o(t)f(from)g(the)i(pro)q(cedure)37 126 y(for)g(generic)g(PCs\
.)22 b(A20)15 b(is)h(enabled)g(on)g(an)g(IBM)g(PS/2)g(or)f(PS/55)g(b)o(y)h
(turning)g(on)g(bit)f(1)h(of)g(the)g(System)37 211 y(Con)o(trol)h(P)o(ort)g
(A.)359 194 y fr(6)396 211 y fn(On)i(generic)f(PCs,)g(A20)g(is)f(enabled)i
(b)o(y)f(programming)d(the)j(k)o(eyb)q(oard)g(con)o(troller.)1895 194 y fr
(7)37 296 y fn(The)h(PS2Keyb)q(oard)f(parameter)e(in)i(the)g(system)e(con\014\
guration)i(\014le)g(selects)f(one)h(of)g(the)g(t)o(w)o(o)e(metho)q(ds)37 380 y
(for)f(enabling)g(A20.)108 465 y(After)e(enabling)g(A20,)g(the)h(assem)o(bly-\
co)q(de)f(routine)g(prepares)g(the)h(Global)e(Descriptor)g(T)l(able,)i(whic)o
(h)37 550 y(is)f(a)g(data)f(structure)h(de\014ned)h(b)o(y)f(the)g(386)f(micro\
pro)q(cessor)f(arc)o(hitecture)i(that)f(is)g(required)h(to)g(b)q(e)g(presen)o
(t)37 634 y(while)d(the)h(micropro)q(cessor)d(is)i(executing)h(in)f(protected)
g(mo)q(de.)18 b(In)11 b(the)g(386)e(micropro)q(cessor)g(arc)o(hitecture,)37
719 y(eac)o(h)16 b(descriptor)f(in)g(the)g(table)g(essen)o(tially)f(describ)q
(es)h(a)g(region)g(of)g(ph)o(ysical)f(memory)f(to)i(b)q(e)h(referred)f(to)37
804 y(later)20 b(b)o(y)g(an)h(in)o(teger,)f(whic)o(h)g(is)g(the)h(o\013set)e
(of)h(the)h(descriptor)f(in)g(the)g(descriptor)g(table.)35 b(The)21 b(table)
37 888 y(con)o(tains)c(\014v)o(e)g(descriptors)g(\(plus)g(a)g(compulsory)f
(dumm)o(y)f(descriptor\).)25 b(The)18 b(\014rst)e(t)o(w)o(o)g(are)h(de\014ned)
i(to)37 973 y(encompass)14 b(all)f(ph)o(ysical)g(memory)e(in)j(the)h(mac)o
(hine.)j(These)c(descriptors)g(will)e(b)q(e)j(used)g(as)e(the)i(co)q(de)f(and)
37 1058 y(data)h(segmen)o(ts)f(later.)108 1142 y(The)c(third)g(descriptor)g
(is)f(for)h(a)g(T)l(ask)g(State)f(Segmen)o(t)g(that)h(sp)q(eci\014es)h(the)f
(address)g(\(namely)l(,)f(0x100000\))37 1227 y(of)16 b(the)f(\014rst)g(instru\
ction)g(in)g(the)h(k)o(ernel)f(and)h(the)g(v)m(alues)f(of)h(the)f(registers)g
(to)g(b)q(e)h(used)g(when)g(the)g(k)o(ernel)37 1312 y(runs.)23 b(The)17 b(fou\
rth)e(and)h(\014fth)h(descriptors)e(will)g(b)q(e)i(used)f(when)h(the)f(k)o
(ernel)g(terminates)e(and)i(returns)g(to)37 1396 y(real-address)g(mo)q(de.)k
(These)c(are)f(16-bit)g(descriptors,)f(mean)o(t)g(to)h(em)o(ulate)f(real-addr\
ess)h(mo)q(de)g(segmen)o(t)37 1481 y(descriptors.)108 1566 y(Next,)e(the)f
(assem)o(bly-co)q(de)g(routine)g(loads)g(the)g(Global)f(Descriptor)h(T)l(able)
g(Register)g(with)g(the)h(Global)37 1650 y(Descriptor)f(T)l(able)h(that)g(has)
g(b)q(een)h(previously)e(initialized.)18 b(The)13 b(routine)g(turns)g(on)g
(the)g(protected-mo)q(de)37 1735 y(bit)18 b(in)f(the)h(con)o(trol)e(register,)
g(\015ushes)j(the)e(prefetc)o(h)h(queue,)h(and)e(branc)o(hes)h(to)f(the)h(en)
o(try)f(p)q(oin)o(t)g(in)g(the)37 1820 y(k)o(ernel,)k(sp)q(eci\014ed)g(b)o
(y)f(the)g(T)l(ask)g(State)f(Segmen)o(t)g(previously)g(describ)q(ed.)35 b(The)
21 b(T)l(ask)e(State)h(Segmen)o(t)37 1905 y(also)h(sp)q(eci\014es)i(that)e
(up)q(on)i(en)o(try)e(to)g(the)h(k)o(ernel,)h(register)e(EAX)h(should)f(con)o
(tain)g(a)h(p)q(oin)o(ter)f(to)g(the)37 1989 y(address)11 b(of)e(the)i fg(PCC\
on\014guration)g fn(structure.)18 b(Therefore,)10 b(when)h(the)f(k)o(ernel)g
(b)q(egins)h(execution)f(at)f(address)37 2074 y(0x100000,)k(it)i(ma)o(y)e(ref\
er)j(to)e(the)h(con\014guration)g(information)d(p)q(oin)o(ted)j(to)g(b)o(y)g
(register)f(EAX.)h(The)h(T)l(ask)37 2159 y(State)i(Segmen)o(t)g(also)f(sp)q
(eci\014es)i(that)f(the)g(\014rst)g(and)h(second)g(en)o(tries)f(in)g(the)g
(Global)f(Descriptor)h(T)l(able)37 2243 y(should)g(b)q(e)g(used)h(as)e(the)h
(Data)e(Segmen)o(t)h(and)g(the)h(Co)q(de)g(Segmen)o(t,)f(resp)q(ectiv)o(ely)l
(.)27 b(All)17 b(other)g(segmen)o(t)37 2328 y(registers,)d(including)h(the)g
(Stac)o(k)g(Segmen)o(t)f(register,)g(should)h(p)q(oin)o(t)g(to)f(the)i(Data)e
(Segmen)o(t.)37 2409 y 750 2 v 89 2436 a fs(6)107 2452 y fp(The)f(System)f
(Con)o(trol)h(P)o(ort)g(A)g(is)f(at)h(p)q(ort)g(address)h(0x92.)89 2482 y fs
(7)107 2497 y fp(A20)f(is)f(enabled)i(b)o(y)f(the)h fa(setA20)e fp(routine)h
(in)g fa(b)q(o)q(ot.asm)p fp(.)952 2760 y fn(73)g eop bop 37 42 a fd(3.2)70 b
(Initialization)37 171 y fn(The)17 b(PC-Choices)e(k)o(ernel)h(b)q(egins)g(exe\
cution)g(at)f(the)h(assem)o(bly-co)q(de)f(routine)g(named)j 14 2 v 13 w fg
(sta)o(rt)f fn(lo)q(cated)e(at)37 256 y(address)i(0x100000.)399 239 y fr(8)
440 256 y fn(This)f(is)f(a)h(short)g(routine)g(that)f(reloads)h(the)g(Global)
f(Descriptor)g(T)l(able)h(Register,)37 341 y(sa)o(v)o(es)f(the)g(p)q(oin)o
(ter)f(to)h(the)g fg(PCCon\014guration)g fn(structure)g(passed)g(b)o(y)g(load\
co\013,)f(then)h(loads)f(the)h(In)o(terrupt)37 425 y(Descriptor)e(T)l(able)h
(Register)g(and)g(jumps)f(to)h(a)f(C++)i(function)f(named)f fg(sta)o(rt\(\))h
fn(to)f(initialize)f(the)i(k)o(ernel.)1893 409 y fr(9)37 510 y fn(The)g(p)q
(oin)o(ter)e(to)g(the)h fg(PCCon\014guration)h fn(structure)f(is)f(sa)o(v)o
(ed)g(in)h(the)g(globally-accessible)e(v)m(ariable)i fg(ThePC-)37 595 y(Con\
\014guration)p fn(.)20 b(The)13 b(In)o(terrupt)f(Descriptor)f(T)l(able)h(Regi\
ster)g(is)g(loaded)g(with)g(the)g(structure)h fg(IDTR)f fn(whic)o(h)37 679 y
(holds)17 b(a)g(p)q(oin)o(ter)g(to)f(the)h(arra)o(y)f fg(IDT)p fn(,)g(the)i
(In)o(terrupt)f(Descriptor)f(T)l(able)h(used)g(b)o(y)h(PC-Choices.)1767 663 y
fr(10)1829 679 y fn(\(See)37 764 y(Section)e(2.3.3)d(for)i(the)g(use)h(of)e
(the)i(In)o(terrupt)f(Descriptor)f(T)l(able.\))108 849 y(The)21 b(new)h(Globa\
l)e(Descriptor)g(T)l(able)h(is)f(similar)e(to)j(the)g(one)g(used)h(b)o(y)f
(loadco\013.)37 b(The)21 b(\014rst)g(t)o(w)o(o)37 933 y(descriptors)f(are)f
(for)g(the)h(data)f(and)h(co)q(de)h(segmen)o(ts,)e(while)g(the)h(third)g(desc\
riptor)f(p)q(oin)o(ts)g(to)g(a)h(T)l(ask)37 1018 y(State)15 b(Segmen)o(t)f
(that)h(p)q(oin)o(ts)g(to)f(the)i fg(sta)o(rt\(\))e fn(function)i(as)e(the)i
(task)e(en)o(try)h(p)q(oin)o(t.)20 b(The)15 b(fourth)g(and)g(\014fth)37 1103 y
(en)o(tries)e(will)e(b)q(e)j(used)f(b)o(y)g(the)g(pro)o(xy)f(mec)o(hanism.)17
b(\(The)c(fourth)f(descriptor)g(will)g(b)q(e)h(initialized)f(as)g(a)h(Call)37
1187 y(Gate)i(that)f(applications)g(will)g(use)i(to)e(p)q(erform)g(system)g
(calls.\))108 1272 y(The)j(T)l(ask)f(State)g(Segmen)o(t's)g(en)o(try)g(p)q
(oin)o(t)g(is)g(initialized)f(to)h(the)h fg(sta)o(rt\(\))f fn(function,)h(whi\
le)f(the)h(Data)37 1357 y(Segmen)o(t)i(and)h(Co)q(de)g(Segmen)o(t)f(registers)
g(are)g(initialized)g(with)g(the)h(\014rst)f(and)h(second)g(en)o(tries)g(in)f
(the)37 1441 y(Global)d(Descriptor)g(T)l(able)h(resp)q(ectiv)o(ely)l(.)25 b
(All)16 b(other)g(segmen)o(t)g(registers)g(are)g(initialized)g(with)g(the)h
(\014rst)37 1526 y(en)o(try)c(in)g(the)g(Global)f(Descriptor)g(T)l(able.)19 b
(The)14 b(T)l(ask)e(State)h(Segmen)o(t)f(also)g(con)o(tains)g(an)h(I/O)h(P)o
(ermission)37 1611 y(Bit)j(Map,)g(whic)o(h)h(sp)q(eci\014es)g(the)f(I/O)h(p)q
(orts)f(that)g(unprivileged)g(pro)q(cesses)g(ma)o(y)f(access)i(while)e(runnin\
g)37 1695 y(under)j(PC-Choices.)26 b(The)18 b(bitmap)e(con)o(tains)g(8192)h
(zeros,)g(meaning)f(that)h(all)g(p)q(orts)g(ma)o(y)f(b)q(e)i(accessed)37 1780
y(b)o(y)d(unprivileged)g(pro)q(cesses.)20 b(This)14 b(setting)g(is)h(required)
g(for)f(I/O)h(to)f(w)o(ork)g(correctly)g(b)q(ecause)i(DOS)f(and)37 1865 y(BIO\
S)i(device)e(driv)o(ers)g(m)o(ust)f(run)h(in)g(unprivileged)g(virtual-8086)e
(mo)q(de.)108 1950 y fg(sta)o(rt\(\))e fn(calls)g(function)h fg(Main\(\))p fn
(,)f(whic)o(h)g(installs)f(a)i(temp)q(orary)e(heap)i(\(at)e(the)i(address)g
(returned)g(b)o(y)f(the)37 2034 y(function)h fg(PCHeapSta)o(rt\(\))p fn(,)h
(whic)o(h)f(returns)g(the)g(\014rst)g(lo)q(cation)f(past)h(the)g(en)o(tire)f
(k)o(ernel)h(image\),)e(initializes)37 2119 y(the)k fg(Pro)o(xiableObject)h fn
(table)d(and)i(calls)f fg(PCMain\(\))p fn(.)929 2102 y fr(11)985 2119 y fg
(PCMain\(\))f fn(creates)h(a)h fg(PCConsole)g fn(ob)s(ject)e(to)h(handle)37
2204 y(console)i(output.)37 2285 y 750 2 v 89 2312 a fs(8)109 2327 y 12 2 v 11
w fa(sta)o(rt)e fp(is)g(de\014ned)h(in)f fa(MachineDep)q(endent/PC/b)q(o)q
(ot.s)p fp(.)89 2357 y fs(9)107 2373 y fa(sta)o(rt\(\))f fp(is)h(de\014ned)h
(in)f fa(Pro)q(cesso)o(rDep)q(endent/i386/i386Context.cc)p fp(.)74 2403 y fs
(10)107 2419 y fa(IDTR)f fp(and)i fa(IDT)e fp(are)h(de\014ned)i(in)d fa(Pro)q
(cesso)o(rDep)q(endent/i386/i386CPU.cc)p fp(.)74 2449 y fs(11)107 2464 y fa
(Main\(\))f fp(is)h(de\014ned)i(in)d fa(Kernel/Main.cc)p fp(.)17 b fa(PCHeapS\
ta)o(rt\(\))12 b fp(and)h fa(PCMain\(\))d fp(are)j(de\014ned)g(in)f fa(Machin\
eDep)q(endent/PC/PC-)37 2510 y(Main.cc)p fp(.)17 b(The)c fa(Pro)o(xiableObjec\
t)g fp(table)g(is)g(initialized)f(in)h fa(Pro)o(xiableObject::initialize\(\))
p fp(.)952 2760 y fn(74)g eop bop 108 42 a fn(The)17 b fg(PCConsole)g fn(is)g
(set)f(to)g(access)h(the)g(video)g(bu\013er)f(at)h(ph)o(ysical)f(address)g
(0xB8000,)g(whic)o(h)h(corre-)37 126 y(sp)q(onds)g(to)d(the)i(primary)e(text)
h(displa)o(y)f(for)h(EGA)g(and)h(V)o(GA)f(video)g(adapters.)20 b(All)15 b(25)
g(lines)g(of)g(the)h(text)37 211 y(displa)o(y)f(are)h(arranged)f(in)h(consecu\
tiv)o(e)f(memory)f(lo)q(cations)g(in)i(the)f(video)h(bu\013er,)f(from)f(the)i
(top)g(line)f(to)37 296 y(the)i(b)q(ottom)e(line.)23 b(Eac)o(h)16 b(line)g
(con)o(tains)f(80)h(c)o(haracter)g(cells,)g(arranged)g(from)e(left)i(to)g(rig\
h)o(t)f(in)h(memory)l(.)37 380 y(Eac)o(h)g(cell)e(consists)h(of)g(t)o(w)o(o)e
(b)o(ytes,)i(the)g(\014rst)g(b)o(yte)g(b)q(eing)h(the)f(ASCI)q(I)h(co)q(de)g
(of)f(the)g(c)o(haracter)g(displa)o(y)o(ed,)37 465 y(and)g(the)f(second)g(b)o
(yte)g(sp)q(ecifying)f(the)h(visual)f(attributes)g(of)h(the)g(c)o(haracter)f
(displa)o(y)o(ed)g(\(e.g.)18 b(brigh)o(tness,)37 550 y(rev)o(erse,)d(colour\)\
.)20 b fg(PCConsole)c fn(pro)o(vides)e(metho)q(ds)h(to)g(write)f(to)h(the)g
(displa)o(y)l(,)g(to)f(erase)h(the)h(displa)o(y)l(,)e(and)37 634 y(to)20 b
(set)h(the)f(range)h(of)f(displa)o(y)o(ed)g(text)g(lines)g(\(to)f(crop)i(o\
\013)f(the)g(text)g(displa)o(y)g(when)h(the)g(visualization)37 719 y(monitor)
13 b(is)i(running\).)108 804 y(When)h fg(PCMain\(\))e fn(returns)h(to)f fg
(Main\(\))p fn(,)g(the)h(statically-constructed)f(ob)s(jects)g(are)h(initiali\
zed)e(and)j(an)37 888 y(instance)h(of)f fg(PCKernel)h fn(is)f(constructed.)25
b(The)17 b fg(ClassInstaller)h fn(is)f(called)f(to)g(set)h(up)g(all)f(the)h fg
(Class)g fn(ob)s(jects)37 973 y(represen)o(ting)c(k)o(ernel)g(classes,)f(and)
h(also)f(to)h(build)g(a)f(tree)h(out)f(of)h(the)g fg(Class)h fn(ob)s(jects)e
(so)g(that)h fg(Class)g fn(ob)s(jects)37 1058 y(ma)o(y)c(b)q(e)j(queried)e
(ab)q(out)h(their)f(paren)o(t,)h(sibling)e(and)i(c)o(hild)f fg(Classes)i fn
(later.)17 b(Just)11 b(b)q(efore)g fg(Main\(\))f fn(terminates,)37 1142 y fg
(PCKernel::initialize\(\))k fn(is)h(called.)622 1126 y fr(12)679 1142 y fn
(This)g(metho)q(d)f(do)q(es)h(the)h(follo)o(wing:)93 1277 y(1.)22 b(It)17 b
(binds)g(the)g(console)g(output)g(stream)e(to)h(the)h(name)f(\\StandardOutput\
")h(in)f(the)h(k)o(ernel)g fg(Name-)151 1362 y(Server)q fn(,)f(so)h(that)f
(application)g(pro)q(cesses)h(ma)o(y)e(fetc)o(h)i(the)g(console)g(output)f
(stream)f(through)i(their)151 1446 y fg(NameServers)e fn(and)g(use)h(it)e(for)
h(displa)o(ying)f(program)f(output.)93 1568 y(2.)22 b(It)15 b(creates)g(a)g
(m)o(ultilev)o(el)d(feedbac)o(k)k(sc)o(heduler.)93 1690 y(3.)22 b(It)12 b(cre\
ates)g(a)g fg(SystemScheduler)i fn(that)e(uses)g(a)f(round-robin)i(sc)o(hedul\
er)f(for)f(sc)o(heduling)h(non-preemp-)151 1775 y(table)19 b(pro)q(cesses)h
(and)g(the)g(previously-created)f(m)o(ultilev)o(el)d(feedbac)o(k)k(sc)o(hedul\
er)g(for)f(sc)o(heduling)151 1860 y(preemptable)14 b(pro)q(cesses.)93 1982 y
(4.)22 b(It)e(creates)f(a)g(FIF)o(O)g(sc)o(heduler)h(called)f(Garbage)g(Can)g
(to)g(b)q(e)h(used)g(for)e(holding)h(pro)q(cesses)h(that)151 2066 y(ha)o(v)o
(e)15 b(requested)i(to)e(b)q(e)h(terminated.)k(\(See)c(Section)f(2.2.3.1)f
(for)h(an)h(explanation)e(of)i(the)f(Garbage)151 2151 y(Can.\))93 2273 y(5.)
22 b(It)e(creates)g(a)g fg(Pro)q(cess)p fn(,)h(called)f(the)g(Kernel)h(Setup)
f fg(Pro)q(cess)p fn(,)i(that)d(will)g(b)q(egin)h(execution)g(in)g(the)151
2358 y(function)e fg(Kernel::setupPro)q(cessEntry\(\))p fn(.)28 b(This)18 b fg
(Pro)q(cess)g fn(is)f(put)h(on)o(to)f(the)g(System)g(Sc)o(heduler)h(for)151
2443 y(execution)d(later.)37 2515 y 750 2 v 74 2542 a fs(12)107 2557 y fa(PCK\
ernel::initialize\(\))c fp(is)i(de\014ned)h(in)f fa(MachineDep)q(endent/PC/PC\
SmallKernel.cc)p fp(.)952 2760 y fn(75)g eop bop 93 42 a fn(6.)22 b(It)15 b
(calls)g fg(PCKernel::basicInitialize\(\))p fn(,)f(to)g(b)q(e)i(describ)q(ed)
g(later.)93 161 y(7.)22 b(It)15 b(initializes)f(certain)g(ob)s(jects)h(relate\
d)f(to)h(the)g(virtual)f(memory)f(subsystem.)93 280 y(8.)22 b(It)f(binds)f
(an)h(instance)f(of)g fg(F)o(reeRunningTimer)h fn(to)f(the)g(name)g(\\SystemT\
imer")d(in)o(to)i(the)i(k)o(ernel)151 365 y fg(NameServer)q fn(.)35 b(Applica\
tion)20 b(programs)e(ma)o(y)h(fetc)o(h)i(it)f(later)g(from)f(their)h fg(Stand\
a)o(rdNameServers)151 449 y fn(and)c(use)f(it)g(to)f(determine)g(the)i(time)d
(since)i(the)h(k)o(ernel)f(w)o(as)f(started.)93 569 y(9.)22 b(It)16 b(partiti\
ons)d(all)i(remaining)e(memory)g(in)o(to)i(Application)f(Memory)g(and)h(Kerne\
l)h(W)l(orking)f(Mem-)151 653 y(ory)g(according)f(to)h(the)g(KernelW)l(orking\
MemorySize)e(parameter)h(sa)o(v)o(ed)g(in)h(the)h fg(PCCon\014guration)151 738
y fn(structure.)70 857 y(10.)22 b(It)15 b(maps)f(all)g(ph)o(ysical)h(memory)e
(in)o(to)h(the)h(k)o(ernel)g fg(Domain)p fn(,)f(starting)f(at)i(virtual)f(add\
ress)h(0.)70 977 y(11.)22 b(It)17 b(maps)f(the)i(k)o(ernel)e(heap)i(in)o(to)e
(the)h(virtual)f(memory)f(region)h(immediately)e(after)j(the)g(mapping)151
1061 y(of)e(the)g(ph)o(ysical)g(memory)l(.)70 1180 y(12.)22 b(It)15 b(initial\
izes)f(the)h(k)o(ernel)g(heap.)70 1300 y(13.)22 b(It)15 b(calls)g fg(PCKernel\
::sta)o(rtOtherPro)q(cesso)o(rs\(\))p fn(,)g(whic)o(h)g(do)q(es)g(nothing.)
108 1424 y fg(PCKernel::basicInitialize\(\))21 b fn(is)g(resp)q(onsible)h(for)
f(setting)g(the)h(mem)o(b)q(er)e(v)m(ariables)h(in)h(class)f(Kernel)37 1509 y
(to)f(sp)q(ecify)h(the)g(memory)d(addresses)j(where)g(the)f(protected)h(k)o
(ernel)f(memory)e(b)q(egins)j(and)g(where)f(the)37 1594 y(application-usable)
g(memory)e(b)q(egins,)k(and)f(to)f(sp)q(ecify)h(the)g(maxim)o(um)16 b(amoun)o
(t)j(of)i(virtual)e(memory)37 1678 y(space)g(to)f(b)q(e)h(reserv)o(ed)g(for)f
(the)g(k)o(ernel)g(image,)f(the)i(k)o(ernel)f(heap)h(and)g(applications.)28 b
(In)19 b(PC-Choices,)37 1763 y(the)d(protected)g(k)o(ernel)g(memory)d(b)q(egi\
ns)j(at)g(address)g(0)f(\(de\014ned)i(b)o(y)f fg(KERNELST)l(ART)p fn(\))h(and)
f(extends)g(to)37 1848 y(a)h(maxim)o(um)12 b(of)17 b(32)f(megab)o(ytes)f(\(de\
\014ned)j(b)o(y)e fg(KERNELSIZE)p fn(\).)g(This)g(virtual)g(memory)e(region)i
(m)o(ust)f(b)q(e)37 1933 y(big)j(enough)h(to)e(co)o(v)o(er)g(the)h(en)o(tire)
g(ph)o(ysical)f(memory)f(and)i(ha)o(v)o(e)g(enough)g(space)g(left)g(o)o(v)o
(er)f(to)h(map)e(the)37 2017 y(en)o(tire)c(k)o(ernel)g(heap,)g(whic)o(h)g(has)
g(a)g(maxim)o(um)c(size)k(of)f(10)g(megab)o(ytes)g(\(de\014ned)i(b)o(y)f fg
(KERNELHEAPSIZE)p fn(\).)37 2102 y(Application-usable)18 b(memory)d(b)q(egins)
k(at)e(the)i(32-megab)o(yte)d(b)q(oundary)j(\(de\014ned)g(b)o(y)f fg(APPLICA)
l(TION-)37 2187 y(ST)l(ART)p fn(\))i(and)g(extends)f(up)h(to)e(address)h(0xFF\
800000)e(\(de\014ned)j(b)o(y)f fg(SHAREDST)l(ART)i fn(and)e fg(APPLICA-)37
2271 y(TIONSIZE)p fn(\).)108 2356 y fg(PCKernel::con\014gure\(\))k fn(is)f
(called)h(b)o(y)g fg(PCKernel::basicInitialize\(\))g fn(to)f(compute)h(a)g fg
(PhysicalMemo-)37 2441 y(ryRange)e fn(ob)s(ject)e(that)h(describ)q(es)g(the)h
(addresses)f(and)g(sizes)g(of)g(all)f(ph)o(ysical)g(memory)f(regions)h(in)h
(the)37 2525 y(mac)o(hine.)30 b fg(PCKernel::con\014gure\(\))18 b fn(returns)
g(a)h(description)f(of)g(the)h(ph)o(ysical)f(memory)f(region)h(that)g(b)q(e-)
37 2610 y(gins)f(at)f(address)h(0)g(and)g(co)o(v)o(ers)g(con)o(tiguously)e
(all)h(lo)o(w)g(and)i(extended)g(memory)c(in)j(the)g(mac)o(hine.)24 b(The)952
2760 y(76)g eop bop 37 42 a fn(metho)q(d)17 b(\014nds)i(out)e(the)h(amoun)o
(t)e(of)h(extended)i(memory)c(presen)o(t)i(in)h(the)g(mac)o(hine)e(b)o(y)i
(lo)q(oking)e(up)i(the)37 126 y fg(PCCon\014guration)e fn(structure)f(passed)
h(b)o(y)f(loadco\013.)108 211 y(Besides)d(returning)e(a)h(map)f(of)h(the)g
(ph)o(ysical)g(memory)l(,)e fg(PCKernel::con\014gure\(\))i fn(also)f(initiali\
zes)f(certain)37 296 y(imp)q(ortan)o(t)k(k)o(ernel)i(comp)q(onen)o(ts:)93 414
y(1.)22 b(It)11 b(creates)g(a)g fg(PCi386CPU)f fn(ob)s(ject)h(to)f(represen)o
(t)h(the)h(386)e(micropro)q(cessor.)16 b(The)c fg(CPU)f fn(\(a)f(sup)q(erclas\
s)151 499 y(of)17 b fg(PCi386CPU)p fn(\))g(constructor)f(creates)i(a)f fg(P)o
(erCPUIdlePro)q(cess)h fn(that)f(will)f(b)q(e)i(executed)g(when)g(the)151 583
y(micropro)q(cessor)12 b(has)i(no)f fg(Pro)q(cesses)i fn(to)f(execute.)20 b
(F)l(ollo)o(wing)11 b(that,)i(the)h fg(CPU)g fn(constructor)f(sets)g(the)151
668 y(Germ)i(Resp)q(onsibilit)o(y)h(of)g(the)g fg(P)o(erCPUIdlePro)q(cess)h fn
(to)f(the)g(function)h fg(CPU::b)q(o)q(otResp)q(onsibilit)o(y\(\))p fn(.)151
753 y(This)i(means)e(that)i(the)g(function)f fg(CPU::b)q(o)q(otResp)q(onsib)q
(ilit)o(y\(\))i fn(will)e(b)q(e)i(executed)f(when)h(the)f fg(P)o(er-)151 837 y
(CPUIdlePro)q(cess)h fn(b)q(egins)g(to)e(run)h(for)g(the)g(\014rst)f(time.)30
b(The)19 b fg(PCi386CPU)g fn(constructor)f(creates)h(a)151 922 y fg(PCTimesli\
ceTimer)e fn(that)g(will)g(b)q(e)i(used)g(to)e(generate)h(timeslice)e(excepti\
ons)i(when)g(running)h(pro-)151 1007 y(cesses)d(ha)o(v)o(e)e(used)i(up)g(thei\
r)f(timeslice.)93 1124 y(2.)22 b(It)14 b(initializes)e(exceptions)i(b)o(y)g
(calling)f fg(PCi386CPU::installExceptions\(\))p fn(.)20 b(This)13 b(metho)q
(d)g(initializes)151 1209 y(all)18 b(en)o(tries)h(in)f(the)i(In)o(terrupt)f
(Descriptor)f(T)l(able)g(\(whic)o(h)h(is)g(in)f(the)i(v)m(ariable)e fg(IDT)p
fn(\))g(to)h(p)q(oin)o(t)f(to)151 1293 y(individual)10 b(exception)h(handlers)
g(\(named)e fg(Interrupt0)j fn(through)e fg(255)p fn(\).)18 b(Eac)o(h)10 b
(en)o(try)h(in)f(the)h fg(Exception)151 1378 y fn(T)l(able)h(is)f(set)h(to)f
(the)h fg(DebugStra)o(yException)p fn(,)i(except)e(for)f(the)h(en)o(try)g(tha\
t)f(corresp)q(onds)h(to)f(the)h(timer)151 1463 y(in)o(terrupt,)22 b(whic)o
(h)f(is)g(set)h(to)e(the)i fg(TimerManagerInterruptException)p fn(.)39 b(Next\
,)23 b fg(i386CPU::install-)151 1548 y(Exceptions\(\))17 b fn(is)f(called)g
(to)f(set)h(up)h(t)o(w)o(o)e(Global)f(Descriptor)h(T)l(able)h(en)o(tries)g
(for)f(use)i(b)o(y)f(the)g(pro)o(xy)151 1632 y(mec)o(hanism,)f(and)j(to)f(ini\
tialize)e(the)j fg(Exception)h fn(T)l(able)e(to)g(handle)h(the)f(P)o(age)g
(F)l(ault)f(and)i(General)151 1717 y(Protection)c(Exceptions.)93 1834 y(3.)22
b fg(PCKernel::con\014gure\(\))14 b fn(copies)g(the)g fg(PCCon\014guration)h
fn(structure)f(from)f(unprotected)i(lo)o(w)e(memory)151 1919 y(to)i(protected)
g(high)g(memory)l(,)d(for)j(safet)o(y)l(.)93 2036 y(4.)22 b(It)e(copies)g(the)
g fg(choicesReturnArea)p fn(,)j(as)d(de\014ned)h(b)o(y)f(the)g fg(PCCon\014gu\
ration)h fn(structure,)f(from)f(lo)o(w)151 2121 y(memory)10 b(to)j(high)f(mem\
ory)f(\(more)g(sp)q(eci\014cally)l(,)i(the)g(temp)q(orary)e(k)o(ernel)i(heap\
\))g(so)f(that)h(the)g(k)o(ernel)151 2206 y(ma)o(y)h(restore)g(the)h(memory)e
(region)i(later)f(in)h(order)g(to)f(terminate)f(prop)q(erly)l(.)93 2323 y(5.)
22 b(It)14 b(initializes)e(the)i fg(VirtualPC)p fn(.)g(Based)h(on)f(informati\
o)o(n)e(from)g(the)i fg(PCCon\014guration)h fn(structure,)e(the)151 2408 y fg
(VirtualPC)k fn(is)g(told)f(what)g(lo)o(w)g(memory)e(regions)i(are)g(to)g(b)q
(e)i(used)f(for)f(the)h fg(VirtualPC)g fn(T)l(ask)g(Space)151 2493 y(and)f
(the)f fg(VirtualPC)g fn(Bu\013er)g(Space.)93 2610 y(6.)22 b(It)15 b(restores)
g(the)g(real-mo)q(de)f(in)o(terrupt)h(table,)f(whic)o(h)h(will)f(b)q(e)i(used)
f(for)g fg(VirtualPC)g fn(calls.)952 2760 y(77)g eop bop 108 42 a fn(Up)q(on)
15 b(returning)g(from)e fg(Kernel::initialize\(\))g fn(and)i fg(Main\(\))p fn
(,)f(the)h(k)o(ernel)f(calls)g fg(p)o(ro)q(cesso)o(rSta)o(rt\(\))p fn(.)1767
25 y fr(13)1824 42 y fn(This)37 126 y(function)e(p)q(erforms)f(a)h(non-rev)o
(ersible)g(con)o(text)f(switc)o(h)g(to)h(the)g fg(P)o(erCPUIdlePro)q(cess)p fn
(.)20 b(During)11 b(the)h(con)o(text)37 211 y(switc)o(hing,)19 b fg(CPU::b)q
(o)q(otResp)q(onsibilit)o(y\(\))i fn(is)e(called,)g(since)g(the)g(Germ)f(Resp)
q(onsibilit)o(y)g(of)h(the)g fg(P)o(erCPUI-)37 296 y(dlePro)q(cess)j fn(is)e
(p)q(oin)o(ting)g(to)g(that)f(function.)36 b(This)20 b(function)g(calls)g fg
(PCi386CPU::chipInitialize\(\))p fn(,)g(then)37 380 y fg(AddressT)l(ranslato)
o(r::activate\(\))15 b fn(and)g fg(i386MMU::enable\(\))p fn(,)d(the)i(last)f
(t)o(w)o(o)g(metho)q(ds)g(causing)h(the)g(page)g(ta-)37 465 y(bles)k(for)f
(the)h(k)o(ernel)g fg(Domain)e fn(to)i(b)q(e)g(loaded)g(in)o(to)e(the)i(386)f
(micropro)q(cessor)f(and)i(the)g(paging)f(mo)q(de)g(of)37 550 y(the)f(micropr\
o)q(cessor)d(to)i(b)q(e)g(turned)h(on.)108 634 y fg(PCi386CPU::chipInitialize\
\(\))h fn(informs)g(the)h(Programma)o(ble)e(In)o(terrupt)i(Con)o(trollers)f
(ab)q(out)h(the)g(in-)37 719 y(terrupt)h(v)o(ectors)e(to)h(b)q(e)h(called)f
(when)h(external)f(in)o(terrupts)f(\(IR)o(Qs\))i(tak)o(e)e(place.)30 b(Extern\
al)17 b(in)o(terrupts)37 804 y(are)c(n)o(um)o(b)q(ered)g(0)g(to)f(15;)h(the)h
(in)o(terrupt)e(con)o(trollers)f(are)i(programmed)d(to)j(mapp)q(ed)g(these)g
(in)o(to)f(in)o(terrupt)37 888 y(v)o(ectors)17 b(24)g(to)g(39.)26 b(F)l(ollo)
o(wing)15 b(that,)i(the)h(metho)q(d)e(programs)g(the)h(in)o(terrupt)g(con)o
(troller)f(to)g(disable)i(all)37 973 y(external)d(in)o(terrupts.)108 1058 y
(F)l(ollo)o(wing)8 b(the)j(execution)f(of)g fg(CPU::b)q(o)q(otResp)q(onsib)q
(ilit)o(y\(\))p fn(,)j(the)d fg(P)o(erCPUIdlePro)q(cess)h fn(runs)g(in)f(the)
h(func-)37 1142 y(tion)g fg(CPU::idleLo)q(op\(\))p fn(.)17 b(This)10 b(pro)q
(cess)i(examines)d(the)i(System)f(Sc)o(heduler)h(and)g(disco)o(v)o(ers)f(that)
g(the)h(Kernel)37 1227 y(Setup)16 b fg(Pro)q(cess)g fn(is)e(in)h(there.)20 b
(It)15 b(remo)o(v)o(es)e(the)i(Kernel)g(Setup)h fg(Pro)q(cess)g fn(from)d(the)
i(queue)h(and)f(switc)o(hes)f(to)37 1312 y(that)f fg(Pro)q(cess)p fn(.)20 b
(The)14 b(Kernel)g(Setup)g fg(Pro)q(cess)h fn(b)q(egins)e(execution)h(in)f fg
(Kernel::setupPro)q(cessEntry\(\))p fn(.)1765 1295 y fr(14)1824 1312 y fn(Thi\
s)37 1396 y(function)j(simply)d(calls)h fg(Kernel::main\(\))p fn(.)752 1380 y
fr(15)807 1396 y fg(Kernel::main\(\))f fn(do)q(es)j(the)f(follo)o(wing:)93
1531 y(1.)22 b(It)g(binds)f(all)f fg(Class)i fn(ob)s(jects)f(to)g(the)g(k)o
(ernel)g fg(NameServer)q fn(.)37 b fg(Class)22 b fn(ob)s(jects)f(are)g(b)q
(ound)h(to)f(their)151 1616 y(names)c(|)i(for)e(example,)h(the)g fg(Class)g fn
(represen)o(ting)g fg(HeapMemo)o(ryObject)h fn(is)f(b)q(ound)h(to)e(the)h(nam\
e)151 1700 y(\\HeapMemoryOb)s(ject".)93 1822 y(2.)k(It)15 b(initializes)f(the)
h(pro)o(xy)g(tables)f(and)i(constructor)e(installers)f(used)j(b)o(y)f(the)h
(pro)o(xy)e(mec)o(hanism.)93 1944 y(3.)22 b(It)g(initializes)e(v)o(ersion)h
(ob)s(jects)h(whic)o(h)f(will)g(b)q(e)h(used)h(to)e(matc)o(h)g(the)h(v)o(ersi\
on)f(n)o(um)o(b)q(ers)g(of)g(the)151 2029 y(ob)s(ject)14 b(in)o(terfaces)f
(pro)o(vided)h(b)o(y)f(the)i(k)o(ernel)e(with)h(the)g(v)o(ersion)f(n)o(um)o
(b)q(ers)g(of)h(the)g(ob)s(ject)f(in)o(terfaces)151 2114 y(actually)g(exp)q
(ected)i(b)o(y)e(an)h(application)f(program.)k(So)d(when)g(executing)g(an)g
(application)e(that)h(w)o(as)151 2198 y(compiled)i(with)g(a)h(di\013eren)o
(t)g(v)o(ersion)f(of)h(the)g(k)o(ernel)g(in)o(terface)f(from)g(what)g(is)h
(curren)o(tly)g(pro)o(vided)151 2283 y(b)o(y)f(the)h(k)o(ernel,)e(the)h(k)o
(ernel)g(will)f(emit)g(w)o(arning)g(messages.)37 2364 y 750 2 v 74 2391 a fs
(13)107 2407 y fa(p)o(ro)q(cesso)o(rSta)o(rt\(\))f fp(is)f(de\014ned)j(in)e fa
(Pro)q(cesso)o(rDep)q(endent/i386/i386Context.cc)p fp(.)74 2437 y fs(14)107
2453 y fa(Kernel::setupPro)q(cessEntry\(\))d fp(is)j(de\014ned)h(in)f fa(Mach\
ineDep)q(endent/PC/PCSmallKernel.cc)p fp(.)74 2482 y fs(15)107 2498 y fa(Kern\
el::main\(\))f fp(is)g(de\014ned)i(in)f fa(MachineDep)q(endent/PC/PCSmallKern\
el.cc)p fp(.)952 2760 y fn(78)g eop bop 93 42 a fn(4.)22 b(It)e(calls)f fg
(Kernel::initializeDevicesAndManagers\(\))h fn(to)f(create)g(the)h(W)l(aste)f
(Managemen)o(t)f fg(Pro)q(cess)151 126 y fn(and)j(to)e(call)h fg(PCKernel::ba\
sicInitializeDevicesAndManagers\(\))p fn(,)i(to)e(b)q(e)h(describ)q(ed)g(late\
r.)1762 110 y fr(16)1834 126 y fn(The)151 211 y(W)l(aste)15 b(Managemen)o(t)e
fg(Pro)q(cess)j fn(is)f(a)g(daemon)f(that)g(destro)o(ys)h fg(Pro)q(cesses)h fn
(in)f(the)g(Garbage)g(Can.)1850 194 y fr(17)93 333 y fn(5.)22 b(It)15 b(calls)
g fg(Kernel::initializeNet)o(w)o(o)o(rkPro)q(cesses\(\))p fn(,)f(whic)o(h)h
(do)q(es)g(nothing.)93 455 y(6.)22 b(It)16 b(creates)f(a)h fg(SystemInterface)
h fn(ob)s(ject,)e(to)g(b)q(e)h(used)h(b)o(y)e(application)g(pro)q(cesses)h
(to)f(in)o(v)o(ok)o(e)g(miscel-)151 540 y(laneous)g(k)o(ernel)g(functions.)93
662 y(7.)22 b(It)15 b(creates)g(the)h(Clean)o(up)f fg(Pro)q(cess)p fn(,)g(whi\
c)o(h)g(will)f(b)q(e)i(executed)g(when)g(the)f(k)o(ernel)g(terminates.)93 784
y(8.)22 b(It)16 b(calls)f fg(dispatchApp)q(lications\(\))p fn(.)25 b(This)15 b
(function)h(starts)f(a)g(new)i fg(Pro)q(cess)f fn(to)g(execute)g fg(dispatchA\
p-)151 868 y(plication\(\))f fn(and)h(w)o(aits)d(for)i(the)g fg(Pro)q(cess)h
fn(to)f(terminate.)108 1003 y fg(PCKernel::basicInitializeDevicesAndManagers\
\(\))h fn(initializes)d(v)m(arious)i(k)o(ernel)g(en)o(tities:)93 1137 y(1.)22
b(It)13 b(creates)g(the)g(Timeout)f(Timer)f(Manager)h fg(Pro)q(cess)i fn(whos\
e)f(job)g(is)g(to)f(c)o(hec)o(k)i(all)e fg(TimeoutTimers)g fn(in)151 1222 y
(the)i(system)d(at)i(ev)o(ery)g(timer)f(in)o(terrupt)g(and)i(to)e(w)o(ak)o
(e)h(up)h(the)f fg(TimeoutTimers)f fn(that)h(ha)o(v)o(e)g(expired.)93 1344 y
(2.)22 b(It)16 b(creates)g(the)h(P)o(erio)q(dic)e(Timer)g(Manager)g fg(Pro)q
(cess)i fn(that)f(is)g(resp)q(onsible)g(for)g(c)o(hec)o(king)g(all)f fg(P)o
(erio-)151 1429 y(dicTimers)h fn(in)h(the)g(system)e(at)h(ev)o(ery)h(timer)d
(in)o(terrupt)i(and)h(w)o(aking)f(up)h(the)g fg(P)o(erio)q(dicTimers)e fn(tha\
t)151 1513 y(ha)o(v)o(e)k(expired.)34 b fg(P)o(erio)q(dicTimers)19 b fn(are)g
(di\013eren)o(t)g(from)f fg(TimeoutTimers)g fn(in)i(that)f(a)g fg(P)o(erio)q
(dicTimer)151 1598 y fn(restarts)e(its)g(in)o(ternal)f(clo)q(c)o(k)i(ev)o(ery)
g(time)e(it)h(expires,)h(whereas)g(a)g fg(TimeoutTimer)e fn(stops)i(its)f(clo)
q(c)o(k)151 1683 y(when)f(it)e(expires.)93 1805 y(3.)22 b(It)e(creates)g(a)g
fg(VirtualPCInterface)h fn(and)f(binds)h(it)e(to)h(the)g(name)f(\\virtualPCIn)
o(terface")f(in)o(to)h(the)151 1890 y(k)o(ernel)11 b fg(NameServer)q fn(.)17 b
(Application)11 b(programs)e(ma)o(y)h(use)h(this)g(ob)s(ject)g(to)g(access)g
fg(VirtualPC)h fn(services.)93 2012 y(4.)22 b(It)13 b(examines)f(the)i(IR)o
(Q)g(en)o(tries)f(in)g(the)g fg(PCCon\014guration)h fn(structure)f(\(whic)o
(h)g(w)o(ere)g(set)g(b)o(y)g(the)h(user\))151 2096 y(and)i(creates)e fg(Inter\
ruptPro)q(cesses)k fn(accordingly)c(to)h(handle)g(the)h(external)e(in)o(terru\
pts.)93 2218 y(5.)22 b(It)15 b(programs)e(the)j(Programm)o(able)c(In)o(terrup\
t)j(Con)o(trollers)e(to)i(enable)g(the)h(external)e(in)o(terrupts.)93 2340 y
(6.)22 b(It)15 b(binds)h(the)f(k)o(ernel)g fg(NameServer)g fn(to)f(the)i(name)
e(\\KernelNameServ)o(er")g(in)o(to)g(itself.)37 2413 y 750 2 v 74 2440 a fs
(16)107 2455 y fa(Kernel::initializeDevicesAndManagers\(\))e fp(is)g(de\014ne\
d)i(in)f fa(MachineDep)q(endent/PC/PCSmallKernel.cc)p fp(.)74 2485 y fs(17)
107 2501 y fp(The)g(daemon)f(executes)i(the)f(function)h fa(Kernel::w)o(asteM\
anagementPro)q(cessEntry\(\))p fp(.)952 2760 y fn(79)g eop bop 37 42 a fd(3.3)
70 b(Application)24 b(Dispatc)n(hing)37 171 y fg(dispatchApp)q(lication\(\))
15 b fn(is)c(the)i(function)e(that)h(runs)g(Cho)q(cs,)h(the)f(PC-Choices)g
(command)e(shell,)i(and)g(w)o(aits)37 256 y(un)o(til)j(it)f(terminates.)415
239 y fr(18)470 256 y fn(It)h(ac)o(hiev)o(es)g(this)f(b)o(y)h(\014rst)g(creat\
ing)f(an)h(Application)f fg(Domain)g fn(and)i(calling)d fg(load-)37 341 y(COF\
FExecutable\(\))20 b fn(to)d(load)g(Cho)q(cs)h(in)o(to)e(the)i fg(Domain)p fn
(.)26 b(It)18 b(then)g(creates)f(an)h fg(ApplicationPro)q(cess)i fn(with)37
425 y(that)h fg(Domain)f fn(and)h(executes)h(the)f fg(Pro)q(cess)p fn(,)i(sus\
p)q(ending)f(itself)e(un)o(til)g(the)i fg(Pro)q(cess)g fn(terminates.)35 b
(The)37 510 y(executable)16 b(\014le)f(for)g(Cho)q(cs)g(is)g(assumed)f(to)h
(b)q(e)h(presen)o(t)f(in)g(the)g(curren)o(t)g(directory)l(.)108 595 y(Loading)
j(an)h(executable)g(\014le)g(in)o(to)e(an)i(Application)e fg(Domain)h fn(is)g
(the)h(resp)q(onsibilit)o(y)e(of)h fg(loadCOFF-)37 679 y(Executable\(\))p fn
(.)289 663 y fr(19)348 679 y fn(This)d(function)g(do)q(es)g(the)g(follo)o(win\
g:)93 814 y(1.)22 b(It)14 b(calls)f(DOS)h(to)f(read)h(the)g(header)g(of)f(the)
h(executable)g(\014le)g(to)f(determine)g(the)h(lo)q(cations)f(and)h(sizes)151
898 y(of)h(the)g(text,)g(data)f(and)h(BSS)h(sections.)93 1021 y(2.)22 b(It)13
b(allo)q(cates)f(three)h fg(HeapMemo)o(ryObjects)p fn(,)i(one)e(eac)o(h)g(for)
g(the)g(text,)f(data)h(and)g(BSS)h(sections)f(of)f(the)151 1105 y(executable)
k(\014le.)93 1227 y(3.)22 b(It)c(adds)g(all)f(three)h fg(HeapMemo)o(ryObjects)
h fn(in)o(to)e(the)h(Application)e fg(Domain)h fn(and)h(mak)o(es)f(them)f(ad-)
151 1312 y(dressable.)33 b(The)19 b(text)g(section)g(is)g(read-only)h(b)o(y)f
(the)h fg(ApplicationPro)q(cess)p fn(,)i(while)d(the)g(data)g(and)151 1397 y
(BSS)d(sections)f(are)g(readable)g(and)g(writeable)f(b)o(y)h(the)g fg(Applica\
tionPro)q(cess)p fn(.)93 1519 y(4.)22 b(It)13 b(adds)f(all)g(three)g fg(HeapM\
emo)o(ryObjects)p fn(in)o(to)h(the)f(Kernel)h fg(Domain)e fn(and)i(mak)o(es)e
(them)g(addressable.)151 1603 y(The)18 b(text)g(and)g(data)f(sections)g(are)h
(read)g(from)e(the)i(executable)g(\014le)g(b)o(y)g(calling)e(DOS,)i(while)f
(the)151 1688 y(BSS)f(section)f(is)f(\014lled)i(with)e(zeros.)93 1810 y(5.)22
b(It)15 b(remo)o(v)o(es)f(all)g(three)h fg(HeapMemo)o(ryObjects)h fn(from)e
(the)h(Kernel)h fg(Domain)p fn(.)37 1991 y fd(3.4)70 b(T)-6 b(ermination)37
2120 y fn(The)12 b(k)o(ernel)e(terminates)f(itself)h(when)h(Cho)q(cs)g(has)f
(\014nished)i(running.)18 b(The)11 b(follo)o(wing)e(steps)i(are)f(p)q(erforme\
d)37 2205 y(b)o(y)16 b fg(Kernel::main\(\))d fn(when)i(the)h(k)o(ernel)e(term\
inates:)946 2189 y fr(20)93 2340 y fn(1.)22 b(It)13 b(runs)h(the)f(Clean)o
(up)g fg(Pro)q(cess)h fn(to)f(erase)g(all)f(remaining)f fg(Domains)i fn(excep\
t)g(for)g(the)g(Kernel)h fg(Domain)p fn(.)37 2421 y 750 2 v 74 2447 a fs(18)
107 2463 y fa(dispatchApplication\(\))e fp(is)h(de\014ned)h(in)f fa(MachineDe\
p)q(endent/PC/DispatchApplication.cc)p fp(.)74 2493 y fs(19)107 2509 y fa(loa\
dCOFFExecutable\(\))g fp(is)g(de\014ned)h(in)f fa(MachineDep)q(endent/PC/Disp\
atchApplication.cc)p fp(.)74 2539 y fs(20)107 2555 y fa(Kernel::main\(\))f fp
(is)g(de\014ned)i(in)f fa(MachineDep)q(endent/PC/PCSmallKernel.cc)p fp(.)952
2760 y fn(80)g eop bop 93 42 a fn(2.)22 b(It)15 b(destro)o(ys)g(the)g fg(Syst\
emInterface)h fn(ob)s(ject.)93 164 y(3.)22 b(It)14 b(displa)o(ys)g(a)f(list)g
(of)h(ob)s(jects)g(that)f(ha)o(v)o(e)h(not)g(b)q(een)h(destro)o(y)o(ed.)k(Onl\
y)14 b(ob)s(jects)g(b)q(elonging)g(to)f(class)151 248 y fg(Object)k fn(and)e
(its)f(sub)q(classes)i(are)e(displa)o(y)o(ed.)19 b(Ob)s(jects)c(whose)g(names)
f(\(i.e.)19 b(the)c(name)f(set)h(through)151 333 y fg(Pro)o(xiableObject::set\
Name\(\))p fn(\))g(b)q(egin)h(with)e(the)h(\\#")g(c)o(haracter)f(are)h(not)g
(displa)o(y)o(ed.)93 455 y(4.)22 b(It)15 b(calls)g fg(Halt\(\))p fn(.)108 589
y fg(Halt\(\))g fn(do)q(es)g(the)h(follo)o(wing:)613 573 y fr(21)93 724 y fn
(1.)22 b(It)d(calls)g fg(PCi386CPUChipT)l(erminate\(\))f fn(to)h(disable)g
(all)f(in)o(terrupts)g(and)i(to)e(reprogram)g(the)h(Pro-)151 809 y(grammable)
14 b(In)o(terrupt)j(Con)o(trollers)d(to)j(map)e(the)i(external)f(in)o(terrupt)
g(\(IR)o(Q\))h(n)o(um)o(b)q(ers)g(in)o(to)e(the)151 893 y(normal)f(PC)h(in)o
(terrupt)g(\(INT\))h(n)o(um)o(b)q(ers.)896 877 y fr(22)954 893 y fn(\(IR)o
(Q)g(0x00{0x07)e(are)h(mapp)q(ed)g(to)g(INT)h(0x08{0x0F)151 978 y(and)g(IR)o
(Q)g(0x08{0x0F)d(are)i(mapp)q(ed)g(to)f(INT)i(0x70{0x77\).)93 1100 y(2.)22 b
(It)14 b(calls)g fg(PCTimerManagerT)l(erminate\(\))p fn(,)d(whic)o(h)j(reprog\
rams)e(the)j(hardw)o(are)e(timer)g(to)g(tic)o(k)h(at)f(the)151 1185 y(standar\
d)i(PC)g(frequency)h(\(18.2)d(tic)o(ks)i(p)q(er)g(second\).)1087 1168 y fr
(23)93 1307 y fn(3.)22 b(It)15 b(restores)g(the)g(en)o(tire)g fg(choicesRetur\
nArea)i fn(sp)q(eci\014ed)g(in)e(the)g fg(PCCon\014guration)h fn(structure.)
93 1429 y(4.)22 b(It)16 b(branc)o(hes)f(to)g(the)h fg(choicesReturn)i fn(addr\
ess)d(sp)q(eci\014ed)i(in)e(the)g fg(PCCon\014guration)i fn(structure.)j(This)
151 1513 y(routine)15 b(switc)o(hes)f(from)g(protected)h(mo)q(de)f(to)h(real-\
address)g(mo)q(de)f(and)i(exits)e(to)h(DOS.)37 2476 y 750 2 v 74 2503 a fs
(21)107 2519 y fa(Halt\(\))e fp(is)g(de\014ned)h(in)f fa(MachineDep)q(endent/\
PC/PCKernel.cc)p fp(.)74 2548 y fs(22)107 2564 y fa(PCi386CPUChipT)m(erminate\
\(\))e fp(is)i(de\014ned)h(in)f fa(MachineDep)q(endent/PC/PCi386CPU.cc)p fp
(.)74 2594 y fs(23)107 2610 y fa(PCTimerManagerT)m(erminate\(\))f fp(is)h(de\
\014ned)h(in)f fa(MachineDep)q(endent/PC/PCTimerManager.cc)p fp(.)952 2760 y
fn(81)g eop bop 37 405 a fc(Chapter)35 b(4)37 675 y fb(Device)41 b(Driv)m(ers)
1301 897 y fj(Whose)15 b(side)g(are)g(y)o(ou)g(on)g(an)o(yw)o(a)o(y)1375 954 y
(Is)h(that)e(some)g(kind)h(of)g(threat)1315 1010 y(W)l(ell)f(I)i(supp)q(ose)g
(it'll)d(ha)o(v)o(e)i(to)g(do)1073 1066 y(As)g(long)g(as)g(y)o(ou)f(don't)h
(mak)o(e)f(to)q(o)g(m)o(uc)o(h)h(mess)1171 1123 y(|)g(\\The)h(sound)f(of)g
(the)g(atom)e(splitting")108 1208 y fn(Although)22 b(the)g(main)e(input/outpu\
t)i(devices)g(suc)o(h)g(as)g(the)g(console)g(and)g(disks)f(are)h(handled)h
(b)o(y)37 1292 y(PC-Choices)16 b(through)f(BIOS,)i(other)f(devices)g(suc)o
(h)g(as)f(the)h(mouse,)f(Ethernet)h(adapter)f(and)h(serial)f(p)q(ort)37 1377 y
(require)f(device)f(driv)o(ers)g(in)g(order)g(to)f(function)h(under)h(PC-Choi\
ces.)19 b(This)13 b(c)o(hapter)g(describ)q(es)h(the)f(device)37 1462 y(driv)o
(er)i(arc)o(hitecture)g(adopted)g(b)o(y)g(PC-Choices)g(and)g(discusses)h(some)
d(examples.)37 1642 y fd(4.1)70 b(Device)22 b(Driv)n(er)h(Arc)n(hitecture)37
1772 y fn(Although)d(the)g(main)e(input/output)h(devices)i(suc)o(h)f(as)f(the)
h(console)g(and)g(disks)f(are)h(handled)g(b)o(y)g(PC-)37 1857 y(Choices)11 b
(through)f(BIOS,)h(other)f(devices)h(suc)o(h)g(as)f(the)g(mouse,)g(Ethernet)h
(adapter)f(and)g(serial)g(p)q(ort)g(require)37 1941 y(device)18 b(driv)o(ers)
e(in)h(order)g(to)f(function)h(under)g(PC-Choices.)25 b(Device)17 b(driv)o
(ers)f(ma)o(y)f(b)q(e)j(implemen)o(ted)d(in)37 2026 y(PC-Choices)20 b(in)f
(t)o(w)o(o)f(w)o(a)o(ys.)32 b(One)21 b(w)o(a)o(y)d(is)h(to)g(incorp)q(orate)g
(the)h(device)g(handling)f(co)q(de)h(in)o(to)f(the)h(PC-)37 2111 y(Choices)h
(k)o(ernel.)38 b(The)21 b(programmer)d(only)j(needs)h(to)f(de\014ne)h(a)f(new)
g(sub)q(class)g(of)g fg(Exception)i fn(to)d(tak)o(e)37 2195 y(care)f(of)g(in)
o(terrupts)f(from)f(the)i(device,)h(and)g(to)e(de\014ne)i(another)f(new)g(cla\
ss)f(that)g(will)g(b)q(e)i(exp)q(orted)f(to)37 2280 y(application)d(programs)
e(to)i(serv)o(e)g(as)h(the)f(programming)d(in)o(terface)j(for)g(the)h(device.)
24 b(The)17 b(device)g(driv)o(er)37 2365 y(in)f(the)f(k)o(ernel)g(pro)o(vides)
g(device)g(services)g(to)g(m)o(ultiple)e(application)h(programs)f(in)i(a)g
(fair)f(and)h(consisten)o(t)37 2449 y(manner.)23 b(This)16 b(metho)q(d)g(of)f
(implemen)o(ting)f(device)j(driv)o(ers)e(is)h(used)h(in)f(traditional)e(op)q
(erating)i(systems)37 2534 y(suc)o(h)g(as)f(Unix.)952 2760 y(82)g eop bop 108
42 a fn(Another)15 b(w)o(a)o(y)e(of)i(implemen)o(ting)c(device)k(driv)o(ers)f
(in)h(PC-Choices)f(is)g(to)g(reuse)h(existing)f(DOS)h(device)37 126 y(driv)o
(ers)f(b)o(y)h(running)f(them)f(inside)i(the)f fg(VirtualPC)p fn(.)g(Presen)o
(tly)l(,)g(all)f(device)i(driv)o(ers)f(for)g(PC-Choices)g(w)o(ere)37 211 y
(implemen)o(ted)k(with)h(this)g(w)o(a)o(y)l(.)32 b(These)20 b(device)g(driv)o
(ers)f(are)h(loaded)f(under)h(DOS)g(b)o(y)g(the)f(user)h(b)q(efore)37 296 y
(PC-Choices)14 b(is)f(started,)g(and)h(they)f(are)h(programm)o(ed)e(to)h(comm)
o(unicate)e(with)i(PC-Choices)g(application)37 380 y(programs)h(via)g fg(Virt\
ualPC)i fn(in)o(terrupt)e(in)o(terceptors.)108 465 y(Most)j(existing)g(DOS)h
(device)g(driv)o(ers)f(cannot)h(b)q(e)g(used)g(as)g(they)g(are)f(under)i(PC-C\
hoices,)e(b)q(ecause)37 550 y(the)i(device)f(driv)o(ers)g(assume)f(that)g(the)
h(clien)o(t)f(is)h(a)g(DOS)g(program)e(and)i(they)h(comm)o(unicate)c(with)i
(the)37 634 y(clien)o(t)h(through)h(16-bit)f(programm)o(ing)e(metho)q(ds.)29 b
(F)l(or)18 b(example,)g(Ethernet)h(device)g(driv)o(ers)f(normally)37 719 y
(signal)h(the)h(arriv)m(al)e(of)i(an)f(incoming)f(Ethernet)i(pac)o(k)o(et)f
(b)o(y)h(in)o(v)o(oking)f(a)g(clien)o(t-de\014ned)i(function)e(that)37 804 y
(w)o(as)e(written)g(in)g(16-bit)g(co)q(de.)28 b(This)17 b(metho)q(d)g(of)g
(comm)o(unicatio)o(n)e(is)i(incompatible)f(with)h(PC-Choices)37 888 y(whic)o
(h)i(uses)g(32-bit)f(co)q(de.)30 b(A)19 b(sp)q(ecial)f(16-bit)g(program)e(cal\
led)j(the)f(device)h(driv)o(er)f(adapter)g(has)h(to)f(b)q(e)37 973 y(written)
h(b)o(y)h(the)g(system)e(programmer)f(to)i(serv)o(e)g(as)h(the)g(clien)o(t)f
(of)g(the)h(device)g(driv)o(er.)33 b(The)20 b(adapter)37 1058 y(pro)o(vides)f
(a)g fg(VirtualPC)h fn(v)o(ector)f(that)f(ma)o(y)g(b)q(e)i(in)o(tercepted)g
(in)f(order)g(to)g(comm)o(unicate)d(with)j(the)h(PC-)37 1142 y(Choices)14 b
(k)o(ernel)g(or)g(applications)e(\(Figure)h(4.1\).)18 b(Often)d(the)f(adapter)
g(serv)o(es)f(as)h(a)g(higher-lev)o(el)f(in)o(terface)37 1227 y(for)f(the)h
(underlying)f(device)h(driv)o(er,)f(meaning)f(that)g(the)i(PC-Choices)f(k)o
(ernel)g(or)g(applications)f(can)i(in)o(v)o(ok)o(e)37 1312 y(the)j(device)f
(functions)g(through)g(the)g(adapter,)g(instead)g(of)g(calling)e(the)j(device)
f(driv)o(er)g(directly)l(.)108 1396 y(If)21 b(m)o(ultiple)d(application)h(pro\
grams)g(require)h(the)h(services)f(of)g(a)g(single)g(device)h(concurren)o(tly)
f(but)37 1481 y(the)f(device)f(driv)o(er)g(or)f(adapter)h(do)q(es)g(not)g(sup\
p)q(ort)g(m)o(ultiple)e(clien)o(ts,)i(the)g(device)h(driv)o(er)e(arc)o(hitect\
ure)37 1566 y(that)e(I)g(ha)o(v)o(e)f(just)h(describ)q(ed)h(will)d(de\014nite\
ly)i(b)q(e)h(inadequate.)k(T)l(o)14 b(handle)h(m)o(ultiple)e(clien)o(ts,)h
(the)h(system)37 1650 y(programmer)e(ma)o(y)i(build)h(a)f(separate)h(applicat\
ion)e(program,)g(called)i(the)g(device)g(serv)o(er,)g(that)f(accesses)37 1735
y(the)f(device)g(on)g(b)q(ehalf)g(of)f(all)g(other)g(application)f(programs.)
17 b(Application)c(programs)e(can)j(comm)o(unicate)37 1820 y(with)f(the)f(dev\
ice)i(serv)o(er)e(through)g(remote)g(pro)q(cedure)h(calls,)f(implemen)o(ted)f
(with)h(the)h(PC-Choices)f(in)o(ter-)37 1905 y(pro)q(cess)h(comm)o(unication)
d(system.)17 b(The)c(application)e(programmer)f(do)q(es)j(not)f(necessarily)g
(ha)o(v)o(e)g(to)g(write)37 1989 y(routines)k(to)f(p)q(erform)g(message-passi\
ng)f(|)i(a)g(library)f(ma)o(y)f(b)q(e)j(pro)o(vided)e(b)o(y)h(the)g(system)f
(programm)o(er)37 2074 y(to)g(hide)h(the)g(message-passing)d(implemen)o(tatio)
o(n,)g(giving)h(a)h(high-lev)o(el,)g(ob)s(ject-orien)o(ted)f(programming)37
2159 y(in)o(terface.)28 b(The)18 b(PC-Choices)f(serial)g(p)q(ort)h(terminal)d
(serv)o(er)j(is)f(an)h(example)f(of)g(a)h(device)g(serv)o(er.)28 b(This)37
2243 y(program)18 b(allo)o(ws)f(the)i(user)h(to)e(connect)i(a)f(dum)o(b)f(ter\
minal)f(to)i(the)g(PC)g(serial)f(p)q(ort)h(for)f(running)i(PC-)37 2328 y(Choi\
ces)13 b(programs.)k(The)d(terminal)d(serv)o(er)h(p)q(ermits)g(m)o(ultiple)f
(programs)g(to)i(access)g(the)g(dum)o(b)g(terminal)37 2413 y(through)i(an)g
(ob)s(ject-orien)o(ted)g(stream-based)f(in)o(terface.)108 2497 y(No)f(additio\
nal)f(k)o(ernel)h(functionalit)o(y)e(b)q(ey)o(ond)j(the)f fg(VirtualPCInterfa\
ce)h fn(and)f fg(VirtualPC)h fn(v)o(ector)e(in)o(ter-)37 2582 y(ceptors)k(are)
f(needed)h(to)f(supp)q(ort)g(suc)o(h)h(user-installable)e(device)i(driv)o(ers\
.)k(The)15 b fg(VirtualPCInterface)h fn(ma)o(y)952 2760 y(83)g eop bop 83 202
a 28180900 33154007 855162 1710325 37364039 44271124 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 13 26 568 673
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 24 283.5 ] concat
%I 6
291 347
22 347
22 283
291 283
305 304
284 326
6 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -192 6 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 0.5 -0 -0 0.5 205 330 ] concat
%I 10
313 383
7 383
7 192
18 195
25 190
33 195
33 362
312 362
318 370
309 376
10 Poly
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 225.561 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 259.117 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 292.674 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 326.23 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 -0.51301 533.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 27 671 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 138 378 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 24 321.5 ] concat
%I 6
291 347
22 347
22 283
291 283
305 304
284 326
6 Poly
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 36.5 485 ] concat
%I
[
(Device Driver Adapter)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 62 447 ] concat
%I
[
(Device Driver)
] Text
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 24 288.5 ] concat
%I 6
279 311
278 282
239 278
239 265
319 267
319 311
6 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 106.987 333.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 129 593 ] concat
%I
[
(Interrupt)
(vector)
] Text
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 -127 156 ] concat
%I 3
177 422
187 393
208 379
3 BSpl
%I 1
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 286 283.5 ] concat
%I 6
291 347
22 347
22 283
291 283
305 304
284 326
6 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 70 6 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 0.5 -0 -0 0.5 205 330 ] concat
%I 10
313 383
7 383
7 192
18 195
25 190
33 195
33 362
312 362
318 370
309 376
10 Poly
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 225.561 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 259.117 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 292.674 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 326.23 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 261.487 533.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 338.987 514.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 400 378 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 369 649 ] concat
%I
[
([Running])
] Text
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 286 321.5 ] concat
%I 6
291 347
22 347
22 283
291 283
305 304
284 326
6 Poly
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 298.5 485 ] concat
%I
[
(Device Driver Adapter)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 324 447 ] concat
%I
[
(Device Driver)
] Text
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 286 288.5 ] concat
%I 6
279 311
278 282
239 278
239 265
319 267
319 311
6 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 368.987 333.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 135 156 ] concat
%I 3
287 442
323 371
283 333
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 135 156 ] concat
%I 3
309 394
317 356
286 296
3 BSpl
%I 1
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 24 -52.5001 ] concat
%I 6
291 347
22 347
22 283
291 283
305 304
284 326
6 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -192 -330 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 0.5 -0 -0 0.5 205 330 ] concat
%I 10
313 383
7 383
7 192
18 195
25 190
33 195
33 362
312 362
318 370
309 376
10 Poly
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 225.561 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 259.117 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 292.674 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 326.23 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 -0.51301 197.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 24 -14.5001 ] concat
%I 6
291 347
22 347
22 283
291 283
305 304
284 326
6 Poly
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 36.5 149 ] concat
%I
[
(Device Driver Adapter)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 62 111 ] concat
%I
[
(Device Driver)
] Text
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 24 -47.5001 ] concat
%I 6
279 311
278 282
239 278
239 265
319 267
319 311
6 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 106.987 -2.92407 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 -127 -180 ] concat
%I 3
275 293
253 295
246 317
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 -127 -180 ] concat
%I 3
234 333
214 334
210 357
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 -127 -180 ] concat
%I 3
213 359
226 354
279 296
3 BSpl
%I 1
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 288 -52.5 ] concat
%I 6
291 347
22 347
22 283
291 283
305 304
284 326
6 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 72 -330 ] concat

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
< 88 44 22 11 88 44 22 11 > -1 SetP
%I t
[ 0.5 -0 -0 0.5 205 330 ] concat
%I 10
313 383
7 383
7 192
18 195
25 190
33 195
33 362
312 362
318 370
309 376
10 Poly
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 225.561 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 259.117 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 292.674 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

Begin %I CBSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.111893 0 0 0.111893 326.23 484.501 ] concat
%I 26
60 440
60 159
60 159
66 143
77 134
100 124
118 121
132 120
153 122
173 127
189 137
199 147
204 160
204 159
204 439
204 439
198 453
187 464
178 470
157 476
133 481
106 477
79 469
69 457
63 449
60 439
26 CBSpl
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 263.487 197.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 291 335 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 402 42 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 288 -14.5 ] concat
%I 6
291 347
22 347
22 283
291 283
305 304
284 326
6 Poly
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 300.5 149 ] concat
%I
[
(Device Driver Adapter)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 326 111 ] concat
%I
[
(Device Driver)
] Text
End

Begin %I Poly
none SetB %I b n
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 288 -47.5 ] concat
%I 6
279 311
278 282
239 278
239 265
319 267
319 311
6 Poly
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 370.987 -2.92401 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I BSpl
%I b 65535
1 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 137 -180 ] concat
%I 3
212 380
218 403
198 431
3 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 27 335 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 138 41.9999 ] concat
%I
[
([Running])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 289 671 ] concat
%I
[
([Blocked])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 90 418 ] concat
%I
[
(Interrupt)
(process)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 114 668 ] concat
%I
[
(Application process)
(intercepts signal)
(vector and blocks)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 442 626 ] concat
%I
[
(Application process)
(initiates I/O operation;)
(device driver sends)
(command to device)
(controller)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 87 307 ] concat
%I
[
(When I/O is completed,)
(the device interrupt process)
(runs, calling the adapter)
(which generates a software)
(interrupt for the signal)
(vector)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 348 306 ] concat
%I
[
(Application process)
(is resumed to handle)
(result of I/O operation)
] Text
End

Begin %I Line
%I b 65535
3 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 53 24 ] concat
%I
143 447 213 447 Line
%I 1
End

Begin %I Line
%I b 65535
3 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 53 24 ] concat
%I
212 382 145 316 Line
%I 1
End

Begin %I Line
%I b 65535
3 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 53 -314 ] concat
%I
143 447 213 447 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 165 512 ] concat
%I
[
(16-bit mode)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 166 543 ] concat
%I
[
(32-bit mode)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 53 90 ] concat
%I
96 471 96 447 Line
%I 1
End

End %I eop

showpage

%%Trailer

end

endTexFig
56 2400 a fi(Figure)17 b(4.1)p fn(:)i(A)d(16-bit)e(device)i
(driv)o(er)e(signalling)f(a)i(32-bit)g(pro)q(cess)g(through)g(an)g(in)o(terce\
pted)g(v)o(ector)952 2760 y(84)g eop bop 37 42 a fn(b)q(e)14 b(called)f(b)o
(y)g(applications)f(to)g(in)o(v)o(ok)o(e)g(device)i(driv)o(er)e(functions,)h
(and)g(the)h fg(VirtualPC)f fn(v)o(ector)f(in)o(terceptor)37 126 y(in)o(terfa\
ce)17 b(ma)o(y)e(b)q(e)i(used)h(b)o(y)f(applications)e(to)h(receiv)o(e)h(sign\
als)f(from)f(the)i(device)g(driv)o(er)g(adapters.)24 b(Ap-)37 211 y(plication)
17 b(libraries)f(ma)o(y)g(b)q(e)j(dev)o(elop)q(ed)f(to)f(presen)o(t)h(to)f
(applications)g(a)g(higher-lev)o(el,)g(ob)s(ject-orien)o(ted)37 296 y(in)o
(terface)f(to)f(the)h(device)g(driv)o(er)g(adapter.)22 b(One)16 b(suc)o(h)h
(library)d(is)i(the)g(PC-Choices)f(net)o(w)o(orking)g(library)l(,)37 380 y
(whic)o(h)e(pro)o(vides)f(Ethernet)g(net)o(w)o(orking)f(services)i(through)f
(an)g(ob)s(ject-orien)o(ted)g(in)o(terface)g(that)f(supp)q(orts)37 465 y(bu\
\013er)19 b(managemen)o(t)c(and)k(callbac)o(ks.)28 b(Hence)19 b(w)o(e)f(can)h
(still)e(pro)o(vide)g(a)h(con)o(v)o(enien)o(t)g(in)o(terface)g(for)g(pro-)37
550 y(gramming)c(the)k(device)g(without)e(ha)o(ving)g(to)h(extend)h(the)f(k)o
(ernel)g(in)o(terface)g(whenev)o(er)h(a)f(new)g(device)h(is)37 634 y(added.)
108 719 y(With)e(this)h(device)g(driv)o(er)f(arc)o(hitecture,)h(in)o(terrupt-\
handling)f(is)g(signi\014can)o(tly)g(slo)o(w)o(er)f(b)q(ecause)j(the)37 804 y
(device)f(in)o(terrupts)e(ha)o(v)o(e)g(to)g(b)q(e)i(forw)o(arded)e(b)o(y)g
(the)h(PC-Choices)g(k)o(ernel)f(to)g(the)h(DOS)g(device)g(driv)o(er)g(b)o(y)
37 888 y(dispatc)o(hing)f(a)g fg(VirtualPCT)l(ask)p fn(.)21 b(Ho)o(w)o(ev)o
(er,)13 b(the)j(arc)o(hitecture)e(o\013ers)h(the)g(follo)o(wing)e(adv)m(an)o
(tages:)93 1023 y(1.)22 b(Existing)17 b(DOS)i(device)g(driv)o(ers)e(ma)o(y)g
(b)q(e)i(reused)g(under)g(PC-Choices,)f(sa)o(ving)f(the)i(programm)o(er)151
1108 y(from)14 b(writing)f(all)h(device)i(driv)o(ers)f(from)e(scratc)o(h.)93
1230 y(2.)22 b(Device)15 b(driv)o(ers)g(ma)o(y)e(b)q(e)j(loaded)e(b)o(y)h(the)
h(user)f(only)g(when)g(needed,)h(and)f(no)g(con\014guration)g(of)f(the)151
1314 y(k)o(ernel)h(is)g(required.)93 1436 y(3.)22 b(The)17 b(k)o(ernel)g(b)q
(ecomes)f(more)g(robust)g(and)h(p)q(ortable)g(b)q(ecause)h(it)e(do)q(es)h(not)
g(deal)f(with)g(an)o(y)h(device)151 1521 y(driv)o(ers)e(directly)l(.)93 1643 y
(4.)22 b(Device)12 b(driv)o(ers)e(ma)o(y)g(b)q(e)i(executed)h(in)e(the)h(DOS)
g(en)o(vironmen)o(t)e(and)h(debugged)i(using)e(con)o(v)o(en)o(tional)151 1728
y(DOS)16 b(debuggers.)108 1862 y(Programmi)o(ng)11 b(con)o(v)o(en)o(tions)j
(ha)o(v)o(e)g(b)q(een)h(adopted)f(in)h(order)f(to)f(lo)q(cate)h(device)h(driv)
o(er)e(adapters)h(con-)37 1947 y(v)o(enien)o(tly)l(.)37 b(The)21 b(programmin\
g)d(in)o(terface)i(for)g(device)h(driv)o(er)g(adapters)f(consists)g(of)h(16-b\
it)f(routines)37 2032 y(that)g(are)f(in)o(v)o(ok)o(ed)h(via)f(soft)o(w)o(are)
f(in)o(terrupts,)i(meaning)f(that)g(the)h(routines)f(are)h(p)q(oin)o(ted)g
(to)f(b)o(y)h(a)g(set)37 2116 y(of)d(in)o(terrupt)g(v)o(ectors.)25 b(In)18 b
(addition,)e(the)h(adapter)g(ma)o(y)f(sp)q(ecify)h(an)g(in)o(terrupt)g(v)o
(ector)f(that)h(should)g(b)q(e)37 2201 y(in)o(tercepted)j(b)o(y)f(a)g(PC-Choi\
ces)f(application)g(program)f(in)i(order)g(to)f(catc)o(h)h(device)h(ev)o(en)o
(ts.)31 b(Only)19 b(the)37 2286 y(in)o(terrupt)14 b(v)o(ectors)g(in)h(the)g
(range)f(0x60)g(to)g(0x7F)g(should)h(b)q(e)g(used)g(b)o(y)g(adapters.)k(F)l
(or)14 b(ev)o(ery)h(v)o(ector)f(used)37 2370 y(b)o(y)k(an)g(adapter,)f(a)g
(n)o(ull-terminated)f(string)g(app)q(ears)i(exactly)f(three)h(b)o(ytes)f(past)
g(the)h(address)g(p)q(oin)o(ted)37 2455 y(to)e(b)o(y)g(the)g(in)o(terrupt)f
(v)o(ector.)21 b(The)16 b(string)f(is)g(kno)o(wn)h(as)g(a)f(signature;)g(it)g
(iden)o(ti\014es)h(uniquely)g(a)g(sp)q(eci\014c)37 2540 y(adapter)k(routine)g
(that)f(ma)o(y)g(b)q(e)h(called)g(to)g(in)o(v)o(ok)o(e)f(device)h(services.)
35 b(Signatures)19 b(are)h(used)h(similarly)952 2760 y(85)g eop bop 37 42 a fn
(for)16 b(in)o(terceptable)g(v)o(ectors.)22 b(All)16 b(signatures)f(con)o(tai\
n)h(text)g(to)f(iden)o(tify)h(the)g(t)o(yp)q(e)h(of)e(the)i(device)g(and)f
(to)37 126 y(iden)o(tify)f(the)g(purp)q(ose)h(of)f(the)g(v)o(ector.)108 211 y
(Let)j(us)g(examine)e(some)g(examples)h(of)g(signatures.)26 b(The)18 b(serial)
e(p)q(ort)h(driv)o(er)g(adapter)h(uses)f(the)h(sig-)37 296 y(nature)d(\\SP)g
(DR)-5 b(VR1")15 b(to)f(iden)o(tify)g(the)h(v)o(ector)f(that)g(ma)o(y)f(b)q
(e)i(in)o(v)o(ok)o(ed)f(b)o(y)h(an)f(PC-Choices)h(application)37 380 y(progra\
m)g(to)h(p)q(erform)f(functions)i(relating)e(to)h(serial)f(p)q(ort)h(n)o(um)o
(b)q(er)g(one.)24 b(An)17 b(application)f(in)o(v)o(ok)o(es)f(this)37 465 y
(v)o(ector)i(to)g(send)h(and)g(receiv)o(e)f(c)o(haracters)g(from)e(the)j(seri\
al)e(p)q(ort.)26 b(The)18 b(same)e(adapter)h(uses)h(the)f(signa-)37 550 y(tur\
e)e(\\SP)f(RECV)h(READ)o(Y1")f(to)f(iden)o(tify)h(the)h(v)o(ector)e(that)h
(should)h(b)q(e)g(in)o(tercepted)f(b)o(y)g(an)h(application)37 634 y(program)
d(in)i(order)f(to)g(receiv)o(e)h(noti\014cation)f(ab)q(out)g(the)h(arriv)m
(al)f(of)g(c)o(haracters)g(from)f(serial)h(p)q(ort)g(n)o(um)o(b)q(er)37 719 y
(one.)37 900 y fd(4.2)70 b(Mouse)23 b(Driv)n(er)37 1029 y fn(The)d(mouse)e
(device)i(driv)o(er)e(used)i(b)o(y)g(PC-Choices)e(is)h(exactly)g(the)g(same)f
(driv)o(er)h(used)h(b)o(y)f(most)e(DOS)37 1114 y(applications.)26 b(The)18 b
(device)g(driv)o(er)f(is)g(a)g(DOS)h(program)e(supplied)i(b)o(y)f(the)h(v)o
(endor)f(of)g(the)h(mouse)f(\(e.g.)37 1199 y(Microsoft,)e(Logitec)o(h\))g(and)
h(is)f(t)o(ypically)g(named)g(\\MOUSE.COM"[5)o(,)g(35].)22 b(Although)15 b
(the)h(main)f(func-)37 1283 y(tion)21 b(of)g(a)g(mouse)f(driv)o(er)h(is)g(to)
g(return)g(the)g(curren)o(t)h(status)e(of)h(the)g(mouse)g(\(e.g.)37 b(buttons)
21 b(pressed,)37 1368 y(co)q(ordinates)16 b(of)g(mouse)f(p)q(oin)o(ter\),)h
(the)g(DOS)h(mouse)e(driv)o(er)h(has)g(a)g(v)o(ersatile)f(in)o(terface)g(that)
h(allo)o(ws)e(the)37 1453 y(programmer)j(to)j(p)q(oll)g(the)g(mouse)f(status)
h(and)g(to)g(sp)q(ecify)g(a)g(callbac)o(k)f(function)i(that)e(will)g(b)q(e)i
(called)37 1537 y(whenev)o(er)16 b(the)f(mouse)g(status)f(c)o(hanges.)108 1622
y(I)k(dev)o(elop)q(ed)g(an)f(adapter)f(for)h(the)g(mouse)f(driv)o(er)h(so)g
(that)f(the)i(mouse)e(can)h(b)q(e)h(used)g(for)e(the)i(MGR)37 1707 y(windo)o
(wing)g(system)e(under)j(PC-Choices.)29 b(The)18 b(adapter)g(emplo)o(ys)e(the)
j(callbac)o(k)e(mo)q(de)g(of)h(the)h(mouse)37 1791 y(driv)o(er)d(to)g(pro)o
(vide)g(an)g(ev)o(en)o(t-driv)o(en)g(mouse)f(in)o(terface)h(to)f(MGR.)h(The)h
(implemen)o(tat)o(ion)c(of)j(the)h(mouse)37 1876 y(driv)o(er)k(adapter)g(is)g
(straigh)o(tforw)o(ard.)36 b(The)22 b(mouse)e(driv)o(er)h(and)h(adapter)f(are)
g(loaded)g(when)h(DOS)g(is)37 1961 y(running,)e(b)q(efore)f(PC-Choices)f(is)h
(started.)29 b(When)20 b(the)f(adapter)f(is)g(loaded)h(in)o(to)e(memory)l(,)g
(it)h(informs)37 2045 y(the)g(mouse)e(driv)o(er)g(ab)q(out)h(the)g(callbac)o
(k)f(function)h(lo)q(cated)g(in)f(the)h(adapter.)25 b(The)18 b(adapter)e(pro)
o(vides)h(a)37 2130 y(mouse)c(signal)g(v)o(ector)g(that)g(ma)o(y)f(b)q(e)i
(in)o(tercepted)g(b)o(y)g(PC-Choices)f(applications)g(to)g(catc)o(h)g(mouse)g
(ev)o(en)o(t.)37 2215 y(After)i(that,)f(PC-Choices)h(ma)o(y)f(b)q(e)i(started)
e(to)h(execute)g(MGR.)108 2299 y(MGR)i(in)o(tercepts)g(the)g(mouse)f(signal)g
(v)o(ector,)h(iden)o(ti\014ed)g(b)o(y)g(the)h(signature)e(\\MOUSE)h(SIGNAL",)
37 2384 y(to)i(receiv)o(e)f(mouse)g(ev)o(en)o(ts.)31 b(When)19 b(the)g(mouse)
f(status)g(c)o(hanges)g(\(i.e.)30 b(if)19 b(a)f(mouse)g(button)h(is)f(pressed)
37 2469 y(or)g(released,)h(or)f(if)f(the)i(mouse)e(is)h(mo)o(v)o(ed\),)e(the)
j(mouse)e(driv)o(er)g(will)g(call)h(the)g(callbac)o(k)f(function.)29 b(The)37
2554 y(callbac)o(k)18 b(function)h(in)f(the)h(adapter)f(generates)g(a)g(soft)
o(w)o(are)f(in)o(terrupt)h(\(via)f(the)i(INT)g(instruction\))e(for)952 2760 y
(86)g eop bop 37 42 a fn(the)18 b(mouse)e(signal)g(v)o(ector)g(while)h(k)o
(eeping)g(the)g(up)q(dated)i(mouse)d(status)g(in)h(the)g(registers.)25 b(As)
17 b(a)g(result)37 126 y(of)h(the)g(soft)o(w)o(are)d(in)o(terrupt,)j(the)f
(register)g(v)m(alues)h(are)f(passed)h(as)g(a)f(VirtualPCRegisters)f(structur\
e)h(to)37 211 y(the)e(MGR)f(program,)e(whic)o(h)i(has)g(already)f(in)o(tercep\
ted)h(the)h(v)o(ector.)k(The)14 b fg(VirtualPCRegisters)i fn(structure)37 296
y(con)o(tains)f(the)g(information)d(sho)o(wn)j(in)g(Figure)g(4.2.)196 356 y
1559 2 v 196 720 a 2 364 v 250 408 a(AX)50 b(=)g(Button)15 b(state:)453 464 y
(Bit)g(0)g(is)f(set)h(if)g(left)f(button)h(is)g(do)o(wn)453 521 y(Bit)g(1)g
(is)f(set)h(if)g(righ)o(t)f(button)h(is)g(do)o(wn)453 577 y(Bit)g(2)g(is)f
(set)h(if)g(middle)f(button)h(is)g(do)o(wn)250 634 y(SI)77 b(=)50 b(Num)o(b)q
(er)15 b(of)f(units)h(mo)o(v)o(ed)f(horizon)o(tally)f(since)j(last)e(callbac)
o(k)250 690 y(DI)67 b(=)50 b(Num)o(b)q(er)15 b(of)f(units)h(mo)o(v)o(ed)f(v)o
(ertically)f(since)j(last)e(callbac)o(k)1753 720 y 2 364 v 196 722 a 1559 2 v
472 798 a fi(Figure)i(4.2)p fn(:)k(V)l(alues)15 b(passed)h(b)o(y)f(mouse)f
(signal)g(v)o(ector)108 933 y(F)l(or)g(b)q(etter)g(mouse)g(resp)q(onsiv)o(ene\
ss,)g(MGR)g(automatically)d(switc)o(hes)j(from)e(the)j(ev)o(en)o(t-driv)o(en)
f(mo)q(de)37 1018 y(to)f(the)h(p)q(olling)e(mo)q(de)h(of)g(mouse-handling)g
(when)h(it)e(determines)h(that)g(the)g(mouse)g(is)g(mo)o(ving)e(frequen)o(tly)
37 1102 y(and)k(generating)f(a)h(high)f(rate)g(of)h(ev)o(en)o(ts.)k(In)c(p)q
(olling)f(mo)q(de,)g(MGR)g(runs)h(a)f(lo)q(op)h(that)f(rep)q(eatedly)h(reads)
37 1187 y(the)h(mouse)f(status)f(and)i(up)q(dates)g(the)g(screen,)g(instead)f
(of)g(w)o(aiting)f(for)h(the)h(adapter)f(to)g(signal)f(a)i(mouse)37 1272 y
(ev)o(en)o(t,)21 b(un)o(til)e(the)h(mouse)f(ev)o(en)o(t)g(rate)h(drops)f(and)
h(MGR)g(switc)o(hes)f(to)g(the)h(ev)o(en)o(t-driv)o(en)g(mo)q(de.)33 b(The)37
1356 y(mouse)17 b(status)g(ma)o(y)f(b)q(e)i(p)q(olled)f(b)o(y)h(calling)e(a)h
(16-bit)g(routine)g(pro)o(vided)g(b)o(y)h(the)g(mouse)e(driv)o(er.)26 b(T)l
(o)18 b(b)q(e)37 1441 y(more)c(precise,)g(b)o(y)h(executing)g(in)o(terrupt)e
(v)o(ector)h(0x33)g(with)g(register)g(AX)g(set)h(to)f(0xB,)g(the)h(programm)o
(er)37 1526 y(can)h(obtain)e(the)i(co)q(ordinates)e(of)h(the)h(mouse)e(in)h
(registers)f(CX)h(and)h(D)o(X.)e(The)i(programmer)c(can)j(obtain)37 1610 y
(the)d(status)e(of)h(the)g(mouse)f(buttons)h(\(in)f(register)g(AX\))h(b)o(y)g
(executing)g(in)o(terrupt)g(v)o(ector)f(0x33)g(with)h(register)37 1695 y(AX)
18 b(set)f(to)g(5)g(and)g(BX)h(set)f(to)f(7.)26 b(In)o(terrupt)17 b(v)o(ector)
g(0x33)f(is)h(alw)o(a)o(ys)f(connected)i(to)e(the)i(mouse)e(driv)o(er)37 1780
y(and)g(serv)o(es)f(as)g(the)g(mouse)f(programmi)o(ng)f(in)o(terface.)37 1960
y fd(4.3)70 b(Ethernet)22 b(Driv)n(er)37 2090 y fn(PC-Choices)11 b(w)o(orks)f
(with)g(pac)o(k)o(et)g(driv)o(ers[14)n(])h(to)f(pro)o(vide)g(Ethernet)h(net)o
(w)o(orking)e(services)i(to)f(application)37 2175 y(programs.)24 b(An)18 b
(adapter)f(w)o(as)f(written)h(to)f(allo)o(w)g(pac)o(k)o(et)h(driv)o(ers)f(to)
h(b)q(e)h(used)g(with)e(PC-Choices.)26 b(The)37 2259 y(adapter)13 b(pro)o(vid\
es)f(a)h(v)o(ector)f(\(with)g(signature)g(\\PDBUF)g(INT"\))h(that)f(should)h
(b)q(e)h(called)e(b)o(y)h(PC-Choices)37 2344 y(applications)20 b(to)g(set)g
(up)h(and)g(to)f(sh)o(ut)g(do)o(wn)h(the)g(pac)o(k)o(et)f(driv)o(er.)35 b(Mor\
e)20 b(imp)q(ortan)o(tly)l(,)f(the)i(adapter)37 2429 y(pro)o(vides)h(a)g(v)o
(ector)f(\(with)h(signature)f(\\PDBUF)g(READ)o(Y"\))h(that)f(should)i(b)q(e)f
(in)o(tercepted)h(in)f(order)37 2513 y(to)c(receiv)o(e)h(noti\014cation)e(of)
i(incoming)d(Ethernet)j(pac)o(k)o(ets.)30 b(The)18 b(main)g(purp)q(ose)h(of)f
(the)h(adapter)f(is)g(to)37 2598 y(bu\013er)j(all)e(incoming)g(pac)o(k)o(ets)
g(and)i(to)e(notify)h(PC-Choices)g(ab)q(out)g(the)g(pac)o(k)o(ets)g(through)g
(the)g(use)h(of)952 2760 y(87)g eop bop 37 42 a fn(a)22 b(in)o(tercepted)f fg
(VirtualPC)h fn(v)o(ector.)38 b(Since)21 b(the)h(adapter)f(do)q(es)h(not)f
(pro)o(vide)g(a)g(complete)f(net)o(w)o(orking)37 126 y(in)o(terface,)13 b(the)
g(application)f(program)f(m)o(ust)g(access)j(the)f(underlying)g(pac)o(k)o(et)
f(driv)o(er)h(for)f(other)h(functions,)37 211 y(suc)o(h)e(as)g(the)g(function\
s)f(for)g(sending)h(Ethernet)f(pac)o(k)o(ets)h(and)f(for)g(\014nding)h(out)g
(the)f(lo)q(cal)g(Ethernet)h(address.)108 296 y(The)17 b(follo)o(wing)e(funct\
ions)i(are)g(de\014ned)h(in)f(the)g(\\PDBUF)g(INT")g(routine.)25 b(F)l(unctio\
ns)16 b(are)h(selected)37 380 y(b)o(y)f(the)f(caller)f(b)o(y)h(passing)g(a)g
(function)g(co)q(de)h(in)f(register)f(AH)h(\(Figure)f(4.3\).)196 443 y 1559 2
v 196 1325 a 2 883 v 225 487 a(AH)h(=)h(2:)j(Begin)d(Access)339 580 y(P)o(ara\
meters:)464 661 y(DS:SI)50 b(=)g(Address)15 b(of)g(bu\013er)464 718 y(CX)97 b
(=)50 b(Bu\013er)15 b(size,)g(in)g(b)o(ytes)339 808 y(Return)g(v)m(alue:)464
902 y(AX)50 b(=)g(Handle)225 996 y(AH)15 b(=)h(3:)j(End)d(Access)g(\(no)f(par\
ameters)e(and)i(return)g(v)m(alues\))225 1108 y(AH)g(=)h(4:)j(Release)d(P)o
(ac)o(k)o(et)339 1202 y(P)o(arameters:)464 1296 y(DS:SI)50 b(=)g(Address)15 b
(of)g(pac)o(k)o(et)1753 1325 y 2 883 v 196 1327 a 1559 2 v 529 1404 a fi(Figu\
re)i(4.3)p fn(:)i(P)o(ac)o(k)o(et)c(driv)o(er)f(adapter)h(functions)108 1536 y
(T)l(o)f(receiv)o(e)h(Ethernet)f(pac)o(k)o(ets,)g(the)h(programmer)c(should)k
(\014rst)f(in)o(tercept)g(the)h(pac)o(k)o(et)f(ready)g(v)o(ector)37 1621 y
(\(\\PDBUF)k(READ)o(Y"\))f(and)i(in)o(v)o(ok)o(e)e(the)h(\\Begin)g(Access")g
(function)g(on)h(the)f(\\PDBUF)f(INT")i(v)o(ector.)37 1706 y(This)f(function)
g(exp)q(ects)g(the)g(programmer)d(to)i(supply)h(a)g(p)q(oin)o(ter)f(\(in)g
(registers)g(DS:SI\))h(to)f(a)h(bu\013er)g(in)37 1790 y(lo)o(w)e(memory)f(and)
i(to)f(sp)q(ecify)h(the)g(size)g(of)f(the)h(bu\013er)g(\(in)f(register)g(CX\)\
.)g(The)h(bu\013er)g(will)f(b)q(e)h(used)h(b)o(y)37 1875 y(the)g(adapter)e
(to)h(store)f(incoming)f(pac)o(k)o(ets.)25 b(F)l(or)16 b(safet)o(y)l(,)h(the)
g(programmer)d(should)j(ha)o(v)o(e)f(allo)q(cated)g(the)37 1960 y(lo)o(w)h
(memory)d(bu\013er)k(through)e(DOS.)i(The)f(\\Begin)g(Access")h(function)f
(returns)g(a)g(handle)g(that)g(will)f(b)q(e)37 2044 y(required)g(later)e(for)
h(calling)e(the)j(functions)f(in)g(the)g(pac)o(k)o(et)g(driv)o(er.)108 2129 y
(When)j(an)g(Ethernet)g(pac)o(k)o(et)f(arriv)o(es,)g(the)h(adapter)f(will)f
(pass)i(register)f(v)m(alues)g(to)h(the)f(in)o(tercepted)37 2214 y(v)o(ector)
d(to)g(indicate)f(the)i(size)f(and)g(lo)q(cation)g(of)f(the)i(pac)o(k)o(et)e
(\(Figure)h(4.4\).)k(After)c(pro)q(cessing)g(the)g(pac)o(k)o(et,)37 2298 y
(the)j(programmer)c(should)j(in)o(v)o(ok)o(e)g(the)g(\\Release)h(P)o(ac)o(k)o
(et")e(function)h(of)g(the)g(\\PDBUF)g(INT")g(v)o(ector)g(to)37 2383 y(deallo)
q(cate)f(the)g(pac)o(k)o(et)g(for)f(reuse.)108 2468 y(T)l(o)g(send)i(a)e(pac)
o(k)o(et,)g(the)g(programmer)e(should)i(call)g(the)h(pac)o(k)o(et)f(driv)o
(er)g(directly)l(.)19 b(The)c(pac)o(k)o(et)f(driv)o(er)37 2552 y(functions)19
b(are)f(accessed)i(through)e(the)h(v)o(ector)f(with)g(signature)g(\\PKT)g(DR)
-5 b(VR".)19 b(The)g(lo)q(cal)f(Ethernet)952 2760 y(88)g eop bop 196 2 a 1559
2 v 196 139 a 2 138 v 250 54 a fn(DS:SI)50 b(=)g(Address)16 b(of)f(pac)o(k)o
(et)250 110 y(CX)97 b(=)50 b(Length)16 b(of)f(pac)o(k)o(et)f(in)h(b)o(ytes)
1753 139 y 2 138 v 196 141 a 1559 2 v 472 218 a fi(Figure)h(4.4)p fn(:)k(V)l
(alues)15 b(passed)h(b)o(y)f(pac)o(k)o(et)g(ready)g(v)o(ector)37 352 y(addres\
s)20 b(ma)o(y)e(obtained)h(b)o(y)g(calling)g(the)g(pac)o(k)o(et)g(driv)o(er)g
(to)q(o.)32 b(Figure)19 b(4.5)f(describ)q(es)i(the)g(t)o(w)o(o)e(pac)o(k)o
(et)37 436 y(driv)o(er)d(functions.)196 488 y 1559 2 v 196 1346 a 2 859 v 225
532 a(AH)g(=)h(4:)j(Send)e(P)o(ac)o(k)o(et)339 626 y(P)o(arameters:)464 707 y
(DS:SI)50 b(=)g(Address)15 b(of)g(pac)o(k)o(et)464 763 y(CX)97 b(=)50 b(Lengt\
h)15 b(of)g(pac)o(k)o(et)g(in)g(b)o(ytes)339 853 y(Return)g(v)m(alue:)21 b
(Carry)14 b(\015ag)h(clear)f(if)h(call)f(w)o(as)h(successful)225 947 y(AH)g
(=)h(6:)j(Get)c(Address)339 1041 y(P)o(arameters:)464 1122 y(BX)103 b(=)50 b
(Handle)464 1178 y(ES:DI)f(=)h(Address)16 b(of)f(bu\013er)464 1235 y(CX)102 b
(=)50 b(Bu\013er)16 b(length)339 1325 y(Return)f(v)m(alue:)21 b(Carry)14 b
(\015ag)h(clear)f(if)h(call)f(w)o(as)h(successful)1753 1346 y 2 859 v 196 1348
a 1559 2 v 613 1425 a fi(Figure)h(4.5)p fn(:)k(P)o(ac)o(k)o(et)14 b(driv)o
(er)g(functions)108 1568 y(When)j(an)f(application)f(has)i(\014nished)g(using)
f(the)h(pac)o(k)o(et)f(driv)o(er,)f(it)h(should)h(call)e(the)i(\\End)f(Access\
")37 1653 y(function)d(of)g(the)f(\\PDBUF)h(INT")f(v)o(ector.)19 b(Up)q(on)13
b(returning)g(from)e(the)i(function,)f(the)h(pac)o(k)o(et)g(driv)o(er)f(will)
37 1738 y(ignore)j(all)f(incoming)g(pac)o(k)o(ets)g(un)o(til)g(\\Begin)h(Acce\
ss")h(is)f(called)f(again.)108 1822 y(The)k(implemen)o(tatio)o(n)d(of)j(the)g
(pac)o(k)o(et)f(driv)o(er)g(adapter)h(is)f(straigh)o(tforw)o(ard.)25 b(The)18
b(\\Begin)f(Access")37 1907 y(function)12 b(in)g(the)g(adapter)f(registers)g
(with)g(the)h(pac)o(k)o(et)f(driv)o(er)g(as)h(a)f(clien)o(t)g(and)h(passes)g
(a)g(callbac)o(k)f(function)37 1992 y(to)17 b(the)g(pac)o(k)o(et)g(driv)o(er.)
25 b(According)17 b(to)f(the)h(pac)o(k)o(et)g(driv)o(er)f(sp)q(eci\014cation,)
i(the)f(callbac)o(k)f(function)h(\(also)37 2076 y(kno)o(wn)d(as)f(the)g(recei\
v)o(er)h(function\))f(is)g(called)g(t)o(wice)f(whenev)o(er)i(a)f(pac)o(k)o
(et)g(arriv)o(es:)18 b(\014rst)13 b(to)g(request)g(bu\013er)37 2161 y(space)i
(for)f(storing)f(the)i(pac)o(k)o(et,)f(then)h(to)f(inform)e(the)j(clien)o(t)f
(that)f(the)i(pac)o(k)o(et)f(has)g(b)q(een)i(copied)f(in)o(to)e(the)37 2246 y
(bu\013er)j(space.)21 b(The)15 b(callbac)o(k)g(function)g(handles)h(the)f(\
\014rst)g(t)o(yp)q(e)h(of)f(callbac)o(k)f(b)o(y)i(allo)q(cating)d(some)h(spac\
e)37 2330 y(from)d(the)h(memory)e(bu\013er)i(sp)q(eci\014ed)h(b)o(y)f(the)g
(\\Begin)g(Access")g(function,)h(reusing)e(old)h(space)h(in)e(a)h(circular)37
2415 y(fashion)17 b(if)g(necessary)l(.)26 b(The)17 b(callbac)o(k)f(function)h
(handles)g(the)h(second)f(t)o(yp)q(e)g(of)g(callbac)o(k)f(b)o(y)h(generating)
37 2500 y(a)j(soft)o(w)o(are)f(in)o(terrupt)g(for)h(the)g(\\PDBUF)g(READ)o
(Y")g(v)o(ector.)34 b(The)20 b(\\End)h(Access")f(function)g(simply)37 2585 y
(deregisters)15 b(the)g(adapter)g(from)f(the)h(pac)o(k)o(et)f(driv)o(er,)h
(so)f(that)h(all)f(pac)o(k)o(ets)h(receiv)o(ed)g(will)f(b)q(e)i(ignored.)952
2760 y(89)g eop bop 37 42 a fd(4.4)70 b(Serial)24 b(P)n(ort)f(Driv)n(er)37 171
y fn(A)15 b(serial)d(p)q(ort)i(driv)o(er)f(exists)h(in)g(BIOS)h(to)e(pro)o
(vide)h(lo)o(w-lev)o(el)e(functions)i(to)f(send)i(and)f(receiv)o(e)g(data)f
(from)37 256 y(the)k(serial)e(p)q(orts[35)o(,)h(18)o(].)23 b(These)17 b(funct\
ions)f(deal)h(with)e(a)h(single)g(c)o(haracter)g(at)f(a)i(time.)k(F)l(or)16 b
(e\016ciency)l(,)37 341 y(the)k(PC-Choices)f(serial)g(p)q(ort)g(driv)o(er)g
(adapter)g(p)q(erforms)f(its)g(o)o(wn)h(bu\013ering)h(and)f(allo)o(ws)f(appli\
cation)37 425 y(programs)d(to)h(send)h(and)g(receiv)o(e)f(data)g(in)h(large)e
(v)m(ariable-size)h(blo)q(c)o(ks.)24 b(Unlik)o(e)16 b(the)h(mouse)e(and)i(pac)
o(k)o(et)37 510 y(driv)o(er)i(adapters,)h(the)g(serial)f(p)q(ort)g(driv)o(er)
g(adapter)g(presen)o(ts)h(a)f(complete)f(in)o(terface)h(to)g(applications.)37
595 y(There)d(is)f(no)g(need)h(for)e(applications)g(to)h(access)g(the)g(BIOS)
i(functions)e(directly)l(.)108 679 y(Just)k(lik)o(e)f(the)h(pac)o(k)o(et)f
(driv)o(er)g(adapter,)h(the)g(serial)f(p)q(ort)h(driv)o(er)f(adapter)g(exp)q
(orts)h(a)f(v)o(ector)g(\(with)37 764 y(signature)13 b(\\SP)f(DR)-5 b(VR)p fm
(n)p fn(",)14 b fm(n)f fn(b)q(eing)g(1)g(or)f(2\))g(that)g(ma)o(y)f(b)q(e)j
(called)e(b)o(y)h(application)f(programs)e(to)j(p)q(erform)37 849 y(serial)18
b(p)q(ort)g(op)q(erations.)28 b(Tw)o(o)18 b(v)o(ectors)f(\(with)h(signatures)
f(\\SP)i(RECV)f(READ)o(Y)p fm(n)p fn(")h(and)f(\\SP)g(SEND)37 933 y(READ)o
(Y)p fm(n)p fn("\))13 b(ma)o(y)e(b)q(e)i(in)o(tercepted)g(b)o(y)g(application)
e(programs)g(to)h(determine)g(when)h(a)g(blo)q(c)o(k)f(of)g(data)h(has)37 1018
y(b)q(een)18 b(receiv)o(ed)f(or)g(sen)o(t.)24 b(The)17 b(signature)f(for)h
(all)e(these)j(v)o(ectors)e(end)h(in)g(the)g(digits)e(1)i(or)f(2,)h(to)f(indi\
cate)37 1103 y(the)g(serial)e(p)q(ort)h(to)f(whic)o(h)h(the)h(v)o(ector)e(b)q
(elongs.)108 1187 y(The)j(\\SP)f(DR)-5 b(VR)p fm(n)p fn(")18 b(routine)e(pro)
o(vides)g(the)h(functions)f(de\014ned)i(in)e(Figure)g(4.6.)23 b(The)17 b(divi\
sor)f(argu-)37 1272 y(men)o(t)i(sp)q(eci\014es)i(the)f(data)g(transmission)d
(rate)j(and)g(the)g(line)g(con)o(trol)e(argumen)o(t)h(selects)h(v)m(arious)f
(data)37 1357 y(transmission)e(parameters.)29 b(The)19 b(v)m(alid)f(divisor)g
(v)m(alues)g(and)h(line)f(con)o(trol)g(settings)f(ma)o(y)g(b)q(e)j(found)f
(in)37 1441 y([35,)14 b(18].)108 1526 y(Before)h(using)g(the)g(serial)f(p)q
(ort,)g(the)h(programmer)d(should)j(call)f(the)i(\\Begin)e(Access")i(function\
.)j(The)37 1611 y(function)g(requires)f(the)h(programmer)c(to)j(sp)q(ecify)h
(a)f(memory)e(bu\013er)j(in)f(lo)o(w)f(memory)f(\(previously)i(al-)37 1695 y
(lo)q(cated)h(through)g(DOS\))g(that)f(will)g(b)q(e)h(used)h(for)e(storing)g
(c)o(haracters)g(receiv)o(ed)h(from)e(the)i(serial)f(p)q(ort.)37 1780 y(The)e
(programmer)11 b(also)j(sp)q(eci\014es)i(the)f(sp)q(eed)h(and)g(other)e(param\
eters)f(of)i(the)g(data)f(transmission)f(in)h(the)37 1865 y(argumen)o(ts)g
(for)g(the)i(function.)108 1950 y(Because)f(the)e(serial)g(p)q(ort)h(ma)o(y)e
(receiv)o(e)h(data)h(immediat)o(ely)d(after)i(\\Begin)h(Access")g(has)f(b)q
(een)i(called,)37 2034 y(the)f(programmer)c(should)j(ha)o(v)o(e)g(in)o(tercep\
ted)h(the)f(\\SP)h(RECV)f(READ)o(Y")g(v)o(ector)g(b)q(efore)h(calling)e(\\Beg\
in)37 2119 y(Access".)21 b(The)15 b(\\SP)g(SEND)g(READ)o(Y")g(v)o(ector)f(sho\
uld)h(b)q(e)h(in)o(tercepted)f(once,)g(b)q(efore)g(an)o(y)g(data)f(is)h(sen)o
(t.)37 2204 y(T)l(o)e(send)h(a)e(blo)q(c)o(k)h(of)f(data,)h(the)g(programmer)
d(calls)i(the)h(\\Send)g(Data")f(function)g(and)i(passes)e(the)h(address)37
2288 y(and)19 b(size)g(of)f(the)h(blo)q(c)o(k)f(as)h(the)f(argumen)o(ts.)29 b
(The)19 b(function)f(will)f(return)i(righ)o(t)e(a)o(w)o(a)o(y)l(,)h(ev)o(en)h
(when)g(the)37 2373 y(data)13 b(has)f(not)h(b)q(een)h(sen)o(t.)k(When)c(the)e
(data)h(has)f(all)g(b)q(een)i(sen)o(t,)f(the)f(adapter)h(will)e(signal)h(the)
h(\\SP)f(SEND)37 2458 y(READ)o(Y")i(v)o(ector.)k(The)c(programmer)c(m)o(ust)i
(b)q(e)i(careful)f(not)g(to)g(call)f(the)i(\\Send)g(Data")e(function)h(b)q
(efore)37 2542 y(\\SP)j(SEND)f(READ)o(Y")g(has)g(b)q(een)h(signalled.)952 2760
y(90)g eop bop 196 2 a 1559 2 v 196 1139 a 2 1138 v 225 45 a fn(AH)15 b(=)h
(2:)j(Begin)d(Access)339 139 y(P)o(arameters:)464 220 y(DS:SI)50 b(=)g(Addres\
s)15 b(of)g(receiv)o(e)g(bu\013er)464 276 y(CX)97 b(=)50 b(Receiv)o(e)16 b
(bu\013er)f(size)g(in)g(b)o(ytes)464 333 y(ES)108 b(=)50 b(Divisor)464 389 y
(DI)113 b(=)50 b(Line)15 b(con)o(trol)339 479 y(Return)g(v)m(alues:)464 560 y
(DS:DS)63 b(=)51 b(Address)15 b(of)g fg(nextGet)464 617 y fn(ES:DI)76 b(=)51 b
(Address)15 b(of)g fg(nextPut)464 673 y fn(AX:BX)49 b(=)i(Address)15 b(of)g fg
(nextGetLo)q(ck)225 766 y fn(AH)g(=)h(3:)j(End)d(Access)g(\(no)f(parameters)e
(and)i(return)g(v)m(alues\))225 879 y(AH)g(=)h(4:)j(Send)e(Data)339 973 y(P)o
(arameters:)464 1054 y(DS:SI)50 b(=)g(Address)15 b(of)g(data)464 1110 y(CX)97
b(=)50 b(Size)15 b(of)g(data)g(in)g(b)o(ytes)1753 1139 y 2 1138 v 196 1141 a
1559 2 v 490 1218 a fi(Figure)h(4.6)p fn(:)k(Serial)14 b(p)q(ort)h(driv)o(er)
g(adapter)f(functions)108 1352 y fg(nextGet)20 b fn(and)e fg(nextPut)h fn(are)
e(32-bit)g(in)o(teger)g(o\013sets)g(in)o(to)f(the)i(receiving)f(bu\013er)h
(that)f(indicate)g(what)37 1436 y(data)12 b(should)g(b)q(e)h(read)f(next)g
(b)o(y)g(the)g(application)f(program)f(and)i(where)h(incoming)d(data)h(should)
h(b)q(e)h(placed)37 1521 y(next)h(b)o(y)g(the)g(adapter.)19 b fg(nextGetLo)q
(ck)c fn(is)f(a)f(16-bit)g(test-and-set)g(lo)q(c)o(k)h(for)f(sync)o(hronizing)
g(the)h(application)37 1606 y(program)g(and)h(the)g(adapter)g(while)g(receivi\
ng)g(data.)108 1690 y(The)h(programmer)d(ma)o(y)h(turn)i(o\013)g(the)g(serial)
f(p)q(ort)g(driv)o(er)h(b)o(y)g(calling)e(the)j(\\End)f(Access")g(function.)
37 1775 y(This)f(will)f(put)h(the)h(driv)o(er)e(in)o(to)h(a)f(state)h(that)f
(ignores)h(all)f(c)o(haracters)g(coming)g(from)f(the)i(serial)g(p)q(ort.)952
2760 y(91)g eop bop 37 405 a fc(Chapter)35 b(5)37 675 y fb(Libraries)1533 897
y fj(Satisfy)14 b(y)o(our)h(reason)1420 954 y(It)g(will)f(o)q(ccup)o(y)i(y)o
(our)e(mind)1359 1010 y(Ev)o(en)h(when)h(y)o(ou're)e(dreaming)1772 1066 y(Bel\
iev)o(e)1438 1123 y(|)h(\\Occup)o(y)h(y)o(our)f(mind")108 1208 y fn(Libraries)
21 b(are)h(pro)o(vided)f(mainly)f(for)h(the)h(con)o(v)o(enience)g(of)f(the)h
(application)e(programmer.)37 b(PC-)37 1292 y(Choices)11 b(libraries)e(con)o
(tain)g(some)h(high-lev)o(el)f(system)h(functions)g(that)g(hide)g(the)h(lo)o
(w-lev)o(el)e(k)o(ernel)h(in)o(terface)37 1377 y(from)k(the)i(application)e
(programmer.)j(Utilit)o(y)d(functions)h(are)g(pro)o(vided)g(b)o(y)h(the)f(lib\
raries)f(as)h(w)o(ell.)20 b(This)37 1462 y(c)o(hapter)12 b(describ)q(es)f(the)
h(general)e(purp)q(ose)i(library)l(,)f(the)g(system)f(in)o(terface)h(library)
l(,)f(the)i(\014le)f(system)f(library)37 1546 y(and)16 b(the)f(application)f
(dispatc)o(her)h(library)l(.)37 1726 y fd(5.1)70 b(General)23 b(Purp)r(ose)h
(Library)37 1855 y fn(The)19 b(general)f(purp)q(ose)h(library)e(con)o(tains)h
(utilit)o(y)e(functions)i(and)h(classes)f(that)f(ma)o(y)g(b)q(e)i(used)g(b)o
(y)f(b)q(oth)37 1940 y(k)o(ernel)d(and)h(application)e(co)q(de.)20 b(The)c
(functions)f(and)g(classes)g(are)g(divided)g(in)o(to)f(these)h(categories:)
106 2067 y fl(\017)22 b fn(General)11 b(purp)q(ose)i(abstract)d(data)h(t)o
(yp)q(es:)18 b(Abstract)11 b(data)g(t)o(yp)q(es)h(lik)o(e)f(bit)g(arra)o(ys,)
g(lists,)f(hash)i(tables)151 2151 y(and)k(asso)q(ciation)d(tables)i(are)g(sup\
plied)g(b)o(y)g(the)g(library)l(.)106 2271 y fl(\017)22 b fn(String)16 b(mani\
pulation,)f(con)o(v)o(ersion)h(functions)h(and)g(formatting)d(classes:)23 b
(The)17 b(string)f(manipula-)151 2356 y(tion)11 b(functions)f(are)h fg(strlen\
\(\))p fn(,)h fg(strcp)o(y\(\))p fn(,)g fg(strncp)o(y\(\))p fn(,)g fg(strcmp\
\(\))p fn(,)f fg(strncmp\(\))p fn(,)g fg(index\(\))p fn(.)19 b(These)12 b(fun\
ctions)151 2441 y(ha)o(v)o(e)g(the)h(same)f(b)q(eha)o(viour)g(as)h(their)f
(Unix)h(coun)o(terparts;)f(please)h(refer)f(to)g(a)h(Unix)f(man)o(ual)f(for)h
(the)151 2525 y(details.)18 b(The)c(Unix-compatible)e(string)g(con)o(v)o(ersi\
on)h(functions)g(are)g fg(atoi\(\))p fn(,)g fg(atof\(\))p fn(,)g fg(atol\(\))
p fn(,)f fg(strtol\(\))p fn(,)151 2610 y fg(strtoul\(\))p fn(.)952 2760 y(92)
g eop bop 151 42 a fn(The)16 b(string)e(formatting)e(classes)j(are)g fg(Strin\
gInputStream)h fn(and)g fg(StringOutputStream)p fn(.)22 b(Figures)14 b(5.1)
151 126 y(and)i(5.2)e(illustrate)f(the)i(use)h(of)f fg(StringInputStreams)h fn
(and)g fg(StringOutputStreams)p fn(.)106 248 y fl(\017)22 b fn(Pro)q(cessor-s\
p)q(eci\014c)e(system)f(functions:)28 b(These)21 b(include)f(assem)o(bly-co)q
(de)e(routines)i fg(Cop)o(yBlo)q(ck\(\))151 333 y fn(and)c fg(ZeroBlo)q(ck\(\
\))f fn(for)g(cop)o(ying)g(and)h(zeroing)f(memory)e(bu\013ers)j(quic)o(kly)l
(.)21 b(Also)15 b(included)h(are)g fg(test-)151 418 y(AndSet\(\))g fn(and)e fg
(testAndRese)q(t\(\))i fn(for)e(testing)f(and)h(setting)f(a)g(memory)f(lo)q
(cation)h(atomicall)o(y)l(.)k(These)151 502 y(functions)h(are)g(t)o(ypically)
e(used)j(for)f(lo)q(c)o(k-free)f(pro)q(cess)i(sync)o(hronization.)27 b(The)19
b(other)f(pro)q(cessor-)151 587 y(sp)q(eci\014c)j(routines)e(are)g fg(setjmp\
\(\))h fn(and)g fg(long)q(jmp\(\))e fn(for)h(branc)o(hing)h(out)f(of)g(nested)
h(function)g(calls;)151 672 y(please)15 b(refer)g(to)g(a)g(Unix)g(man)o(ual)e
(for)i(the)g(usage)g(of)g(these)g(functions.)196 782 y 1559 2 v 196 1473 a 2
692 v 316 828 a fk(//)46 b(The)22 b(c)n(o)n(de)h(her)n(e)f(uses)g(a)h(StringI\
nputStr)n(e)n(am)f(to)h(br)n(e)n(ak)f(down)316 885 y(//)46 b(a)23 b(string)f
(into)g(c)n(omp)n(onents.)45 b(First,)22 b(assume)g(that)i(the)316 941 y(//)
46 b(string)22 b(s)g(is)g(of)h(the)g(form)g("inte)n(ger)g(char)n(acter)316 998
y(//)46 b(inte)n(ger",)22 b(with)h(one)g(or)g(mor)n(e)g(whitesp)n(ac)n(e)f
(char)n(acters)316 1054 y(//)46 b(b)n(etwe)n(en)21 b(the)i(c)n(omp)n(onents.)
45 b(We)23 b(cr)n(e)n(ate)f(a)h(StringInputStr)n(e)n(am)316 1111 y(//)46 b
(for)23 b(the)g(string)f(for)h(p)n(arsing)f(later.)316 1167 y fg(StringInputS\
tream)16 b(sis)g(\(s\);)316 1224 y fi(in)o(t)e fg(i,)h(j;)316 1280 y fi(c)o
(har)g fg(c;)316 1336 y fk(//)46 b(R)n(e)n(ad)22 b(the)h(\014rst)g(inte)n(ger)
e(fr)n(om)i(s)g(into)f(i,)h(the)316 1393 y(//)46 b(char)n(acter)23 b(into)g
(c,)f(and)h(the)g(se)n(c)n(ond)e(inte)n(ger)h(into)h(j.)316 1449 y fg(sis.fo)
o(rmattedRead)16 b(\()p fh("%d)23 b(%c)g(%d")p fg(,)15 b(&i,)g(&c,)g(&j\);)
1753 1473 y 2 692 v 196 1475 a 1559 2 v 432 1552 a fi(Figure)h(5.1)p fn(:)k
(P)o(arsing)14 b(a)h(string)f(with)g(a)h fg(StringInputStream)196 1662 y 1559
2 v 196 2354 a 2 692 v 316 1709 a fk(//)46 b(The)22 b(c)n(o)n(de)h(her)n(e)f
(forms)h(a)g(textual)g(string)f(with)h(the)g(form)316 1765 y(//)46 b("inte)n
(ger)22 b(char)n(acter)h(inte)n(ger".)45 b(Assume)22 b(that)i(variables)316
1822 y(//)46 b(i)22 b(and)h(j)g(c)n(ontain)f(the)h(inte)n(ger)f(values)g(to)h
(app)n(e)n(ar)g(in)f(the)316 1878 y(//)46 b(string,)22 b(and)g(variable)h(c)g
(c)n(ontains)e(the)i(char)n(acter)h(to)316 1935 y(//)46 b(app)n(e)n(ar)23 b
(in)f(the)h(string.)316 1991 y fg(StringOutputSt)q(ream)16 b(sos;)316 2047 y
(sos.fo)o(rmattedW)o(rite)e(\()p fh("%d)23 b(%c)h(%d")p fg(,)14 b(i,)h(c,)g
(j\);)316 2104 y fi(c)o(har)g fl(\003)p fg(s)g(=)h(sos.str)f(\(\);)316 2160 y
fk(//)46 b(Now)23 b(the)g(variable)f(s)h(p)n(oints)f(to)h(the)g(forme)n(d)g
(string.)316 2217 y(//)46 b(The)22 b(pr)n(o)n(gr)n(ammer)h(must)g(c)n(opy)g
(s)f(into)h(static)g(or)g(he)n(ap)316 2273 y(//)46 b(sp)n(ac)n(e)22 b(if)g
(s)h(is)f(to)h(b)n(e)f(use)n(d)h(after)g(sos)f(has)h(gone)f(out)316 2330 y
(//)46 b(of)23 b(sc)n(op)n(e.)1753 2354 y 2 692 v 196 2356 a 1559 2 v 376 2432
a fi(Figure)16 b(5.2)p fn(:)k(F)l(ormatting)12 b(a)j(string)f(with)h(a)g fg
(StringOutputStream)952 2760 y fn(93)g eop bop 37 42 a fd(5.2)70 b(System)21 b
(In)n(terface)h(Library)37 171 y fn(The)12 b(system)e(in)o(terface)g(library)
g(con)o(tains)g(system)g(functions)h(and)g(classes)g(that)f(are)h(almost)e
(nev)o(er)i(in)o(v)o(ok)o(ed)37 256 y(directly)i(b)o(y)g(the)h(application)d
(programmer.)16 b(Also)d(included)h(in)f(the)g(library)f(are)h(routines)g(tha\
t)f(initialize)37 341 y(the)h(v)m(arious)f(global)g(ob)s(jects)g(that)f(mak)o
(e)h(up)h(the)f(the)h(PC-Choices)f(application)g(programm)o(ing)e(in)o(terfac\
e.)37 425 y(Essen)o(tially)l(,)i(this)h(library)f(pro)o(vides)h(application-l\
ev)o(el)f(functionalit)o(y)f(that)i(is)g(necessary)g(for)g(application)37 510
y(execution,)h(functionalit)o(y)e(that)h(ma)o(y)e(not)j(b)q(e)g(obtained)f
(con)o(v)o(enien)o(tly)g(b)o(y)g(directly)g(in)o(v)o(oking)f(the)i(system)37
595 y(ob)s(jects)h(that)g(ha)o(v)o(e)f(b)q(een)j(exp)q(orted)e(b)o(y)g(the)h
(k)o(ernel)f(to)f(application)g(programs.)108 679 y(More)h(precisely)l(,)f
(the)i(system)d(in)o(terface)i(library)f(ful\014lls)g(the)i(follo)o(wing)c
(functions:)106 806 y fl(\017)22 b fn(It)14 b(pro)o(vides)g(a)f(heap)i(allo)q
(cator)d(that)h(is)h(required)g(b)o(y)g(C++)g(programs)e(to)h(allo)q(cate)g
(and)h(deallo)q(cate)151 891 y(ob)s(jects)h(and)g(data)g(structures)f(dynamic\
ally)l(.)106 1010 y fl(\017)22 b fn(It)16 b(implemen)o(ts)c(the)k fg(Standa)o
(rdInput)h fn(ob)s(ject)e(that)g(allo)o(ws)e(application)h(programs)g(to)g
(read)i(c)o(harac-)151 1095 y(ters)f(from)e(the)j(console)e(k)o(eyb)q(oard.)
106 1215 y fl(\017)22 b fn(It)15 b(supp)q(orts)g(the)g(use)g(of)f(terminal)f
(redirection.)19 b(This)14 b(means)g(that)g(the)h fg(Standa)o(rdInput)i fn
(and)e fg(Stan-)151 1299 y(da)o(rdOutput)j fn(of)d(an)g(application)f(program)
f(ma)o(y)g(b)q(e)j(redirected)g(to)e(other)h(programs.)106 1419 y fl(\017)22 b
fn(It)12 b(initializes)f(global)g(ob)s(jects,)h(suc)o(h)g(as)g fg(Standa)o
(rdInput)p fn(,)j fg(Standa)o(rdOutpu)q(t)g fn(and)e(the)f(heap)h(allo)q(cato\
r.)37 1569 y ff(5.2.1)56 b(Heap)18 b(allo)r(cator)37 1683 y fn(The)h fg(new)h
fn(and)f fg(delete)h fn(op)q(erators)d(are)i(used)g(b)o(y)f(C++)i(programs)c
(to)i(allo)q(cate)f(and)i(deallo)q(cate)f(ob)s(jects)37 1768 y(dynamically)l
(.)24 b(In)18 b(C++)g(terminology)l(,)c(the)k(ob)s(jects)e(are)h(said)g(to)f
(b)q(e)i(allo)q(cated)e(or)h(deallo)q(cated)f(from)g(a)37 1852 y(sp)q(ecial)i
(region)e(of)h(memory)e(called)h(the)i(heap.)26 b(The)18 b(op)q(erating)e(sys\
tem)g(is)h(resp)q(onsible)g(for)g(setting)f(up)37 1937 y(the)h(heap)g(and)f
(rede\014ning)h(these)g(op)q(erators)e(to)h(p)q(erform)f(allo)q(cation)f(and)
j(deallo)q(cation)e(from)g(the)h(heap)37 2022 y(\(Figure)f(5.3\).)108 2106 y
(The)f(system)d(in)o(terface)i(library)f(in)h(PC-Choices)g(implemen)o(ts)e
(the)i(heap)h(with)e(a)h(large)g(arra)o(y)f(of)h(b)o(ytes)37 2191 y(named)i 14
2 v 16 w 14 2 v 14 w fg(new)s 14 2 v 14 w(dataArea)p fn(.)489 2175 y fr(1)528
2191 y fn(The)e(size)f(of)g(the)h(arra)o(y)e(is)h(presen)o(tly)g(131072)f(b)o
(ytes.)1444 2175 y fr(2)1482 2191 y fn(The)i(arra)o(y)e(is)h(\014xed)h(and)37
2276 y(resides)j(in)g(the)g(BSS)g(section)g(of)f(the)h(application)e(program.)
20 b(This)15 b(means)g(that)g(the)h(heap)g(cannot)g(gro)o(w)37 2360 y(when)e
(its)e(space)g(is)h(exhausted,)g(con)o(trary)e(to)h(the)h(notion)f(of)g(expan\
dable)i(heaps)f(emplo)o(y)o(ed)e(in)h(Unix.)19 b(The)37 2445 y(heap)d(is)f
(managed)f(b)o(y)h(an)g fg(Allo)q(cato)o(r)g fn(ob)s(ject,)f(whic)o(h)i(w)o
(e)e(shall)h(discuss)g(no)o(w.)37 2522 y 750 2 v 89 2548 a fs(1)109 2564 y 12
2 v 14 w 12 2 v 11 w fa(new)r 12 2 v 12 w(dataArea)f fp(is)f(de\014ned)h(in)f
fa(Includes/Lib)o(ra)o(ries/SystemInterface/)r 12 2 v 11 w(new)r 12 2 v 12 w
(allo)q(cato)o(r.h)p fp(.)89 2594 y fs(2)107 2610 y fp(The)g(heap)g(size)g
(is)g(de\014ned)h(in)f fa(Lib)o(ra)o(ries/SystemInterface/P)o(o)o(rtable/)r 12
2 v 12 w(new)r 12 2 v 12 w(allo)q(cato)o(r.cc)p fp(.)952 2760 y fn(94)g eop
bop 196 2 a 1559 2 v 196 501 a 2 500 v 225 48 a fi(v)o(oid)14 b fl(\003)p fi
(op)q(erator)h(new)g fg(\()p fi(long)g fg(size\))339 154 y fn(Allo)q(cate)j
(a)h(c)o(h)o(unk)h(of)f(memory)e(of)i(the)g(sp)q(eci\014ed)h(size)g(and)f(ret\
urn)h(a)339 211 y(p)q(oin)o(ter)14 b(to)h(the)g(memory)l(.)225 317 y fi(v)o
(oid)f(op)q(erator)i(delete)f fg(\()p fi(v)o(oid)e fl(\003)p fg(ptr\))339 423
y fn(Deallo)q(cate)k(the)i(c)o(h)o(unk)h(of)e(memory)f(p)q(oin)o(ted)i(b)o
(y)g fg(ptr)p fn(.)32 b(The)19 b(memory)339 480 y(m)o(ust)13 b(ha)o(v)o(e)i
(b)q(een)h(previously)f(allo)q(cated)f(through)h(the)g fg(new)h fn(op)q(erato\
r.)1753 501 y 2 500 v 196 503 a 1559 2 v 372 580 a fi(Figure)g(5.3)p fn(:)k
(C++)c(op)q(erators)e(for)g(dynamic)g(memory)f(allo)q(cation)108 713 y(An)j fg
(Allo)q(cato)o(r)f fn(is)g(an)h(abstract)e(data)h(t)o(yp)q(e)g(that)g(allo)o
(ws)f(the)h(programmer)d(to)j(allo)q(cate)f(or)h(deallo)q(cate)37 798 y(c)o
(h)o(unks)k(of)e(memory)f(\(via)h(the)h fg(allo)q(cate\(\))f fn(and)i fg(free\
\(\))e fn(metho)q(ds\).)27 b(The)18 b fg(Allo)q(cato)o(r)g fn(class)f(is)h
(an)g(abstract)37 883 y(base)g(class)f(that)f(de\014nes)j(the)e fg(Allo)q(cat\
o)o(r)g fn(in)o(terface)f(and)i(do)q(es)f(not)g(con)o(tain)g(an)o(y)g(impleme\
n)o(tat)o(ion.)23 b(The)37 968 y(implemen)o(tation)10 b(of)i(an)h fg(Allo)q
(cato)o(r)g fn(b)q(elongs)f(to)h(its)f(sub)q(classes,)h(suc)o(h)g(as)g fg(Buc\
k)o(etAllo)q(cato)o(r)p fn(.)20 b(A)13 b fg(Buck)o(etAllo-)37 1052 y(cato)o
(r)i fn(allo)q(cates)f(and)i(deallo)q(cates)e(memory)f(from)g(a)i(\014xed-siz\
e)h(b)o(yte)f(arra)o(y)l(.)k(The)d(\\buc)o(k)o(et")f(in)g(the)g(class)37 1137
y(name)d(refers)g(to)g(an)g(arra)o(y)g(of)g(p)q(oin)o(ters)g(in)g(eac)o(h)h fg
(Buck)o(etAllo)q(cato)o(r)p fn(.)1192 1120 y fr(3)1231 1137 y fn(There)g(are)
f(32)g(en)o(tries)g(in)g(the)h(arra)o(y)e(of)37 1222 y(p)q(oin)o(ters)i(and)g
(eac)o(h)g(en)o(try)f(p)q(oin)o(ts)h(to)f(a)g(link)o(ed-list)g(of)g(memory)f
(c)o(h)o(unks)i(of)f(a)h(sp)q(eci\014c)h(size.)19 b(F)l(or)12 b(example,)37
1306 y(en)o(try)17 b fm(n)h fn(in)f(the)g(arra)o(y)f(p)q(oin)o(ts)g(to)h(a)g
(link)o(ed-list)f(of)g(memory)f(c)o(h)o(unks)i(eac)o(h)h(of)e(size)h(2)1559
1290 y fq(n)1600 1306 y fn(b)o(ytes)g(\(although)37 1391 y(for)h fm(n)f fn
(=)i(0)e(or)h(1,)g(the)g(c)o(h)o(unks)g(are)f(of)h(size)g(4)f(b)o(ytes\).)28 b
(These)18 b(memory)e(c)o(h)o(unks)i(are)f(carv)o(ed)h(out)g(of)f(the)37 1476 y
(\014xed-size)i(b)o(yte)e(arra)o(y)f(on)i(demand,)f(and)g(to)g(amortize)f(the)
h(allo)q(cation)f(dela)o(y)l(,)h(the)h(c)o(h)o(unks)f(are)h(carv)o(ed)37 1560
y(out)g(one)g(page)g(at)f(a)h(time.)26 b(The)18 b fg(allo)q(cate\(\))f fn(met\
ho)q(d)h(simply)e(returns)h(a)h(c)o(h)o(unk)g(from)e(the)i(appropriate)37 1645
y(list,)e(carving)h(out)f(additional)f(c)o(h)o(unks)j(if)e(necessary)l(.)26 b
(The)17 b fg(deallo)q(cate\(\))g fn(metho)q(d)f(adds)h(a)g(c)o(h)o(unk)g(to)f
(the)37 1730 y(appropriate)f(list.)108 1814 y(The)c fg(Buck)o(etAllo)q(cato)o
(r)h fn(class)f(also)f(de\014nes)i(the)f(metho)q(d)g fg(enableMultiPro)q(cess\
ing\(\))p fn(.)20 b(F)l(or)10 b(e\016ciency)l(,)i(the)37 1899 y fg(Buck)o(etA\
llo)q(cato)o(r)j fn(data)d(structures)h(are)g(not)g(lo)q(c)o(k)o(ed)g(during)
h(accesses.)19 b(If)14 b(lo)q(c)o(king)e(is)h(required,)g(when)h(sev-)37 1984
y(eral)g fg(Pro)q(cesses)h fn(will)d(b)q(e)j(using)e(the)h(same)e fg(Allo)q
(cato)o(r)i fn(for)f(instance,)h(the)g fg(enableMultiPro)q(cessing\(\))h fn
(metho)q(d)37 2068 y(should)f(b)q(e)h(called)f(once,)g(at)f(the)h(b)q(eginnin\
g)g(of)g(the)g(program,)e(to)h(turn)h(on)g(the)g(lo)q(c)o(king.)k fg(Buck)o
(etAllo)q(cato)o(r)37 2153 y fn(has)j(a)f(sub)q(class)g fg(StaticAllo)q(cato)
o(r)h fn(that)f(is)g(instan)o(tiated)f(during)h(application)f(startup)h(to)f
(manage)g(the)37 2238 y(heap.)37 2319 y 750 2 v 89 2346 a fs(3)107 2362 y fp
(The)13 b(arra)o(y)g(of)g(p)q(oin)o(ters)g(is)g(k)o(ept)g(in)g(the)g(mem)o
(b)q(er)e(v)n(ariable)j fa(Buck)o(etAllo)q(cato)o(r::)r 12 2 v 11 w(buck)o
(etT)m(oP)o(age)p fp(.)952 2760 y fn(95)g eop bop 37 42 a ff(5.2.2)56 b(Conso\
le)19 b(input)h(and)f(output)37 156 y fn(Console)14 b(output)g(is)g(facilitat\
ed)f(b)o(y)h(the)h fg(PCConsole)g fn(ob)s(ject)e(that)h(is)g(exp)q(orted)h
(to)f(application)f(programs)37 240 y(via)j(the)h fg(Standa)o(rdNameServer)q
fn(.)22 b(The)17 b fg(Standa)o(rdOutput)j fn(v)m(ariable)c(is)g(set)g(\(condi\
tionally\))e(to)h(this)h(ob)s(ject)37 325 y(during)g(application)d(startup.)
108 410 y(Console)f(input)g(is)g(handled)h(di\013eren)o(tly)f(b)q(ecause)h
(the)g(PC-Choices)f(k)o(ernel)g(do)q(es)h(not)f(pro)o(vide)g(console)37 494 y
(input)17 b(services)g(directly)l(.)25 b(Console)16 b(input)h(is)f(implemen)o
(ted)f(with)h(the)h fg(PCConsoleInputStream)h fn(class)f(in)37 579 y(the)g
(system)f(in)o(terface)g(library)l(.)24 b(This)16 b(is)h(a)f(sub)q(class)h
(of)f fg(InputStream)i fn(that)e(de\014nes)i(the)f fg(read\(\))f fn(metho)q
(d)37 664 y(to)h(read)g(c)o(haracters)f(from)g(the)h(PC)g(k)o(eyb)q(oard)g
(\(Figure)f(5.4\).)24 b(During)17 b(application)f(startup,)g(the)h fg(Stan-)
37 748 y(da)o(rdInput)k fn(v)m(ariable)d(is)g(\(conditionally\))f(initialized)
g(with)h(an)h(instance)f(of)g fg(PCConsoleInputStream)p fn(.)32 b(A)37 833 y
fg(PCConsoleInputStream)17 b fn(reads)e(the)g(k)o(eyb)q(oard)g(b)o(y)h(callin\
g)e(the)h(BIOS)h(k)o(eyb)q(oard)f(services.)196 893 y 1559 2 v 196 1350 a 2
457 v 225 940 a fi(in)o(t)g fg(PCConsoleInputStream)h(::)k(read)15 b(\()p fi
(c)o(har)f fl(\003)p fg(bu\013er,)h fi(in)o(t)g fg(count\))339 1046 y fn(Read)
h fg(count)i fn(c)o(haracters)d(from)g(the)h(k)o(eyb)q(oard)g(and)h(write)e
(the)i(c)o(harac-)339 1103 y(ters)h(in)o(to)f fg(bu\013er.)29 b(bu\013er)19 b
fn(m)o(ust)e(b)q(e)h(big)g(enough)h(to)f(hold)g fg(count)h fn(c)o(har-)339
1159 y(acters.)j(If)17 b(a)f(newline)g(is)g(encoun)o(tered)h(b)q(efore)g fg
(count)g fn(c)o(haracters)f(ha)o(v)o(e)339 1215 y(b)q(een)h(read,)e(cop)o(y)h
(the)g(newline)g(in)o(to)f fg(bu\013er)h fn(and)g(return)g(immediately)l(.)
339 1272 y(In)e(either)g(case,)f(the)h(return)g(v)m(alue)g(is)f(the)h(n)o(um)
o(b)q(er)f(of)g(c)o(haracters)g(actu-)339 1328 y(ally)h(written)g(to)h fg(bu\
\013er)p fn(.)1753 1350 y 2 457 v 196 1352 a 1559 2 v 459 1429 a fi(Figure)h
(5.4)p fn(:)k(Metho)q(d)15 b(of)g(class)g fg(PCConsoleInputStream)37 1629 y ff
(5.2.3)56 b(T)-5 b(erminal)19 b(redirection)37 1743 y fn(The)14 b(system)e
(in)o(terface)h(library)f(de\014nes)i(the)g(classes)f fg(T)l(erminalInputStre\
am)g fn(and)g fg(T)l(erminalOutputStream)37 1828 y fn(for)21 b(redirecting)f
fg(Standa)o(rdInput)j fn(and)e fg(Standa)o(rdOutpu)q(t)j fn(to)c(another)g
(program)f(via)h(remote)g(pro)q(cedure)37 1913 y(calls.)f fg(T)l(erminalInput\
Stream)13 b fn(is)g(a)g(sub)q(class)g(of)g fg(InputStream)h fn(that)f(transla\
tes)f(all)g fg(read\(\))h fn(op)q(erations)f(in)o(to)37 1997 y(a)18 b(sp)q
(ecial)f(remote)f(pro)q(cedure)i(calling)e(proto)q(col.)25 b(With)17 b(this)g
(message-based)f(proto)q(col,)h(the)g fg(T)l(erminal-)37 2082 y(InputStream)k
fn(comm)o(unicates)16 b(with)j(a)g(serv)o(er)g fg(Bo)o(x)g fn(to)g(request)h
(c)o(haracters.)31 b(The)20 b(serv)o(er)f fg(Bo)o(x)g fn(ma)o(y)f(b)q(e)37
2167 y(part)j(of)f(another)g(application)g(program)e(that)i(serv)o(es)h(the)f
(requests)h(for)f(c)o(haracters.)36 b fg(T)l(erminalInput-)37 2251 y(Stream::\
read\(\))21 b fn(b)q(eha)o(v)o(es)h(lik)o(e)f fg(PCConsoleInputStream::read\(\
\))p fn(,)i(with)f(the)g(exception)g(that)f fg(T)l(erminal-)37 2336 y(InputSt\
ream)i fn(allo)o(ws)d(the)j fg(InputStream)f fn(to)g(b)q(e)g(p)q(olled)g(for)
g(the)g(presence)h(of)f(c)o(haracters,)g(b)o(y)g(passing)37 2421 y(sp)q(ecial)
15 b(argumen)o(ts)f(\(Figure)g(5.5\).)108 2505 y(A)f fg(T)l(erminalOutputStre\
am)i fn(is)d(a)h(sub)q(class)h(of)f fg(OutputStream)i fn(that)d(translates)g
(all)g fg(write\(\))h fn(and)g fg(\015ush\(\))37 2590 y fn(op)q(erations)21 b
(in)o(to)f(remote)g(pro)q(cedure)i(calls.)37 b(A)21 b fg(T)l(erminalOutputStr\
eam)h fn(encapsulates)f(a)g(serv)o(er)g fg(Bo)o(x)952 2760 y fn(96)g eop bop
196 2 a 1559 2 v 196 1157 a 2 1155 v 225 48 a fi(in)o(t)15 b fg(T)l(erminalIn\
putStream)g(::)k(read)c(\()p fi(c)o(har)g fl(\003)p fg(bu\013er,)g fi(in)o
(t)f fg(count\))339 154 y fn(If)j fg(count)h fm(>)f fn(0:)23 b(Read)18 b fg
(count)g fn(c)o(haracters)e(from)f(the)i(stream)e(and)i(write)339 211 y(the)k
(c)o(haracters)f(in)o(to)g fg(bu\013er)p fn(.)38 b fg(bu\013er)21 b fn(m)o
(ust)f(b)q(e)i(big)f(enough)g(to)g(hold)339 267 y fg(count)c fn(c)o(haracters\
.)23 b(If)16 b(a)g(newline)g(is)g(encoun)o(tered)h(b)q(efore)g fg(count)g fn
(c)o(har-)339 324 y(acters)h(ha)o(v)o(e)g(b)q(een)i(read,)g(cop)o(y)f(the)g
(newline)f(in)o(to)g fg(bu\013er)h fn(and)g(return)339 380 y(immediatel)o(y)l
(.)28 b(In)20 b(either)e(case,)i(the)f(return)f(v)m(alue)h(is)g(the)g(n)o(um)
o(b)q(er)f(of)339 437 y(c)o(haracters)c(actually)g(written)g(to)h(bu\013er.)
339 493 y(If)i fg(count)i fn(=)e(0:)24 b(If)18 b(a)f(c)o(haracter)f(is)h(a)o
(v)m(ailable)f(in)h(the)h(stream,)d(return)j(0)339 550 y(and)d(store)g(the)g
(c)o(haracter)f(in)o(to)g fg(bu\013er)p fn(.)20 b(Otherwise)c(return)f(-1.)
225 656 y fi(in)o(t)g fg(T)l(erminalOutputStream)h(::)j(write)d(\()p fi(const)
f(c)o(har)g fl(\003)p fg(bu\013er,)f fi(in)o(t)h fg(count\))339 762 y fn(W)l
(rite)h fg(count)i fn(c)o(haracters)f(from)e fg(bu\013er)i fn(in)o(to)f(the)i
(stream.)24 b(Return)17 b(the)339 819 y(n)o(um)o(b)q(er)12 b(of)h(c)o(haracte\
rs)g(actually)f(written.)18 b(The)13 b(writing)f(of)h(c)o(haracters)339 875 y
(to)h(the)i(stream)e(is)h(bu\013ered,)g(so)g(the)h(c)o(haracters)f(ma)o(y)e
(not)i(b)q(e)h(sen)o(t)g(out)339 932 y(in)o(to)e(the)h(stream)e(immediately)l
(.)225 1038 y fg(OutputStream)k(&T)l(erminalOutputStream)g(::)i(\015ush)e(\(\
\))339 1144 y fn(Flush)e(all)f(c)o(haracters)g(in)h(the)g(in)o(ternal)f(bu\
\013er)i(in)o(to)e(the)h(stream.)1753 1157 y 2 1155 v 196 1159 a 1559 2 v 179
1235 a fi(Figure)i(5.5)p fn(:)i(Metho)q(ds)d(of)e(classes)h fg(T)l(erminalInp\
utStream)g fn(and)g fg(T)l(erminalOutputStream)37 1369 y fn(and)i(a)g(bu\013e\
r.)24 b(Requests)18 b(for)e(output)h(of)f(c)o(haracters)g(are)g(directed)h
(to)f(the)h(serv)o(er)g fg(Bo)o(x)p fn(.)24 b(F)l(or)16 b(e\016ciency)l(,)37
1453 y(c)o(haracters)h(passed)g(to)f(the)h fg(write\(\))g fn(op)q(eration)f
(are)h(k)o(ept)g(in)f(a)h(bu\013er)g(\014rst)g(and)g(are)g(sen)o(t)f(to)h(the)
g(serv)o(er)37 1538 y fg(Bo)o(x)d fn(when)h(the)g(bu\013er)f(is)g(full.)19 b
(The)14 b(programmer)d(ma)o(y)i(in)o(v)o(ok)o(e)g(the)i fg(\015ush\(\))g fn
(metho)q(d)e(to)h(\015ush)h(the)f(bu\013er)37 1623 y(to)h(the)g(serv)o(er)g fg
(Bo)o(x)p fn(.)108 1708 y(The)d fg(T)l(erminalInputStream)p fn(/)p fg(T)l(erm\
inalOutputStream)g fn(proto)q(col)f(consists)f(of)i(three)f(t)o(yp)q(es)h(of)
f(messages)37 1792 y(\(T)l(able)g(5.1\).)17 b(T)l(o)11 b(handle)h(a)f fg(read\
\(\))g fn(op)q(eration,)f(the)i fg(T)l(erminalInputStream)f fn(sends)h(a)e
(read)i(request)f(message)37 1877 y(and)20 b(w)o(aits)f(for)g(a)g(reply)l(.)
34 b(T)l(o)19 b(write)g(c)o(haracters,)h(the)g fg(T)l(erminalOutputStream)h fn
(sends)f(a)g(write)e(request)37 1962 y(message.)211 1945 y fr(4)37 2112 y ff
(5.2.4)56 b(Startup)19 b(pro)r(cedure)37 2226 y fn(All)g(PC-Choices)g(applica\
tion)e(programs)g(b)q(egin)i(execution)g(in)g(the)g(assem)o(bly-co)q(de)g(rou\
tine)i 14 2 v 13 w fg(sta)o(rt\(\))p fn(.)1893 2210 y fr(5)37 2311 y fn(Up)q
(on)15 b(en)o(try)f(to)f(the)h(routine,)f(register)g(EAX)h(holds)g(a)g(p)q
(oin)o(ter)f(to)h(the)g fg(Standa)o(rdSystemInterface)h fn(ob)s(ject,)37 2392
y 750 2 v 89 2419 a fs(4)107 2435 y fp(All)d(messages)g(are)h(de\014ned)i(in)
e fa(Includes/Lib)o(ra)o(ries/SystemInterface/T)m(erminalStreamMessage.h)p fp
(.)89 2465 y fs(5)109 2481 y 12 2 v 11 w fa(sta)o(rt\(\))g fp(is)g(de\014ned)
h(in)f fa(Lib)o(ra)o(ries/SystemInterface/i386/crt0.s)p fp(.)952 2760 y fn
(97)g eop bop 78 51 a 1795 2 v 77 108 a 2 57 v 103 91 a fn(Message)14 b(name)
892 108 y 2 57 v 918 91 a(Message)g(\014elds)1871 108 y 2 57 v 78 110 a 1795 2
v 77 175 a 2 66 v 103 149 a fg(T)l(erminalInputStream)s 14 2 v 13 w(read)s 14
2 v 13 w(Message)892 175 y 2 66 v 918 149 a fn(in)o(t)g(t)o(yp)q(e)173 b fg
(T)l(erminalInputStream)s 14 2 v 14 w(read)1871 175 y 2 66 v 77 288 a 2 113 v
815 w 2 113 v 918 214 a fn(in)o(t)14 b(dataSize)93 b(Num)o(b)q(er)19 b(of)f
(c)o(haracters)g(to)g(read)1247 271 y(from)c(the)h(stream.)1871 288 y 2 113 v
78 289 a 1795 2 v 77 355 a 2 66 v 103 329 a fg(T)l(erminalInputStream)s 14 2 v
13 w(read)s 14 2 v 13 w(replyMessage)892 355 y 2 66 v 918 329 a fn(in)o(t)f
(t)o(yp)q(e)173 b fg(T)l(erminalInputStream)s 14 2 v 14 w(read)s 14 2 v 13 w
(reply)1871 355 y 2 66 v 77 533 a 2 179 v 815 w 2 179 v 918 394 a fn(in)o(t)
14 b(dataSize)93 b(Num)o(b)q(er)14 b(of)h(c)o(haracters)f(actually)1247 451 y
(read)e(from)e(the)i(stream,)f(or)g(result)1247 507 y(of)k(p)q(olling.)1871
533 y 2 179 v 77 646 a 2 113 v 815 w 2 113 v 918 572 a(c)o(har)g(data)f([])
100 b(Characters)47 b(read)h(from)e(the)1247 629 y(stream.)1871 646 y 2 113 v
78 648 a 1795 2 v 77 713 a 2 66 v 103 687 a fg(T)l(erminalOutputStream)s 14 2
v 14 w(write)s 14 2 v 14 w(Message)892 713 y 2 66 v 918 687 a fn(in)o(t)14 b
(t)o(yp)q(e)173 b fg(T)l(erminalOutputStream)s 14 2 v 15 w(write)1871 713 y 2
66 v 77 826 a 2 113 v 815 w 2 113 v 918 752 a fn(in)o(t)14 b(dataSize)93 b
(Num)o(b)q(er)15 b(of)g(c)o(haracters)f(to)g(write)1247 809 y(to)h(the)g(stre\
am.)1871 826 y 2 113 v 77 939 a 2 113 v 815 w 2 113 v 918 865 a(c)o(har)g(dat\
a)f([])100 b(Characters)28 b(to)g(b)q(e)h(written)e(to)1247 922 y(the)16 b
(stream.)1871 939 y 2 113 v 78 940 a 1795 2 v 435 1018 a fi(T)l(able)h(5.1)p
fn(:)j(Messages)14 b(for)h(terminal)e(redirection)h(proto)q(col)37 1151 y(pas\
sed)20 b(b)o(y)f(the)h(k)o(ernel)f(during)g(the)h(initialization)c(of)j(the)h
fg(ApplicationPro)q(cess)p fn(.)37 b 14 2 v 14 w fg(Sta)o(rt\(\))19 b fn(is)g
(called)g(b)o(y)37 1236 y 14 2 v 14 w fg(sta)o(rt\(\))p fn(,)c(passing)f(the)
i fg(Standa)o(rdSystemInterface)g fn(as)f(the)h(argumen)o(t.)k 14 2 v 14 w fg
(Sta)o(rt\(\))15 b fn(do)q(es)g(the)h(follo)o(wing:)1814 1219 y fr(6)93 1370 y
fn(1.)22 b(It)15 b(sa)o(v)o(es)g(the)g fg(Standa)o(rdSystemInterface)i fn(in)
o(to)d(the)i(global)d(v)m(ariable)i fg(Standa)o(rdSystemInterface)p fn(.)93
1492 y(2.)22 b(It)g(calls)g fg(initializeNewAllo)q(cato)o(r\(\))f fn(to)h(ini\
tialize)e(the)j(heap)f(allo)q(cator.)39 b fg(initializeNewAllo)q(cato)o(r\(\))
151 1577 y fn(creates)18 b(a)g fg(StaticAllo)q(cato)o(r)h fn(that)f(will)f
(b)q(e)i(called)f(b)o(y)g(the)g(op)q(erators)g fg(new)h fn(and)g fg(delete)g
fn(to)f(manage)151 1661 y(the)d(heap)h(space.)457 1645 y fr(7)93 1784 y fn
(3.)22 b(It)15 b(initializes)f(the)h fg(Pro)o(xiableObject)h fn(table,)e(used)
i(for)f(storing)f(the)h(names)f(of)h(all)f fg(Pro)o(xiableObjects)p fn(.)93
1906 y(4.)22 b(It)d(fetc)o(hes)g(the)f fg(ConstructPro)o(xyPtr)i fn(from)d
(the)h fg(Standa)o(rdSystemInterface)p fn(,)j(to)d(assist)g(in)g(the)h(con-)
151 1990 y(struction)14 b(of)h(pro)o(xies.)93 2112 y(5.)22 b(It)15 b(calls)i
14 2 v 14 w fg(main\(\))d fn(to)g(in)o(v)o(ok)o(e)h(the)g(constructors)f(of)h
(all)f(statically-constructed)f(ob)s(jects.)93 2234 y(6.)22 b(It)16 b(calls)f
(the)h fg(Standa)o(rdSystemInterface)h fn(to)f(c)o(hec)o(k)g(that)f(the)h(k)o
(ernel)f(in)o(terface)g(curren)o(tly)h(pro)o(vided)151 2319 y(is)g(the)f(same)
g(v)o(ersion)g(as)h(the)g(in)o(terface)f(that)g(w)o(as)g(used)h(to)g(compile)
e(the)i(application.)k(If)d(they)f(do)151 2404 y(not)f(matc)o(h,)e(w)o(arning)
h(messages)g(will)g(b)q(e)i(emitted.)37 2485 y 750 2 v 89 2512 a fs(6)109 2528
y 12 2 v 11 w fa(Sta)o(rt\(\))e fp(is)e(de\014ned)j(in)d fa(Lib)o(ra)o(ries/S\
ystemInterface/P)o(o)o(rtable/)r 12 2 v 12 w(Sta)o(rt.cc)p fp(.)89 2557 y fs
(7)107 2573 y fa(initializeNewAllo)q(cato)o(r\(\))i fp(is)f(de\014ned)h(in)f
fa(Lib)o(ra)o(ries/SystemInterface/P)o(o)o(rtable/)r 12 2 v 12 w(new.cc)p fp
(.)952 2760 y fn(98)g eop bop 93 42 a fn(7.)22 b(It)15 b(sets)g(the)h(global)
d(v)m(ariable)i fg(Standa)o(rdNameServer)q fn(.)93 160 y(8.)22 b(It)g(calls)e
fg(Initializer::initialize\(\))g fn(to)h(set)g(other)h(global)e(v)m(ariables)
h(\(to)f(b)q(e)j(describ)q(ed)f(in)g(the)f(next)151 244 y(section\).)93 363 y
(9.)h(It)14 b(sets)g(up)g(the)g(class)f(hierarc)o(h)o(y)g(information)e(and)j
(v)m(arious)g(tables)f(that)g(are)h(related)f(to)g(the)h(pro)o(xy)151 447 y
(mec)o(hanism.)108 569 y(Up)q(on)j(returning)f(from)h 14 2 v 13 w fg(Sta)o
(rt\(\))p fn(,)i 14 2 v 13 w fg(sta)o(rt\(\))d fn(calls)f fg(main\(\))g fn
(whic)o(h)h(is)g(de\014ned)h(b)o(y)f(the)h(application)e(pro-)37 653 y(gramme\
r.)24 b(When)17 b fg(main\(\))f fn(returns,)h(or)g(when)h(the)f(program)e(cal\
ls)i fg(exit\(\))p fn(,)g(the)g fg(ApplicationPro)q(cess)j fn(will)37 738 y
(b)q(e)c(terminated.)37 887 y ff(5.2.5)56 b(Initialization)21 b(of)e(global)h
(ob)s(jects)37 1001 y fn(The)14 b(PC-Choices)e(application)g(programming)d
(in)o(terface)k(consists)f(of)h(man)o(y)e(ob)s(jects)i(\(suc)o(h)g(as)f fg
(Standa)o(rd-)37 1086 y(Input)i fn(and)e fg(Standa)o(rdFileSystemInterface)p
fn(\))h(that)e(need)i(to)e(b)q(e)h(initialized)f(b)o(y)g(the)h(system)f(in)o
(terface)g(library)37 1170 y(if)19 b(these)f(ob)s(jects)g(are)h(used)g(b)o
(y)g(the)f(application)g(program.)28 b(Ho)o(w)o(ev)o(er,)18 b(initializing)e
(all)i(these)g(ob)s(jects,)37 1255 y(regardless)e(of)g(whether)g(they)h(are)f
(actually)f(used)i(b)o(y)f(the)g(program,)e(is)i(a)g(bad)h(idea.)23 b(This)15
b(causes)i(more)37 1340 y(classes)c(to)f(b)q(e)h(instan)o(tiated,)e(forcing)h
(the)h(link)f(editor)g(to)h(link)f(in)g(the)h(metho)q(ds)f(for)g(the)h(classe\
s,)f(resulting)37 1424 y(in)19 b(a)f(larger)f(executable)i(image.)28 b(Moreo)
o(v)o(er,)17 b(mo)q(dularit)o(y)f(of)i(the)h(libraries)e(is)h(decreased)h(b)q
(ecause)g(the)37 1509 y(system)g(in)o(terface)f(library)h(m)o(ust)f(kno)o(w)h
(all)f(the)i(ob)s(jects)f(that)f(are)i(exp)q(orted)f(b)o(y)h(the)f(libraries)
f(to)h(the)37 1594 y(application)14 b(program.)108 1678 y(The)h fg(Initialize\
r)f fn(mec)o(hanism)e(allo)o(ws)h(the)h(system)g(in)o(terface)f(library)h(to)
g(initialize)f(only)h(those)g(ob)s(jects)37 1763 y(that)f(are)g(actually)f
(used)i(b)o(y)g(the)f(application)f(program.)17 b(The)d(mec)o(hanism)d(w)o
(orks)h(due)i(to)f(the)h(b)q(eha)o(viour)37 1848 y(of)g(the)g(link)f(editor)g
(|)h(for)f(a)g(statically-constructed)f(global)g(v)m(ariable)h(in)h(a)f(libra\
ry)l(,)g(the)h(static)e(construc-)37 1933 y(tor)18 b(is)g(not)g(executed)h
(if)f(the)h(v)m(ariable)f(is)g(not)g(referenced)h(b)o(y)f(the)h(program.)27 b
(Therefore)19 b(the)f fg(Initializer)37 2017 y fn(mec)o(hanism)13 b(uses)j
(static)e(constructors)g(to)h(determine)f(whic)o(h)h(global)f(ob)s(jects)g
(should)i(b)q(e)f(constructed.)108 2102 y(F)l(or)20 b(ev)o(ery)g(global)f(v)m
(ariable)g(that)h(is)f(part)h(of)g(the)g(application)f(programmi)o(ng)e(in)o
(terface,)k(a)f(static)37 2187 y fg(Initializer)14 b fn(ob)s(ject)f(is)h(pres\
en)o(t)g(in)g(the)g(\014le)g(that)g(de\014nes)h(the)f(global)f(v)m(ariable.)
19 b(The)14 b fg(Initializer)f fn(constructor)37 2271 y(requires)23 b(one)g
(argumen)o(t,)f(a)g(programmer-de\014ned)f(function)i(to)f(b)q(e)h(called)f
(to)g(initialize)f(the)i(global)37 2356 y(v)m(ariable.)k(When)18 b(eac)o(h)g
fg(Initializer)f fn(constructor)g(is)g(called)g(\(during)g(the)h(application)
f(startup)f(step)i(that)37 2441 y(calls)13 b(all)f(static)g(constructors\),)g
(the)h(function)h(argumen)o(t)d(is)i(added)h(to)e(a)h(global)f(list)g(of)h
(functions.)19 b(When)37 2525 y fg(Initializer::initialize\(\))13 b fn(is)i
(called,)f(eac)o(h)h(function)g(in)g(the)g(list)f(is)h(called,)f(thereb)o(y)h
(initializing)e(eac)o(h)i(global)37 2610 y(v)m(ariable.)952 2760 y(99)g eop
bop 108 42 a fn(Let)12 b(us)f(examine)g(an)g(example)f(of)i(an)f fg(Initializ\
er)p fn(.)18 b(The)12 b fg(Standa)o(rdOutput)j fn(v)m(ariable)c(is)g(de\014ne\
d)i(in)e(the)g(\014le)37 126 y fg(Lib)o(ra)o(ries/SystemInterface/P)o(o)o(rta\
ble/initOutput.cc)p fn(.)28 b(In)18 b(the)f(same)f(\014le,)h(a)g(static)e fg
(Initializer)i fn(is)f(de\014ned,)37 211 y(the)h(argumen)o(t)d(for)i(the)g
(constructor)g(b)q(eing)g(a)g(p)q(oin)o(ter)g(to)g(the)g(function)g fg(initia\
lizeStanda)o(rdOutput)q(\(\))p fn(.)25 b(If)37 296 y fg(Standa)o(rdOutpu)q
(t)20 b fn(is)d(referenced)h(b)o(y)f(the)g(application)e(program,)g(the)i(lin\
k)g(editor)f(will)g(concatenate)g(the)37 380 y(functions,)h(v)m(ariables)e
(and)i(static)e(constructors)h(in)g fg(initOutput.cc)k fn(with)15 b(the)i(exe\
cutable)f(image.)22 b(When)37 465 y(the)13 b(program)e(executes,)i(the)g fg
(Initializer)f fn(constructor)g(will)f(b)q(e)j(called)e(and)h(the)f fg(initia\
lizeStanda)o(rdOutpu)q(t\(\))37 550 y fn(function)j(will)e(b)q(e)i(added)g
(to)f(the)g(function)g(list.)19 b fg(Initializer::initialize\(\))12 b fn(will)
h(then)i(call)e fg(initializeStanda)o(rd-)37 634 y(Output\(\))p fn(,)20 b(sin\
ce)d(it)f(is)g(presen)o(t)h(in)g(the)g(list.)24 b(This)16 b(function)h(fetc)o
(hes)g(the)g fg(Standa)o(rdOutpu)q(t)j fn(ob)s(ject)c(from)37 719 y(the)g fg
(Standa)o(rdNameServer)g fn(and)f(assigns)f(it)h(to)f(the)i fg(Standa)o(rdOut\
put)j fn(global)13 b(v)m(ariable.)108 804 y(The)19 b(reader)g(migh)o(t)e(b)q
(e)j(w)o(ondering)e(wh)o(y)h(the)g(initialization)d(should)j(b)q(e)h(done)g
(in)f(t)o(w)o(o)e(steps:)28 b(\014rst)37 888 y(to)17 b(add)h(the)g(initializa\
tio)o(n)d(function)j(to)e(the)i(list)e(and)i(then)g(to)f(in)o(v)o(ok)o(e)f
(the)i(initialization)c(functions)k(in)37 973 y(the)f(list.)24 b(Wh)o(y)16 b
(not)h(in)o(v)o(ok)o(e)e(the)i(initialization)d(function)j(directly)f(in)g
(the)h(static)f(constructor?)25 b(This)16 b(is)37 1058 y(b)q(ecause)j(the)e
(global)f(v)m(ariables)h(needed)i(b)o(y)e(the)g(initialization)e(functions)i
(ma)o(y)e(not)i(b)q(e)i(initialized)c(y)o(et.)37 1142 y(F)l(or)21 b(example,)
f(the)h fg(Standa)o(rdOutpu)q(t)j fn(initialization)18 b(function)i(uses)h
(the)g fg(Standa)o(rdNameServer)h fn(global)37 1227 y(v)m(ariable,)15 b(whic)
o(h)g(is)f(not)h(initialized)f(when)i(the)f(static)f(constructors)g(are)h(cal\
led.)108 1312 y(The)e fg(Standa)o(rdInput)i fn(is)e(initialized)e(b)o(y)i(the)
g(function)f fg(initializeStanda)o(rdInput\(\))p fn(.)1516 1295 y fr(8)1557
1312 y fn(This)g(function)h(\014rst)37 1396 y(examines)18 b(the)h fg(Standa)o
(rdNameServer)g fn(for)f(the)g(presence)i(of)e(the)h(en)o(try)f(named)g(\\Sta\
ndardInputBo)o(x".)37 1481 y(If)j(this)f(en)o(try)g(is)h(presen)o(t,)g(the)g
(function)f(assumes)f(that)h(it)g(is)g(a)g fg(Bo)o(x)h fn(and)f(fetc)o(hes)h
(it)f(to)g(construct)g(a)37 1566 y fg(T)l(erminalInputStream)p fn(,)14 b(whic)
o(h)f(will)f(use)h(the)h fg(Bo)o(x)e fn(for)h(reading)g(c)o(haracters.)18 b
(The)c fg(T)l(erminalInputStream)f fn(is)37 1650 y(then)k(assigned)f(to)f(the)
i fg(Standa)o(rdInput)h fn(global)d(v)m(ariable.)23 b(This)15 b(means)h(that)
f(an)h(application)f(program's)37 1735 y fg(Standa)o(rdInput)h fn(ma)o(y)c
(b)q(e)h(redirected)h(b)o(y)f(binding)g(the)g fg(Standa)o(rdInputBo)o(x)j fn
(en)o(try)c(to)h(a)g fg(Bo)o(x)f fn(that)h(will)f(serv)o(e)37 1820 y(input)g
(requests.)19 b(If)12 b(the)g(\\StandardInputBo)o(x")g(is)g(not)f(presen)o
(t)h(in)g(the)g fg(Standa)o(rdNameServer)q fn(,)g fg(initializeS-)37 1905 y
(tanda)o(rdOutpu)q(t\(\))h fn(will)d(instan)o(tiate)f fg(PCConsoleInputStream)
j fn(and)f(assign)f(the)h(instance)f(to)g fg(Standa)o(rdInput)p fn(,)37 1989 y
(meaning)k(that)h(the)g(PC)g(k)o(eyb)q(oard)g(is)g(used)h(as)e(the)i(input)f
(stream)e(b)o(y)i(default.)108 2074 y(The)g fg(Standa)o(rdOutpu)q(t)j fn(is)c
(initialized)f(b)o(y)i(the)g(function)g fg(initializeStanda)o(rdOutput\(\))p
fn(.)1604 2057 y fr(9)1646 2074 y fn(This)g(function)37 2159 y(\014rst)g(exam\
ines)g(the)g fg(Standa)o(rdNameServer)h fn(for)f(the)g(presence)h(of)f(the)h
(en)o(try)f(named)f(\\StandardOutput-)37 2243 y(Bo)o(x".)19 b(If)12 b(the)g
(en)o(try)g(is)g(presen)o(t,)g(it)g(will)f(b)q(e)h(used)h(to)f(construct)f
(a)h fg(T)l(erminalOutputStream)i fn(for)d(redirecting)37 2328 y(the)16 b(pro\
gram)d(output.)19 b(The)d fg(T)l(erminalOutputStream)g fn(will)e(b)q(e)i(assi\
gned)e(to)h(the)g fg(Standa)o(rdOutput)k fn(global)37 2413 y(v)m(ariable.)35 b
(If)21 b(\\StandardOutputBo)o(x")f(is)g(not)g(presen)o(t,)h fg(Standa)o(rdOut\
put)j fn(will)19 b(b)q(e)i(set)f(to)g(the)h(\\Stan-)37 2494 y 750 2 v 89 2521
a fs(8)107 2536 y fa(initializeStanda)o(rdInput\(\))13 b fp(is)f(de\014ned)j
(in)d fa(Lib)o(ra)o(ries/SystemInterface/P)o(o)o(rtable/initInput.cc)p fp(.)
89 2566 y fs(9)107 2582 y fa(initializeStanda)o(rdOutput\(\))h fp(is)g(de\014\
ned)h(in)f fa(Lib)o(ra)o(ries/SystemInterface/P)o(o)o(rtable/initOutput.cc)p
fp(.)941 2760 y fn(100)g eop bop 37 42 a fn(dardOutput")16 b(ob)s(ject)f(that)
g(is)g(registered)g(in)h(the)g fg(Standa)o(rdNameServer)q fn(.)21 b(This)15 b
(will)f(cause)i(all)f(program)37 126 y(output)g(to)g(app)q(ear)g(on)h(the)f
(PC)g(screen.)37 307 y fd(5.3)70 b(File)23 b(System)e(Library)37 436 y fn(The)
12 b(main)e(purp)q(ose)h(of)g(the)g(PC-Choices)g(\014le)g(system)f(library)g
(is)h(to)f(pro)o(vide)h(\014le)g(system)f(services)h(through)37 521 y(an)i
(in)o(terface)e(that)g(resem)o(bles)g(the)h(normal)e(Choices)i(\014le)g(syste\
m)f(in)o(terface[30)n(])h(as)g(m)o(uc)o(h)f(as)g(p)q(ossible.)19 b(F)l(or)37
606 y(the)14 b(sak)o(e)e(of)h(p)q(ortabilit)o(y)e(and)j(customizabilit)n(y)l
(,)d(I)i(ha)o(v)o(e)g(decided)h(not)f(to)f(implemen)o(t)f(\014le)i(system)f
(services)37 691 y(inside)f(the)g(k)o(ernel,)f(but)h(to)f(pro)o(vide)g(a)h
(user-lev)o(el)f(library)f(that)h(serv)o(es)g(the)h(same)e(purp)q(ose.)19 b
(Inevitably)l(,)11 b(the)37 775 y(implemen)o(tation)g(of)j(the)g(user-lev)o
(el)g(\014le)g(system)f(had)h(to)g(b)q(e)h(di\013eren)o(t)e(from)g(the)h(impl\
emen)o(tati)o(on)e(of)h(the)37 860 y(k)o(ernel)g(\014le)g(system.)18 b(Ho)o
(w)o(ev)o(er,)12 b(in)h(order)g(to)f(run)h(Choices)g(application)f(programs)e
(without)i(mo)q(di\014cation)37 945 y(on)18 b(di\013eren)o(t)e(v)o(ersions)g
(of)h(Choices,)g(including)g(PC-Choices,)g(a)g(common)d(in)o(terface)j(to)f
(the)i(\014le)f(system)37 1029 y(m)o(ust)d(b)q(e)i(adopted,)f(ev)o(en)g(thoug\
h)g(the)h(implemen)o(tat)o(ion)c(ma)o(y)i(b)q(e)i(di\013eren)o(t.)108 1114 y
(The)j(normal)d(Choices)i(\014le)h(system)e(a\013ords)g(m)o(uc)o(h)g(function\
alit)o(y)g(through)h(its)g(in)o(terface.)28 b(A)19 b(basic)37 1199 y(in)o(ter\
face)13 b(w)o(as)f(distilled)f(from)g(the)i(general)g(in)o(terface)f(and)h
(the)g(basic)f(in)o(terface)g(w)o(as)g(implemen)o(ted)f(in)h(the)37 1283 y
(PC-Choices)i(\014le)f(system)f(library)l(.)19 b(The)14 b(basic)f(in)o(terfac\
e)g(pro)o(vides)g(a)g(b)o(yte-stream)f(programm)o(ing)f(mo)q(del)37 1368 y
(for)19 b(\014le)g(access,)g(in)g(addition)f(to)h(a)f(few)h(utilit)o(y)e(func\
tions.)31 b(This)19 b(in)o(terface)f(consists)g(of)h(the)g(follo)o(wing)37
1453 y(comp)q(onen)o(ts:)93 1587 y(1.)j fg(FileSystemInterface)p fn(:)d(A)13 b
(global)e(instance)i(of)f fg(FileSystemInterface)h fn(is)f(used)h(for)f(creat\
ing)g(and)h(op)q(en-)151 1672 y(ing)21 b(\014les.)36 b(This)21 b(ob)s(ject)f
(is)h(also)e(used)j(for)e(c)o(hanging)g(the)h(curren)o(t)g(directory)f(\()p fg
(FileSystemInter-)151 1757 y(face::chdir\(\))p fn(\))c(and)h(deleting)g(\014l\
es)g(\()p fg(FileSystemInterface::unlink\(\))p fn(\).)26 b(In)17 b(the)h(norm\
al)d(Choices)h(\014le)151 1841 y(system,)c(the)h fg(FileSystemInterface)h fn
(instance)e(is)h(obtained)g(through)f(the)i fg(Standa)o(rdNameServer)q fn(,)e
(but)151 1926 y(in)j(PC-Choices,)g(it)f(is)h(accessed)h(through)e(the)i(globa\
l)e(v)m(ariable)g fg(Standa)o(rdFileSystemInterface)p fn(.)93 2048 y(2.)22 b
fg(ReadFileStream)p fn(:)d(When)14 b(the)f fg(FileSystemInterface)h fn(op)q
(ens)g(a)f(\014le,)h(it)f(returns)g(an)g(instance)g(of)g fg(Read-)151 2133 y
(FileStream)h fn(to)f(enable)i(the)g(programm)o(er)d(to)h(read)i(data)f(from)
e(the)j(\014le)f(in)g(the)h(b)o(yte-stream)e(mo)q(de.)151 2217 y fg(ReadFileS\
tream)k fn(has)h(metho)q(ds)e(for)h(reading)g(data,)g(setting)f(the)i(\014le)
f(p)q(oin)o(ter)g(and)g(enquiring)g(the)151 2302 y(\014le)e(p)q(oin)o(ter)g
(p)q(osition.)93 2424 y(3.)22 b fg(W)o(riteFileStream)p fn(:)i fg(W)o(riteFil\
eStreams)17 b fn(w)o(ork)g(exactly)g(lik)o(e)h fg(ReadFileStreams)p fn(,)g
(except)g(that)g fg(W)o(rite-)151 2509 y(FileStreams)d fn(are)g(for)f(writing)
g(data)h(to)f(\014les)h(only)l(.)941 2760 y(101)g eop bop 108 42 a fn(In)17 b
(this)e(in)o(terface,)h(\014les)g(are)g(not)f(closed)i(explicitly)d(b)o(y)j
(the)f(programmer.)j(Instead,)e(the)f(automatic)37 126 y(garbage)j(collection)
f(system)g(will)g(delete)h fg(ReadFileStreams)h fn(and)f fg(W)o(riteFileStrea\
ms)g fn(when)g(not)g(needed)37 211 y(an)o(y)c(more,)f(causing)h(the)g(asso)q
(ciated)f(\014les)h(to)g(b)q(e)h(closed.)108 296 y(In)e(the)f(PC-Choices)g
(implemen)o(tati)o(on)e(of)h(the)i(\014le)f(system,)f fg(FileSystemInterface)
h fn(is)g(an)g(abstract)f(base)37 380 y(class)22 b(with)f(sub)q(class)h fg
(DOSFileSystemInterface)p fn(.)40 b(The)22 b(global)f(v)m(ariable)g fg(Standa)
o(rdFileSystemInterface)37 465 y fn(p)q(oin)o(ts)d(to)g(an)g(instance)g(of)f
fg(DOSFileSystemInterface)p fn(.)30 b(A)18 b fg(DOSFileSystemInterface)h fn
(p)q(erforms)e(\014le)h(sys-)37 550 y(tem)13 b(op)q(erations)g(b)o(y)h(callin\
g)f(DOS)h(routines)f(through)h(the)g fg(VirtualPCInterface)p fn(.)20 b(Op)q
(ening)15 b(a)f(\014le)g(requires)37 634 y(t)o(w)o(o)f(steps:)19 b(creating)
14 b(a)f fg(File)h fn(ob)s(ject)g(to)f(represen)o(t)h(the)g(op)q(ened)i(\014l\
e,)e(then)g(creating)f(a)h fg(ReadFileStream)g fn(or)37 719 y fg(W)o(riteFile\
Stream)f fn(with)g(the)h fg(File)f fn(ob)s(ject)g(for)g(returning)g(to)g(the)
h(user.)20 b(In)14 b(the)g(\014rst)f(step,)h(the)f fg(DOSFileSys-)37 804 y
(temInterface)j fn(in)o(v)o(ok)o(es)d(a)i(DOS)g(routine)g(to)f(op)q(en)i(\(or)
e(create\))h(the)g(caller-sp)q(eci\014ed)g(\014le.)20 b(The)15 b(\014le)g(han\
dle)37 888 y(returned)h(b)o(y)f(DOS)h(is)f(encapsulated)g(in)g(a)g fg(DOSFile)
h fn(ob)s(ject,)e fg(DOSFile)i fn(b)q(eing)f(a)g(sub)q(class)h(of)f fg(File)p
fn(.)k(In)d(the)37 973 y(second)j(step,)e(the)h fg(DOSFileSystemInterface)g fn
(encapsulates)g(the)f fg(DOSFile)h fn(ob)s(ject)f(in)g(a)g fg(ReadFileStream)
37 1058 y fn(or)e fg(W)o(riteFileStream)f fn(for)h(returning)f(to)h(the)g(cal\
ler.)37 1238 y fd(5.4)70 b(Application)24 b(Dispatc)n(her)f(Library)37 1368 y
fn(The)c(application)e(dispatc)o(her)h(library)f(enables)h(the)h(application)
e(programmer)e(to)j(start)f(up)h(other)g(ap-)37 1453 y(plication)i(programs.)
34 b(The)21 b(library)e(is)h(presen)o(tly)h(capable)f(of)h(dispatc)o(hing)e
(PC-Choices)i(application)37 1537 y(programs)c(that)i(are)g(either)g(in)g(the)
g(GNU)g(encapsulated)g(COFF)g(format)e(\(pro)q(duced)j(b)o(y)f(the)g(SP)l(AR)
o(C)37 1622 y(cross-compiler\))d(or)h(the)h(GNU)g(a.out)f(format)f(\(pro)q
(duced)i(b)o(y)g(DJGPP\).)f(Based)h(on)g(the)g(header)g(infor-)37 1707 y(mati\
on)12 b(in)i(the)g(executable)g(\014les,)g(the)g(library)f(automatical)o(ly)e
(selects)i(the)h(correct)g(metho)q(d)f(to)g(in)o(terpret)37 1791 y(the)j(exec\
utable)f(\014le.)108 1876 y(In)d(precise)f(terms,)f(the)h(main)e(purp)q(ose)j
(of)e(the)i(application)d(dispatc)o(her)i(library)f(is)g(to)g(pro)o(vide)h
(routines)37 1961 y(to)h(help)g(the)f(application)g(programm)o(er)e(to)i(buil\
d)h(an)f fg(ApplicationPro)q(cess)j fn(out)e(of)f(an)h(executable)f(\014le.)
19 b(The)37 2045 y(application)13 b(programmer)e(ma)o(y)i(optionally)f(pass)i
(argumen)o(ts)f(to)g(the)h fg(ApplicationPro)q(cess)j fn(\(through)c(the)37
2130 y(standard)i(C++)h fg(a)o(rgc)p fn(,)e fg(a)o(rgv)g fn(v)m(ariables\).)
37 2281 y ff(5.4.1)56 b(Application)21 b(Dispatc)n(her)e(In)n(terface)37 2395
y fn(The)14 b(library)e(is)h(structured)g(in)o(to)g(three)g(la)o(y)o(ers)f
(and)i(application)e(programmers)e(ma)o(y)i(dispatc)o(h)h(an)g(appli-)37 2480
y(cation)f(b)o(y)g(calling)f(routines)g(in)h(one)g(of)g(the)g(la)o(y)o(ers)f
(\(T)l(able)h(5.2\).)17 b(A)12 b(routine)g(in)g(a)g(higher)g(la)o(y)o(er)f
(o\013ers)g(more)37 2564 y(functionalit)o(y)g(but)i(less)f(\015exibilit)o(y)f
(compared)g(to)h(a)g(routine)g(in)g(a)g(lo)o(w)o(er)f(la)o(y)o(er.)17 b(The)c
(top)f(la)o(y)o(er,)f(called)h(the)941 2760 y(102)g eop bop 37 42 a fg(Pro)q
(cess)12 b fn(La)o(y)o(er,)e(is)g(easiest)g(to)g(use.)18 b(Programmers)7 b
(simply)i(call)h fg(ApplicationDispatcher::buildAp)q(plication-)37 126 y(Pro)
q(cess\(\))22 b fn(to)e(create)h(an)g fg(ApplicationPro)q(cess)i fn(from)c
(a)i(sp)q(eci\014ed)h(executable)f(\014le)g(\(Figure)f(5.6\).)36 b(The)37 211
y fg(ApplicationPro)q(cess)20 b fn(returned)d(b)o(y)g(the)h(function)f(ma)o
(y)e(b)q(e)j(executed)g(b)o(y)f(in)o(v)o(oking)f(the)h fg(ready\(\))f fn(meth\
o)q(d)37 296 y(on)j(the)f fg(ApplicationPro)q(cess)p fn(.)31 b(Figure)18 b
(5.7)f(sho)o(ws)h(ho)o(w)f(a)h(programmer)d(ma)o(y)i(dispatc)o(h)h(an)g(appli\
cation)37 380 y(program)c(b)o(y)h(calling)f(the)h fg(Pro)q(cess)h fn(La)o(y)o
(er.)427 483 y 1097 2 v 426 540 a 2 57 v 452 523 a(Name)881 540 y 2 57 v 907
523 a(Routines)1522 540 y 2 57 v 427 542 a 1097 2 v 426 598 a 2 57 v 452 581 a
fg(Pro)q(cess)g fn(La)o(y)o(er)881 598 y 2 57 v 907 581 a fg(buildApplication\
Pro)q(cess)q(\(\))1522 598 y 2 57 v 426 654 a 2 57 v 452 637 a(Domain)e fn
(La)o(y)o(er)881 654 y 2 57 v 907 637 a fg(buildApplicationDomain\(\))p fn
(,)1522 654 y 2 57 v 426 711 a 2 57 v 455 w 2 57 v 907 694 a fg(addArguments\
\(\))1522 711 y 2 57 v 426 767 a 2 57 v 452 750 a(Memo)o(ryObject)h fn(La)o
(y)o(er)881 767 y 2 57 v 907 750 a fg(buildApplicationComp)q(onent)q(s\(\))p
fn(,)1522 767 y 2 57 v 426 824 a 2 57 v 455 w 2 57 v 907 807 a fg(addApplicat\
ionComp)q(onent)q(s\(\))1522 824 y 2 57 v 427 825 a 1097 2 v 424 903 a fi(T)l
(able)i(5.2)p fn(:)j(La)o(y)o(ers)15 b(of)f(the)i(application)d(dispatc)o(her)
i(library)196 999 y 1559 2 v 196 1895 a 2 897 v 225 1043 a fi(static)h fg(Pro)
q(cessRef)g(ApplicationDispatcher)i(::)316 1099 y(buildApplicationPro)q(cess)
h(\()p fi(const)c(c)o(har)g fl(\003)p fg(\014lename,)f fi(in)o(t)h fg(a)o(rgc\
,)407 1156 y fi(c)o(har)g fl(\003\003)p fg(a)o(rgv,)e fi(in)o(t)h fg(&err\))
339 1262 y fn(Build)24 b(an)h(application)e(pro)q(cess)i(from)d(the)j(\014le)
g(with)f(the)g(sp)q(eci\014ed)339 1318 y fg(\014lename)d fn(and)h(return)g
(the)g(pro)q(cess.)39 b(P)o(ass)21 b fg(a)o(rgc)g fn(and)h fg(a)o(rgv)e fn
(as)i(argu-)339 1375 y(men)o(ts)i(to)h(the)g(new)h(pro)q(cess')f fg(main\(\))
f fn(function.)50 b fg(a)o(rgv[0])25 b fn(through)339 1431 y fg(a)o(rgv[count\
-1])i fn(m)o(ust)e(b)q(e)j(n)o(ull-terminated)d(strings.)54 b(If)28 b(the)f
(\014le)g(is)339 1488 y(not)c(executable,)j(or)d(if)h(the)g(pro)q(cess)g(coul\
d)g(not)f(b)q(e)i(built,)g fg(err)e fn(will)339 1544 y(b)q(e)28 b(set)f(to)g
(an)h(error)f(co)q(de.)57 b(If)28 b(succcessful,)j fg(err)c fn(will)f(b)q(e)j
(set)e(to)339 1601 y(0.)60 b(The)30 b(\014le)f(can)g(either)f(b)q(e)i(an)f
(executable)g(pro)q(duced)h(b)o(y)f(the)339 1657 y(SP)l(AR)o(C)21 b(cross-com\
piler)d(or)j(b)o(y)f(DJGPP)l(.)g(Note:)31 b(This)20 b(function)g(re-)339 1714
y(turns)i(a)h fg(Pro)q(cessRef)p fn(,)j(so)c(the)i(return)e(v)m(alue)i(m)o
(ust)d(b)q(e)j(immediatel)o(y)339 1770 y(assigned)f(to)f(a)h fg(Pro)q(cessSta)
o(r)h fn(b)q(efore)g(using)f(the)g(return)g(v)m(alue.)45 b(See)339 1827 y fg
(Includes/Lib)o(ra)o(ries/Dispatcher/ApplicationDispatch)q(er.h)19 b fn(for)d
(a)g(list)f(of)339 1883 y(error)f(co)q(des.)1753 1895 y 2 897 v 196 1897 a
1559 2 v 319 1974 a fi(Figure)i(5.6)p fn(:)k(Metho)q(d)15 b(of)g(class)f fg
(ApplicationDispatche)q(r)q fn(:)22 b fg(Pro)q(cess)16 b fn(La)o(y)o(er)108
2102 y(By)f(calling)e(routines)h(in)h(the)f(middle)g(la)o(y)o(er,)f(the)i fg
(Domain)e fn(La)o(y)o(er,)h(the)h(application)e(programmer)e(can)37 2187 y
(access)i(the)g fg(Domain)e fn(that)g(is)h(used)h(b)o(y)g(the)f(new)h fg(Appl\
icationPro)q(cess)p fn(.)21 b(This)12 b(means)f(that)h(the)h(programm)o(er)37
2271 y(ma)o(y)21 b(mo)q(dify)g(the)i fg(Domain)e fn(b)o(y)h(adding)g fg(Memo)
o(ryObjects)h fn(or)f(remo)o(ving)e(them)h(b)q(efore)i(executing)f(the)37 2356
y fg(ApplicationPro)q(cess)p fn(.)108 2441 y(The)15 b(functions)g(in)g(the)g
fg(Domain)f fn(La)o(y)o(er)h(are)f fg(ApplicationDispatche)q(r::buildApp)q
(licationDomain\(\))i fn(and)37 2525 y fg(ApplicationDispatch)q(er::addArgume\
nts\(\))g fn(\(see)e(Figure)f(5.8\).)18 b fg(buildApplicationDomain\(\))d fn
(creates)f(a)f(new)37 2610 y(Application)k fg(Domain)f fn(and)i(loads)e(the)i
(text,)f(data)g(and)g(BSS)h(sections)f(of)g(the)h(executable)g(\014le)f(in)o
(to)f(the)941 2760 y(103)g eop bop 196 2 a 1559 2 v 196 749 a 2 748 v 316 48 a
fk(//)46 b(Initialize)21 b(the)i(ar)n(guments)f(for)h(the)g(new)g(pr)n(o)n
(c)n(ess.)316 105 y fi(const)15 b fg(a)o(rgc)g(=)g(2;)316 161 y fi(c)o(har)g
fl(\003\003)p fg(a)o(rgv)e([a)o(rgc])i(=)g fl(f)g fh("hello")p fg(,)f fh("lup\
")g fl(g)p fg(;)316 218 y fi(in)o(t)g fg(err;)316 274 y fk(//)46 b(Build)23 b
(a)g(pr)n(o)n(c)n(ess)e(out)j(of)e(the)h(exe)n(cutable)g(\014le)f("hel)r(lo")
316 330 y(//)46 b(and)23 b(p)n(ass)f(ar)n(gc)g(and)h(ar)n(gv)g(to)g(the)g(pr)
n(o)n(c)n(ess.)316 387 y fg(Pro)q(cessSta)o(r)16 b(newPro)q(cess)g(=)g(Applic\
ationDispatcher)i(::)407 443 y(buildApplicationPro)q(cess)g(\()p fh("hello")p
fg(,)c(a)o(rgc,)g(a)o(rgv,)f(err\);)316 500 y fk(//)46 b(Che)n(ck)22 b(the)h
(err)n(or)g(c)n(o)n(de.)316 556 y fg(Assert)16 b(\(err)e(==)i(0\);)316 613 y
fk(//)46 b(R)o(un)22 b(the)h(new)g(pr)n(o)n(c)n(ess)e(c)n(oncurr)n(ently,)h
(without)i(waiting)316 669 y(//)46 b(for)23 b(it)g(to)g(\014nish.)316 726 y fg
(newPro)q(cess)17 b fl(!)e fg(ready)g(\(\);)1753 749 y 2 748 v 196 751 a 1559
2 v 217 828 a fi(Figure)i(5.7)p fn(:)i(Dispatc)o(hing)14 b(an)h(application)f
(program)f(through)i(the)g fg(Pro)q(cess)h fn(La)o(y)o(er)37 962 y fg(Domain)
p fn(,)e(eac)o(h)g(section)g(o)q(ccup)o(ying)h(a)f(separate)g fg(Memo)o(ryObj\
ect)p fn(.)19 b fg(addArguments\(\))c fn(copies)g fg(a)o(rgv)e fn(in)o(to)g
(the)37 1046 y(new)j fg(Domain)p fn(.)k(Figure)15 b(5.9)g(sho)o(ws)g(ho)o(w)g
(one)h(ma)o(y)e(call)h(the)g fg(Domain)g fn(La)o(y)o(er)g(to)g(dispatc)o(h)g
(an)h(application)37 1131 y(program.)i(The)e(program)d(in)i(the)g(\014gure)g
(is)g(functionally)f(iden)o(tical)g(to)h(the)g(program)e(in)i(Figure)g(5.7.)
108 1216 y(The)h(routines)f(in)h(the)g fg(Memo)o(ryObject)g fn(La)o(y)o(er,)f
(the)h(b)q(ottom)e(la)o(y)o(er,)g(o\013er)i(ev)o(en)g(greater)f(\015exibilit)
o(y)f(to)37 1300 y(the)e(application)f(programm)o(er)e(\(see)j(Figure)e(5.10\
\).)18 b(The)11 b(programmer)e(has)i(access)h(to)f(the)h(text,)f(data)g(and)
37 1385 y(BSS)16 b fg(Memo)o(ryObjects)g fn(that)f(are)f(loaded)h(from)f(the)
h(executable)h(\014le)f(and)h(are)f(added)g(to)g(the)g(Application)37 1470 y
fg(Domain)p fn(.)31 b(Shared)19 b(libraries)f(ma)o(y)f(b)q(e)j(implemen)o(ted)
d(with)h(these)i(routines,)f(for)f(instance.)31 b(The)20 b(MGR)37 1555 y(wind\
o)o(wing)15 b(system)f(uses)i(these)g(routines)f(to)g(ensure)h(that)f(ev)o
(ery)g(in)o(v)o(o)q(cation)f(of)h(Cho)q(cs,)h(the)g(command)37 1639 y(shell,)
21 b(reuses)f(the)g(same)e fg(Memo)o(ryObject)i fn(that)f(con)o(tains)g(the)h
(text)f(section)h(of)f(the)h(Cho)q(cs)g(executable)37 1724 y(\014le.)g(That)
13 b(w)o(a)o(y)l(,)f(no)i(additional)e(ph)o(ysical)g(memory)f(is)i(required)h
(for)f(holding)g(the)g(text)g(section)g(whenev)o(er)37 1809 y(Cho)q(cs)h(is)f
(in)o(v)o(ok)o(ed.)19 b(The)14 b(function)f(in)h(Figure)f(5.11)f(creates)h
(a)h(new)f(Application)g fg(Domain)g fn(and)g(initializes)37 1893 y(it)i(with)
f(the)i(text,)e(data)h(and)g(BSS)h(sections)f(from)e(an)i(executable)h(\014le\
.)37 2044 y ff(5.4.2)56 b(Application)21 b(Dispatc)n(her)e(Implemen)n(tation)
37 2158 y fn(The)k(application)d(dispatc)o(her)i(library)e(is)i(implemen)o
(ted)d(in)j(a)f(la)o(y)o(ered)g(manner,)i(with)e(routines)g(in)h(a)37 2243 y
(la)o(y)o(er)d(calling)g(routines)h(in)g(the)g(next)h(lo)o(w)o(er)d(la)o(y)o
(er.)34 b(The)20 b(implemen)o(tatio)o(n)e(of)i fg(ApplicationDispatcher-)37
2327 y(::buildApplicationPro)q(cess\(\))k fn(is)d(similar)d(to)j(the)g(co)q
(de)h(in)f(Figure)g(5.9,)g(while)g(the)g(implemen)o(tatio)o(n)e(of)37 2412 y
fg(ApplicationDispatch)q(er::buildAp)q(plicationDomain\(\))f fn(is)e(similar)
e(to)h(Figure)h(5.11.)23 b fg(buildApplicationCom-)37 2497 y(p)q(onents\(\))
16 b fn(is)d(a)h(lo)o(w-lev)o(el)e(routine)h(that)g(reads)h(the)g(header)g
(of)f(the)h(executable)g(\014le)g(to)f(determine)g(the)g(\014le)941 2760 y
(104)g eop bop 196 590 a 1559 2 v 196 1934 a 2 1344 v 225 634 a fi(static)16 b
fg(DomainRef)e(ApplicationDispatcher)k(::)316 691 y(buildApplicationDomain)f
(\()p fi(const)e(c)o(har)g fl(\003)p fg(\014lename,)407 747 y(PFV)g(&entry)l
(,)h fi(in)o(t)f fg(&err\))339 853 y fn(Build)f(an)h(application)e fg(Domain)
g fn(from)g(the)i(\014le)f(with)g(the)h(sp)q(eci\014ed)h fg(\014le-)339 910 y
(name)21 b fn(and)h(return)g(the)g fg(Domain)p fn(.)39 b(A)22 b(new)h fg(Doma\
in)d fn(is)i(created,)h(the)339 966 y(executable)17 b(comp)q(onen)o(ts)e(\(i.\
e.)23 b(text,)17 b(data,)f(BSS\))g(are)h(read)f(from)f(the)339 1023 y(\014le)
f(and)g(added)g(to)g(the)g fg(Domain)f fn(b)q(efore)h(returning)f(the)h fg
(Domain)p fn(.)19 b fg(entry)339 1079 y fn(is)e(set)i(to)e(the)i(address)f
(where)h(execution)f(of)g(the)g(application)f(should)339 1136 y(b)q(egin.)i
(In)13 b(case)f(of)g(error,)f fg(err)h fn(will)f(b)q(e)i(set)f(to)f(an)h(erro\
r)g(co)q(de.)19 b(Otherwise)339 1192 y fg(err)11 b fn(will)g(b)q(e)i(set)g
(to)e(0.)19 b(The)13 b(\014le)f(can)h(either)f(b)q(e)h(an)f(executable)h(pro)
q(duced)339 1248 y(b)o(y)f(the)g(SP)l(AR)o(C)h(cross-compiler)e(or)g(b)o(y)i
(DJGPP)l(.)e(Note:)19 b(This)11 b(function)339 1305 y(returns)18 b(a)g fg(Dom\
ainRef)p fn(,)g(so)g(the)h(return)f(v)m(alue)h(m)o(ust)e(b)q(e)i(immediatel)o
(y)339 1361 y(assigned)14 b(to)h(a)g fg(DomainSta)o(r)f fn(b)q(efore)h(using)
g(the)g(return)h(v)m(alue.)225 1468 y fi(static)g(in)o(t)e fg(ApplicationDisp\
atcher)k(::)316 1524 y(buildApplicationComp)q(onent)q(s)g(\()p fi(const)d(c)o
(har)g fl(\003)p fg(\014lename,)407 1581 y(ApplicationComp)q(onents)j fl(\003)
p fg(comp)q(onents\))339 1687 y fn(Read)j(application)f(comp)q(onen)o(ts)h
(from)e(the)i(\014le)h(with)e(the)i(indicated)339 1743 y fg(\014lename)14 b fn
(and)g(write)f(them)h(in)o(to)f(the)h(structure)g(p)q(oin)o(ted)g(to)g(b)o
(y)g fg(comp)q(o-)339 1800 y(nents)p fn(.)22 b(Return)16 b(an)f(error)g(co)q
(de)h(in)f(case)h(of)f(error;)f(return)h(0)g(otherwise.)339 1856 y(All)h(\014\
elds)i(in)f(the)g(structure)g(will)f(b)q(e)i(set.)25 b(The)18 b(\014le)f(can)
h(either)e(b)q(e)i(an)339 1913 y(executable)11 b(pro)q(duced)g(b)o(y)g(the)g
(SP)l(AR)o(C)g(cross-compiler)d(or)i(b)o(y)h(DJGPP)l(.)1753 1934 y 2 1344 v
196 1936 a 1559 2 v 308 2013 a fi(Figure)16 b(5.8)p fn(:)k(Metho)q(ds)15 b
(of)g(class)f fg(ApplicationDispatche)q(r)q fn(:)22 b fg(Domain)14 b fn(La)o
(y)o(er)941 2760 y(105)g eop bop 196 408 a 1559 2 v 196 2116 a 2 1708 v 316
455 a fk(//)46 b(Initialize)21 b(the)i(ar)n(guments)f(for)h(the)g(new)g(pr)n
(o)n(c)n(ess.)316 511 y fi(const)15 b fg(a)o(rgc)g(=)g(2;)316 568 y fi(c)o
(har)g fl(\003\003)p fg(a)o(rgv)e([a)o(rgc])i(=)g fl(f)g fh("hello")p fg(,)f
fh("lup")g fl(g)p fg(;)316 624 y fi(in)o(t)g fg(err)h(=)g(0;)316 681 y fk(//)
46 b(This)22 b(wil)r(l)g(b)n(e)g(use)n(d)h(to)g(stor)n(e)f(the)h(entry)g(p)n
(oint)f(of)316 737 y(//)46 b(the)23 b(new)f(pr)n(o)n(c)n(ess.)316 793 y fg
(PFV)15 b(entry;)316 906 y fk(//)46 b(Build)23 b(an)f(applic)n(ation)h(domain)
g(fr)n(om)g(the)g(exe)n(cutable)316 963 y(//)46 b(\014le)22 b("hel)r(lo".)46 b
(entry)22 b(wil)r(l)h(b)n(e)f(set)g(to)h(the)g(entry)316 1019 y(//)46 b(p)n
(oint)22 b(of)h(the)g(new)g(pr)n(o)n(c)n(ess.)316 1076 y fg(DomainSta)o(r)14 b
(newDomain)g(=)i(ApplicationDispatcher)i(::)407 1132 y(buildApplicationDomain)
f(\()p fh("hello")p fg(,)c(entry)l(,)j(err\);)316 1189 y(Assert)g(\(err)e(==)
i(0\);)316 1302 y fk(//)46 b(A)n(dd)22 b(the)h(ar)n(guments)g(in)f(ar)n(gv)h
(to)g(the)g(domain,)g(and)316 1358 y(//)46 b(r)n(ememb)n(er)22 b(the)h(lo)n
(c)n(ation)f(wher)n(e)h(ar)n(gv)g(was)f(adde)n(d.)316 1414 y fi(c)o(har)15 b
fl(\003\003)p fg(newArgv)g(=)g(ApplicationDispatcher)j(::)i(addArguments)407
1471 y(\(newDomain,)14 b(a)o(rgc,)g(a)o(rgv,)f(err\);)316 1527 y(Assert)j(\(e\
rr)e(==)i(0\);)316 1584 y fk(//)46 b(A)o(t)22 b(this)h(p)n(oint,)f(the)h(pr)n
(o)n(gr)n(ammer)g(may)h(mo)n(dify)f(newDomain)316 1640 y(//)46 b(if)22 b(desi\
r)n(e)n(d.)316 1753 y(//)46 b(Cr)n(e)n(ate)22 b(an)g(applic)n(ation)h(pr)n
(o)n(c)n(ess)e(with)i(the)g(domain)316 1810 y(//)46 b(that)23 b(we)g(pr)n(evi\
ously)g(built.)316 1866 y fg(Pro)q(cessSta)o(r)16 b(newPro)q(cess)g(=)g fi
(new)f fg(ApplicationPro)q(cess)i(\(entry)l(,)407 1923 y(newDomain,)d(a)o(rgc\
,)g(\()p fi(in)o(t)p fg(\))g(newArgv\);)316 1979 y(Assert)i(\(newPro)q(cess)h
fl(6)p fn(=)e fg(0\);)316 2035 y fk(//)46 b(R)o(un)22 b(the)h(new)g(pr)n(o)n
(c)n(ess)e(c)n(oncurr)n(ently.)316 2092 y fg(newPro)q(cess)c fl(!)e fg(ready)
g(\(\);)1753 2116 y 2 1708 v 196 2118 a 1559 2 v 215 2195 a fi(Figure)i(5.9)p
fn(:)i(Dispatc)o(hing)14 b(an)h(application)f(program)f(through)i(the)g fg
(Domain)f fn(La)o(y)o(er)941 2760 y(106)g eop bop 196 448 a 1559 2 v 196 2076
a 2 1629 v 225 492 a fi(static)16 b(in)o(t)e fg(ApplicationDispatcher)k(::)
316 548 y(addApplicationComp)q(onents)h(\(ApplicationComp)q(onents)407 605 y
fl(\003)p fg(comp)q(onents,)d(Domain)e fl(\003)p fg(applicationDomain\))339
711 y fn(Insert)i(the)g(text,)g(data)f(and)i(bss)f(comp)q(onen)o(ts)f(sp)q
(eci\014ed)i(in)f(the)g(struc-)339 767 y(ture)h(p)q(oin)o(ted)h(to)f(b)o(y)h
fg(comp)q(onents)h fn(in)o(to)e(the)h(sp)q(eci\014ed)h fg(applicationDo-)339
824 y(main)p fn(.)f(The)12 b(comp)q(onen)o(ts)g(are)g(inserted)g(in)g(the)h fg
(Domain)e fn(at)g(appropriate)339 880 y(addresses)j(suitable)g(for)g(executio\
n.)19 b(Return)c(an)g(error)e(co)q(de)i(in)f(case)h(of)339 937 y(error;)f(ret\
urn)h(0)g(otherwise.)225 1043 y fi(static)h(c)o(har)e fl(\003\003)p fg(Applic\
ationDispatcher)k(::)316 1099 y(addArguments)f(\(Domain)c fl(\003)p fg(applic\
ationDomain,)i fi(in)o(t)f fg(a)o(rgc,)407 1156 y fi(c)o(har)h fl(\003\003)p
fg(a)o(rgv,)e fi(in)o(t)h fg(&err\))339 1262 y fn(Add)30 b(the)g(n)o(ull-term\
inated)d(strings)i fg(a)o(rgv[0])f fn(through)h fg(a)o(rgv[a)o(rgc-1])339 1319
y fn(to)23 b(the)i(sp)q(eci\014ed)g fg(applicationDomain)p fn(,)h(and)e(add)h
(an)f(arra)o(y)f(\(call)g(it)339 1375 y fg(newArgv)p fn(\))g(to)f(the)h(same)
f fg(Domain)g fn(that)h(sp)q(eci\014es)g(the)h(addresses)f(at)339 1431 y(whic)
o(h)e(eac)o(h)g(of)g(the)h(strings)e(w)o(ere)h(added.)40 b(Return)22 b(the)f
(address)h(of)339 1488 y fg(newArgv)13 b fn(in)f(that)g fg(Domain)p fn(.)18 b
(Once)c(again:)k(supp)q(ose)13 b(the)g(strings)f fg(a)o(rgv[0])339 1544 y fn
(through)17 b fg(a)o(rgv[a)o(rgc-1])g fn(w)o(ere)g(added)i(to)f(the)g fg(Doma\
in)f fn(at)g(addresses)i fg(a1)339 1601 y fn(through)d fg(aN)p fn(,)f(resp)q
(ectiv)o(ely)l(.)23 b(Then)17 b(w)o(e)f(construct)g(the)g fg(newArgv)h fn(arr\
a)o(y)339 1657 y(so)c(that)g fg(newArgv[1]=a1)p fn(,)h fg(newArgv[2]=a2)p fn
(,)g(...,)f fg(newArgv[N]=aN)p fn(.)h(The)339 1714 y fg(newArgv)19 b fn(arra)
o(y)f(is)g(added)i(to)e(the)h fg(Domain)p fn(,)g(and)g(w)o(e)g(return)g(the)g
(vir-)339 1770 y(tual)13 b(address)h(in)g(the)g fg(Domain)f fn(at)h(whic)o
(h)g fg(newArgv)g fn(w)o(as)g(added.)20 b(Set)14 b fg(err)339 1827 y fn(to)k
(an)h(error)f(co)q(de)i(in)f(case)g(of)f(error;)i(set)f fg(err)f fn(to)h(0)g
(otherwise.)30 b(\(And)339 1883 y(if)16 b(y)o(ou)g(think)h(hard)g(enough,)g
(y)o(ou)f(will)g(understand)h(that)f(the)h(address)339 1940 y(returned)g(b)o
(y)g(this)f(metho)q(d)h(is)f(really)g(the)h fg(a)o(rgv)f fn(v)m(alue)h(that)g
(should)g(b)q(e)339 1996 y(passed)e(to)g(the)h fg(main\(\))e fn(function)h
(of)g(the)h fg(Pro)q(cess)g fn(that)f(will)f(run)i(in)f fg(ap-)339 2052 y(pli\
cationDomain)p fn(.\))1753 2076 y 2 1629 v 196 2078 a 1559 2 v 229 2155 a fi
(Figure)h(5.10)p fn(:)k(Metho)q(ds)15 b(of)g(class)f fg(ApplicationDispatche)
q(r)q fn(:)22 b fg(Memo)o(ryObject)15 b fn(La)o(y)o(er)941 2760 y(107)g eop
bop 196 493 a 1559 2 v 196 2031 a 2 1539 v 316 539 a fg(DomainRef)14 b(buildA\
pplicationDomain)j(\()p fi(const)e(c)o(har)g fl(\003)p fg(\014lename,)407 596
y(PFV)g(&entry)l(,)h fi(in)o(t)f fg(&err\))316 652 y fl(f)407 709 y fk(//)46 b
(Build)23 b(an)f(applic)n(ation)h(domain)g(fr)n(om)g(the)g(sp)n(e)n(ci\014e)n
(d)407 765 y(//)46 b(exe)n(cutable)22 b(\014le.)45 b(R)n(eturn)22 b(the)h(app\
lic)n(ation)-5 b('s)23 b(entry)407 822 y(//)46 b(addr)n(ess)22 b(in)g(entry.)
46 b(R)n(eturn)22 b(0)h(if)g(err)n(or.)407 878 y fg(err)14 b(=)i(0;)407 935 y
fk(//)46 b(Make)22 b(a)h(new)g(applic)n(ation)f(domain.)407 991 y fg(DomainSt\
a)o(r)14 b(domain)g(=)i(Standa)o(rdSystemInterface)h fl(!)498 1048 y fg(newAp\
plicationDomain)f(\(\);)407 1104 y fi(if)e fg(\(domain)h(==)h(0\))e fl(f)h fg
(err)g(=)g(CannotCreateDomain;)g fi(return)f fg(0;)h fl(g)407 1217 y fg(Appli\
cationComp)q(onents)j(comp)q(onents;)407 1273 y fk(//)46 b(R)n(e)n(ad)22 b
(the)h(c)n(omp)n(onents)f(\(e.g.)g(text,)h(data,)g(BSS)f(se)n(ctions\))407
1330 y(//)46 b(of)23 b(the)g(exe)n(cutable)f(\014le.)407 1386 y fg(err)14 b
(=)i(buildApplicationComp)q(onents)j(\(\014lename,)14 b(&comp)q(onents\);)407
1443 y fi(if)g fg(\(err)h fl(6)p fn(=)g fg(0\))g fi(return)f fg(0;)407 1499 y
fk(//)46 b(A)o(t)22 b(this)h(p)n(oint,)f(the)h(pr)n(o)n(gr)n(ammer)g(may)g
(mo)n(dify)g(the)407 1556 y(//)46 b(Applic)n(ationComp)n(onents)21 b(b)n(efor)
n(e)h(adding)h(them)g(to)407 1612 y(//)46 b(the)23 b(domain.)407 1725 y(//)46
b(A)n(dd)22 b(the)h(c)n(omp)n(onents)f(to)h(the)g(domain.)407 1781 y fg(err)
14 b(=)i(addApplicationComp)q(onents)j(\(&comp)q(onents,)d(domain\);)407 1838
y fi(if)e fg(\(err)h fl(6)p fn(=)g fg(0\))g fi(return)f fg(0;)407 1894 y(entr\
y)i(=)f(comp)q(onents.entry;)407 1951 y fi(return)f fg(domain;)316 2007 y fl
(g)1753 2031 y 2 1539 v 196 2033 a 1559 2 v 151 2110 a fi(Figure)j(5.11)p fn
(:)i(Initializing)14 b(an)h(Application)f fg(Domain)g fn(through)h(the)g fg
(Memo)o(ryObject)g fn(La)o(y)o(er)941 2760 y(108)g eop bop 37 42 a fn(format,)
16 b(and)j(then)f(switc)o(hes)f(to)g(either)h fg(readEncapCOFFFile\(\))h fn
(or)e fg(readA)o(OutFile\(\))h fn(to)g(read)g(the)g(GNU)37 126 y(encapsulated)
e(COFF)f(\014le)g(or)g(GNU)g(a.out)f(\014le.)108 211 y(The)f fg(readEncapCOFF\
File\(\))g fn(and)g fg(readA)o(OutFile\(\))h fn(routines)e(create)g(new)h fg
(Memo)o(ryObjects)g fn(represen)o(t-)37 296 y(ing)18 b(eac)o(h)h(section)f
(and)g(load)g(the)g fg(Memo)o(ryObjects)g fn(with)g(the)g(section)g(data.)29 b
(The)18 b fg(Memo)o(ryObjects)h fn(are)37 380 y(created)13 b(b)o(y)g(calling)
f fg(SystemInterface::allo)q(cateApplicationMemo)o(ry\(\))p fn(.)18 b(In)c
(order)e(to)g(read)h(the)g(executable)37 465 y(\014le)i(in)o(to)e(a)h fg(Memo)
o(ryObject)p fn(,)h(the)f fg(Memo)o(ryObject)g fn(is)g(\014rst)g(added)h(to)f
(the)h fg(Domain)e fn(of)h(the)g(curren)o(t)h fg(Pro)q(cess)37 550 y fn(\(via)
g fg(Domain::add\(\))g fn(and)h fg(Domain::mak)o(eAddressable\(\))p fn(\).)k
(After)c(the)g fg(Memo)o(ryObject)f fn(has)h(b)q(een)h(added,)37 634 y(the)g
(\014le)f(ma)o(y)e(b)q(e)i(read)g(in)o(to)f(the)h(virtual)f(memory)e(region)j
(o)q(ccupied)h(b)o(y)e(the)i fg(Memo)o(ryObject)p fn(.)22 b(The)16 b(BSS)37
719 y(section)k(is)g(not)f(read)h(from)e(the)j(\014le.)34 b(Instead,)21 b fg
(ZeroBlo)q(ck\(\))e fn(is)h(called)f(to)h(write)f(zeros)h(in)o(to)f(the)h(BSS)
37 804 y(section.)108 888 y fg(ApplicationDispatcher::addAp)q(plicationComp)q
(onen)q(ts)q(\(\))12 b fn(simply)d(adds)h(the)g(text,)g(data)g(and)g(BSS)h fg
(Mem-)37 973 y(oryObjects)20 b fn(in)o(to)c(a)i fg(Domain)p fn(.)26 b(The)18 b
(text)g fg(Memo)o(ryObject)f fn(is)h(added)g(with)f(read-only)g(p)q(ermission\
,)g(while)37 1058 y(the)f(data)e(and)i(BSS)g fg(Memo)o(ryObjects)f fn(are)g
(added)h(with)e(read-write)h(p)q(ermission.)941 2760 y(109)g eop bop 37 405 a
fc(Chapter)35 b(6)37 675 y fb(Applications)1540 897 y fj(Y)l(ou)15 b(got)g
(the)g(bra)o(wn)1603 954 y(I)g(got)g(the)g(brains)1414 1010 y(Let's)g(mak)o
(e)f(lots)g(of)g(money)996 1066 y(|)i(\\Opp)q(ortunities)f(\(let's)e(mak)o
(e)h(lots)g(of)h(money\)")108 1151 y fn(Sev)o(eral)20 b(applications)f(ha)o
(v)o(e)h(b)q(een)i(dev)o(elop)q(ed)f(for)f(the)h(PC-Choices)f(op)q(erating)f
(system.)35 b(Among)37 1236 y(the)16 b(applications)f(discussed)h(in)g(this)f
(c)o(hapter)h(are)f(Cho)q(cs,)h(a)g(command)e(shell,)h(and)h(MGR,)f(a)h(graph\
ical)37 1320 y(windo)o(wing)f(system.)37 1501 y fd(6.1)70 b(Cho)r(cs)37 1631 y
fn(Cho)q(cs)23 b(\(Choices)f(Command)e(Shell\))i(is)g(a)g(command-line)f(in)o
(terpreter)g(for)h(dispatc)o(hing)g(application)37 1715 y(programs.)17 b(The)
11 b(PC-Choices)g(k)o(ernel)g(runs)g(Cho)q(cs)h(after)e(b)q(o)q(oting.)18 b
(The)12 b(Cho)q(cs)f(user)g(in)o(terface)g(resem)o(bles)37 1800 y(the)g(Unix)
g(Bourne)g(Shell,)g(but)f(only)h(a)f(small)e(subset)j(of)f(the)h(features)f
(in)g(the)h(Bourne)g(Shell)g(is)f(implemen)o(ted)37 1885 y(in)16 b(Cho)q(cs.)
k(The)15 b(list)f(b)q(elo)o(w)h(highligh)o(ts)e(the)j(Bourne)f(Shell)g(featur\
es)g(that)g(are)g(a)o(v)m(ailable)e(in)i(Cho)q(cs.)106 2019 y fl(\017)22 b fn
(The)15 b(user)f(executes)i(a)e(program)e(b)o(y)i(t)o(yping)g(the)h(name)e
(of)h(the)h(program.)i(The)e(argumen)o(ts)e(for)g(the)151 2104 y(program)g
(are)i(sp)q(eci\014ed)h(on)g(the)f(same)f(command)f(line)i(after)f(the)h(prog\
ram)e(name.)106 2226 y fl(\017)22 b fn(The)16 b(user)g(ma)o(y)e(execute)j(a)e
(program)f(in)i(the)g(bac)o(kground)g(b)o(y)f(t)o(yping)g(\\&")h(as)f(the)h
(last)f(c)o(haracter)151 2311 y(in)e(the)g(command)e(line.)19 b(This)13 b(mea\
ns)f(that)g(the)h(shell)g(will)e(not)i(w)o(ait)f(for)g(the)h(program)e(to)i
(complete)151 2395 y(its)i(execution)g(b)q(efore)g(prompting)f(the)h(user)g
(again.)106 2517 y fl(\017)22 b fn(A)e(v)m(ariable)f(named)g(\\P)l(A)l(TH")h
(con)o(tains)f(a)h(list)e(of)i(pathnames)e(that)h(are)h(prep)q(ended,)j(one)d
(at)f(a)151 2602 y(time,)12 b(to)i(the)g(user-sp)q(eci\014ed)h(program)d(name)
h(to)h(determine)f(the)h(lo)q(cation)f(of)g(the)h(executable)h(\014le.)941
2760 y(110)g eop bop 106 42 a fl(\017)22 b fn(The)c(\\P)l(A)l(TH")g(v)m(ariab\
le)f(is)h(set)f(with)h(the)g(command)e(\\P)l(A)l(TH=)p fk(p)n(ath)p fn(")i
(where)g fk(p)n(ath)h fn(is)e(the)h(list)f(of)151 126 y(pathnames.)25 b(Ho)o
(w)o(ev)o(er,)17 b(unlik)o(e)g(the)g(Bourne)h(Shell,)g(Cho)q(cs)f(uses)h(\\;")
f(instead)g(of)g(\\:")24 b(to)17 b(delimit)151 211 y(the)e(pathnames.)106 326
y fl(\017)22 b fn(The)16 b(\\set")e(command)f(displa)o(ys)h(the)i(v)m(alue)f
(of)g(the)g(\\P)l(A)l(TH")g(v)m(ariable.)106 441 y fl(\017)22 b fn(While)16 b
(starting)f(up,)h(Cho)q(cs)h(executes)g(the)f(commands)e(in)i(the)h(\014le)f
(named)g(\\pro\014le")f(\(instead)h(of)151 526 y(\\.pro\014le",)e(used)i(b)o
(y)f(the)g(Bourne)h(Shell\))e(lo)q(cated)h(in)g(the)h(curren)o(t)f(directory)
l(.)106 641 y fl(\017)22 b fn(Command)13 b(lines)i(b)q(eginning)g(with)f(\\#")
h(are)g(ignored.)108 751 y(Cho)q(cs)i(allo)o(ws)d(the)i(user)h(to)f(redirect)
g(the)g(terminal)e(input/output)i(from)f(an)h(application)f(program.)37 836 y
(The)e(\\)p fm(<)p fn(")f(and)g(\\)p fm(>)p fn(")g(op)q(erators)f(sp)q(ecify)
h(the)h fg(Bo)o(xes)f fn(to)f(whic)o(h)h(the)h(terminal)c(input)k(and)f(outpu\
t)g(should)g(b)q(e)37 921 y(redirected)g(\(see)g(Section)f(5.2.3\).)17 b(The)
11 b(argumen)o(t)f(for)h(the)h(redirection)e(op)q(erators)h(is)g(the)h(name)e
(of)h(the)h fg(Bo)o(x)37 1005 y fn(in)j(the)g fg(Standa)o(rdNameServer)q fn
(.)20 b(F)l(or)14 b(example,)f(the)i(command)e(line)h(\\pulp)h fm(<)p fn(Seri\
alP)o(ortT)l(erminalInput1)37 1090 y fm(>)p fn(SerialP)o(ortT)l(erminalOutput\
2")e(causes)j(Cho)q(cs)h(to)e(fetc)o(h)h(the)g fg(Bo)o(xes)g fn(named)g(\\Ser\
ialP)o(ortT)l(erm)o(inalIn-)37 1175 y(put1")e(and)g(\\SerialP)o(ortT)l(ermi)o
(nalOutput1")d(from)h(the)i fg(Standa)o(rdNameServer)g fn(and)g(execute)h(the)
f(\\pulp")37 1259 y(program)i(using)i(the)g(\014rst)f fg(Bo)o(x)g fn(to)h(han\
dle)g(terminal)d(input)j(and)g(the)g(second)g fg(Bo)o(x)g fn(to)f(handle)h
(terminal)37 1344 y(output.)i(The)c(usage)f(of)f(terminal)f(redirection)i(is)
g(di\013eren)o(t)f(from)f(the)j(Bourne)f(Shell.)37 1521 y fd(6.2)70 b(Utiliti\
es)37 1651 y fn(Sev)o(eral)15 b(Unix-lik)o(e)g(\014le)g(utilities)e(ha)o(v)o
(e)i(b)q(een)h(dev)o(elop)q(ed)g(for)f(PC-Choices:)106 1761 y fl(\017)22 b fn
(ls:)e(List)14 b(the)i(\014les)f(in)g(the)g(curren)o(t)g(directory)l(.)106
1876 y fl(\017)22 b fn(cd:)30 b(Change)20 b(the)g(curren)o(t)g(directory)f
(to)h(a)f(di\013eren)o(t)h(one.)34 b(If)20 b(no)g(argumen)o(ts)f(are)g(sp)q
(eci\014ed,)j(it)151 1961 y(prin)o(ts)15 b(the)g(name)f(of)h(the)g(curren)o
(t)g(directory)l(.)106 2076 y fl(\017)22 b fn(cat:)e(Displa)o(y)13 b(the)j
(con)o(ten)o(ts)e(of)h(a)g(\014le.)108 2187 y(A)d(utilit)o(y)d(named)i(dos)g
(w)o(as)g(pro)o(vided)g(to)g(let)g(user)h(run)f(the)h(DOS)g(command)d(shell)i
(under)h(PC-Choices.)37 2271 y(Ordinary)18 b(DOS)g(programs)d(ma)o(y)h(b)q
(e)i(executed)g(from)e(the)h(command)f(shell)h(while)g(PC-Choices)g(is)g(run-)
37 2356 y(ning,)e(but)g(b)q(ecause)h(DOS)f(is)g(non-reen)o(tran)o(t,)f(all)f
(PC-Choices)i(requiring)f(DOS)h(services)g(are)g(susp)q(ended)37 2441 y(whene\
v)o(er)h(a)f(DOS)g(program)f(is)g(running.)108 2525 y(PC-Choices)k(comes)f
(with)g(a)g(few)h(other)g(sample)e(programs.)26 b(Please)18 b(refer)g(to)f
(the)h(do)q(cumen)o(tation)37 2610 y(that)d(accompanies)f(the)h(PC-Choices)g
(binary)g(distribution)f(for)g(further)h(information.)941 2760 y(111)g eop bop
37 42 a fd(6.3)70 b(MGR)37 171 y fn(MGR[43)o(])22 b(is)f(a)h(graphical)f(wind\
o)o(wing)g(system)f(for)h(w)o(orkstations.)38 b(It)22 b(o\013ers)f(rudimen)o
(tary)f(windo)o(w)37 256 y(managemen)o(t)g(and)i(dra)o(wing)e(functions.)40 b
(Clien)o(t)21 b(programs)e(comm)o(unicate)h(with)h(MGR)g(to)h(p)q(erform)37
341 y(windo)o(wing)14 b(and)h(dra)o(wing)e(functions)i(b)o(y)f(writing)g(comm\
and)e(strings)i(to)g(their)g(terminal)e(output.)20 b(MGR)37 425 y(w)o(as)13 b
(originally)e(dev)o(elop)q(ed)j(for)f(Unix-based)h(Sun)g(w)o(orkstations)d
(and)i(w)o(as)g(later)f(p)q(orted)i(to)e(sev)o(eral)h(other)37 510 y(t)o(yp)q
(es)20 b(of)g(w)o(orkstations)d(and)k(op)q(erating)e(systems,)g(including)h
(the)g(Commo)q(dore)d(Amiga)h(\(AmigaOS\),)37 595 y(IBM)e(PC)e(\(Minix)g(and)
h(Xenix\))g(and)g(Apple)h(Macin)o(tosh)d(\(MacOS\).)h(This)h(section)g(discus\
ses)g(m)o(y)e(p)q(ort)i(of)37 679 y(MGR)g(for)g(PC-Choices.)108 764 y(Since)
21 b(MGR)e(w)o(as)g(programmed)f(with)h(the)h(Unix)g(application)e(programmin\
g)f(in)o(terface,)j(an)g(easy)37 849 y(approac)o(h)d(to)f(p)q(orting)g(the)g
(program)f(to)h(PC-Choices)g(w)o(ould)g(b)q(e)h(to)f(write)g(a)g(PC-Choices)h
(library)e(that)37 933 y(pro)o(vides)f(the)h(Unix)f(application)g(programm)o
(ing)d(in)o(terface.)19 b(This)14 b(means)g(writing)f(C)h(functions)g(to)g
(em)o(u-)37 1018 y(late)h(Unix)h(functions)f(b)o(y)g(calling)f(the)i(PC-Choic\
es)f(application)f(programming)e(in)o(terface.)20 b(I)c(dev)o(elop)q(ed)37
1103 y(suc)o(h)f(a)e(library)g(and)h(used)h(it)e(in)g(the)h(MGR)g(p)q(ort.)19
b(My)14 b(library)e(pro)o(vides)i(most)e(of)h(the)h(Unix)g(stdio,)f(stdlib)37
1187 y(and)j(\014le)f(descriptor)g(functions.)108 1272 y(Imp)q(ortan)o(t)h
(p)q(ortions)i(of)f(the)h(MGR)g(system)e(had)j(to)e(b)q(e)h(rewritten)f(in)h
(order)g(to)f(run)i(the)f(program)37 1357 y(under)j(PC-Choices.)34 b(These)21
b(p)q(ortions)e(of)g(co)q(de)i(w)o(ere)f(mainly)e(concerned)j(with)e(access)h
(to)g(the)g(video)37 1441 y(displa)o(y)l(,)15 b(the)g(k)o(eyb)q(oard)h(and)f
(the)h(mouse.)j(The)c(part)g(of)g(MGR)g(that)g(dealt)g(with)f(pseudo-terminal\
s)g(had)37 1526 y(to)j(b)q(e)g(rewritten)f(as)g(w)o(ell)g(|)h(m)o(y)e(Unix)i
(library)e(do)q(es)i(not)f(handle)h(suc)o(h)g(devices.)25 b(F)l(or)16 b(ev)o
(en)o(t-handling,)37 1611 y(MGR)i(used)h(the)f fg(select\(\))h fn(Unix)f(syst\
em)f(call)g(to)g(read)h(from)f(m)o(ultiple)f(devices)i(and)g(to)g(p)q(oll)f
(for)h(input.)37 1695 y(PC-Choices)f(do)q(es)h(not)f(pro)o(vide)g(an)g(equiv)
m(alen)o(t)g(function,)g(so)g(I)g(implemen)o(ted)e(ev)o(en)o(t-handling)i(wit\
h)g(a)37 1780 y(di\013eren)o(t)10 b(strategy:)16 b(use)11 b(separate)f(ligh)o
(t)o(w)o(eigh)o(t)d(pro)q(cesses)k(to)e(manage)g(eac)o(h)i(device)f(and)h(let)
f(the)g(pro)q(cesses)37 1865 y(notify)15 b(the)g(ev)o(en)o(t)g(handler)g(of)g
(ev)o(en)o(ts)g(b)o(y)g(sending)g(messages)f(\(see)h(Figure)g(6.1\).)108 1950
y(The)h(MGR)e(ev)o(en)o(t)h(serv)o(er)g(is)g(a)g(pro)q(cess)g(that)g(tak)o
(es)f(care)h(of)g(the)g(follo)o(wing)e(t)o(yp)q(es)i(of)g(ev)o(en)o(ts:)106
2084 y fl(\017)22 b fn(Keyb)q(oard)15 b(ev)o(en)o(ts)f(\(i.e.)k(k)o(eypresses\
\):)h(The)c(ev)o(en)o(t)f(serv)o(er)f(enqueues)j(the)e(k)o(eypress)g(in)o(to)
f(the)h(input)151 2169 y(bu\013er)h(that)g(b)q(elongs)g(to)f(the)i(windo)o
(w)e(that)h(is)f(curren)o(tly)h(highligh)o(ted.)106 2291 y fl(\017)22 b fn
(Mouse)c(ev)o(en)o(ts)g(\(i.e.)28 b(mouse)17 b(mo)o(v)o(emen)o(t,)f(mouse)h
(button)h(pressing)g(and)h(releasing\):)24 b(The)19 b(ev)o(en)o(t)151 2375 y
(serv)o(er)c(up)q(dates)h(the)f(lo)q(cation)f(of)h(the)g(mouse)f(p)q(oin)o
(ter.)106 2497 y fl(\017)22 b fn(T)l(erminal)16 b(input)i(requests)g(from)e
(clien)o(t)h(programs:)23 b(The)18 b(ev)o(en)o(t)g(serv)o(er)f(passes)h(c)o
(haracters)f(from)151 2582 y(the)e(clien)o(t)g(program's)e(input)i(bu\013er)g
(to)f(the)i(clien)o(t)e(program.)941 2760 y(112)g eop bop 195 652 a
24628688 18945146 855162 14011514 38087639 42560798 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Times-Roman
%%Pages: 1
%%BoundingBox: 13 213 579 647
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Times-Roman reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.996555 0 0 0.996555 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.486367 3.88387e-24 -3.88387e-24 0.486367 171.703 263.84 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I
57 145 154 274 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I 3
169 341
249 341
249 226
3 MLine
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 284 296 418 Line
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 26 296 189 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I 4
98 242
224 402
253 402
128 242
4 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I
239 32 373 255 Line
%I 4
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.486367 3.88387e-24 -3.88387e-24 0.486367 171.703 24.84 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I
57 145 154 274 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I 3
169 341
249 341
249 226
3 MLine
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 284 296 418 Line
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 26 296 189 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I 4
98 242
224 402
253 402
128 242
4 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I
239 32 373 255 Line
%I 4
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.486367 3.88387e-24 -3.88387e-24 0.486367 61.703 75.84 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I
57 145 154 274 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I 3
169 341
249 341
249 226
3 MLine
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 284 296 418 Line
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 26 296 189 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I 4
98 242
224 402
253 402
128 242
4 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I
239 32 373 255 Line
%I 4
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.486367 3.88387e-24 -3.88387e-24 0.486367 61.703 25.84 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I
57 145 154 274 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I 3
169 341
249 341
249 226
3 MLine
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 284 296 418 Line
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 26 296 189 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I 4
98 242
224 402
253 402
128 242
4 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I
239 32 373 255 Line
%I 4
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.486367 3.88387e-24 -3.88387e-24 0.486367 61.703 -24.16 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I
57 145 154 274 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 9.18455e-17 0.5 0.5 -9.18455e-17 141.5 465.5 ] concat
%I 3
169 341
249 341
249 226
3 MLine
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 284 296 418 Line
%I 4
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 4.59227e-17 0.25 0.25 -4.59227e-17 207.5 516 ] concat
%I
107 26 296 189 Line
%I 4
End

Begin %I Poly
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I 4
98 242
224 402
253 402
128 242
4 Poly
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.25 -0 -0 0.25 218.75 486.5 ] concat
%I
239 32 373 255 Line
%I 4
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 38.987 503.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 39.987 393.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 366.987 208.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.207946 -2.95652e-25 2.95652e-25 0.207946 455.987 443.076 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 7
167 409
133 407
88 368
172 352
251 374
161 390
118 367
7 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 3
213 365
165 374
129 363
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 104 132 ] concat
%I 8
168 425
122 423
61 362
178 328
286 375
173 405
131 392
108 378
8 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 132 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 264 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 102.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 234.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 73 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 205 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 43.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 175.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 14 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 146 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -15.5 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 116.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
93 361
81 331
164 297
264 337
236 356
5 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 0 0 1 104 -45 ] concat
%I 5
109 351
102 343
161 323
234 341
216 348
5 BSpl
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 87 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
25 436 14 426 Line
%I 2
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 205 57.5 ] concat
%I
57 423 41 411 Line
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
41 358
15 308
113 257
178 254
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.5 0 0 0.5 177.5 107.5 ] concat
%I 4
71 337
59 323
124 299
178 294
4 BSpl
%I 2
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.53916 -0 -0 0.499646 173.774 72.1359 ] concat
%I
171 345 12 20 Elli
End

Begin %I Elli
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.439315 -0 -0 0.407119 196.597 408.558 ] concat
%I
171 345 12 20 Elli
End

End %I eop

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.607959 2.11076e-23 -2.11076e-23 0.607959 -109.385 17.273 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.274602 -0.112821 0.112821 0.274602 289.768 574.238 ] concat
%I 3
74 160
208 86
343 160
3 MLine
%I 2
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.607959 2.11076e-23 -2.11076e-23 0.607959 150.615 -27.727 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.274602 -0.112821 0.112821 0.274602 289.768 574.238 ] concat
%I 3
74 160
208 86
343 160
3 MLine
%I 2
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.607959 2.11076e-23 -2.11076e-23 0.607959 242.615 77.273 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.274602 -0.112821 0.112821 0.274602 289.768 574.238 ] concat
%I 3
74 160
208 86
343 160
3 MLine
%I 2
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.607959 2.11076e-23 -2.11076e-23 0.607959 -33.385 267.273 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.274602 -0.112821 0.112821 0.274602 289.768 574.238 ] concat
%I 3
74 160
208 86
343 160
3 MLine
%I 2
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.607959 2.11076e-23 -2.11076e-23 0.607959 40.615 4.27299 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.274602 -0.112821 0.112821 0.274602 289.768 574.238 ] concat
%I 3
74 160
208 86
343 160
3 MLine
%I 2
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.607959 2.11076e-23 -2.11076e-23 0.607959 186.615 204.273 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.274602 -0.112821 0.112821 0.274602 289.768 574.238 ] concat
%I 3
74 160
208 86
343 160
3 MLine
%I 2
End

End %I eop

Begin %I Line
%I b 65535
2 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 35 132 ] concat
%I
25 201 124 201 Line
%I 1
End

Begin %I Line
%I b 65535
2 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 35 132 ] concat
%I
294 154 366 154 Line
%I 1
End

Begin %I BSpl
%I b 65535
2 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 35 132 ] concat
%I 3
180 201
215 201
248 175
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
2 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 35 132 ] concat
%I 3
86 454
224 454
249 424
3 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
2 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 35 132 ] concat
%I 3
89 345
197 345
235 378
3 BSpl
%I 1
End

Begin %I Line
%I b 65535
2 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 35 132 ] concat
%I
291 390 455 390 Line
%I 1
End

Begin %I BSpl
%I b 65535
2 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1 -0 -0 1 35 132 ] concat
%I 3
388 203
388 328
285 378
3 BSpl
%I 1
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.607959 2.11076e-23 -2.11076e-23 0.607959 -33.385 163.273 ] concat

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg White
1 1 1 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I Rect
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.549204 -0.225642 0.225642 0.549204 168.267 539.426 ] concat
%I
203 136 340 213 Rect
End

Begin %I MLine
%I b 65535
1 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 0.274602 -0.112821 0.112821 0.274602 289.768 574.238 ] concat
%I 3
74 160
208 86
343 160
3 MLine
%I 2
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 16 597 ] concat
%I
[
(Keyboard)
(Server)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 17 487 ] concat
%I
[
(Mouse)
(Server)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 452 302 ] concat
%I
[
(Terminal)
(Server)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 19 342 ] concat
%I
[
(Client)
(Program)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 495 596 ] concat
%I
[
(Event)
(Server)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 188 646 ] concat
%I
[
(Keyboard Event)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 189 541 ] concat
%I
[
(Mouse Event)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 407 582 ] concat
%I
[
(Event)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 103 413 ] concat
%I
[
(Terminal Input/Output)
(Request)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 256 385 ] concat
%I
[
(Notify Message)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 452 472 ] concat
%I
[
(Terminal Input/Output)
(Request)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-times-medium-r-normal-*-14-*-*-*-*-*-*-*
Times-Roman 14 SetF
%I t
[ 1 0 0 1 364 354 ] concat
%I
[
(Request)
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
594 1950 a fi(Figure)16 b(6.1)p fn(:)k(Handling)15 b(ev)o(en)o
(ts)f(in)h(MGR)941 2760 y(113)g eop bop 106 42 a fl(\017)22 b fn(T)l(erminal)
13 b(output)i(requests)g(from)e(clien)o(t)i(programs:)i(The)e(ev)o(en)o(t)g
(serv)o(er)g(up)q(dates)g(the)g(clien)o(t)g(pro-)151 126 y(gram's)f(windo)o
(w)h(if)g(the)h(output)g(is)g(plain)f(text,)g(or)h(p)q(erforms)e(a)i(particul\
ar)e(MGR)i(function)g(if)f(the)151 211 y(output)g(is)g(a)g(MGR)g(command)e
(string.)108 345 y(T)l(o)h(service)g(ev)o(en)o(ts)g(from)f(the)h(k)o(eyb)q
(oard,)g(a)g(ligh)o(t)o(w)o(eigh)o(t)e(pro)q(cess)i(con)o(tin)o(ually)f(calls)
g(a)h(BIOS)i(routine)37 430 y(to)g(w)o(ait)f(for)h(a)g(k)o(eypress)g(and)h
(send)g(informatio)o(n)d(ab)q(out)i(the)h(k)o(ey)f(pressed)h(to)e(the)i(ev)o
(en)o(t)f(serv)o(er)g(via)f(the)37 515 y(PC-Choices)f(IPC)g(system.)j(Mouse)d
(ev)o(en)o(ts)f(are)g(handled)i(similarl)o(y)c(b)o(y)j(a)f(di\013eren)o(t)g
(ligh)o(t)o(w)o(eigh)o(t)e(pro)q(cess.)37 599 y(The)19 b(mouse)f(serv)o(er)g
(pro)q(cess)h(uses)g(the)g(mouse)e(device)i(driv)o(er)f(and)h(its)f(adapter)g
(to)g(obtain)g(the)h(mouse)37 684 y(status.)g(The)c(mouse)e(serv)o(er)h(pro)q
(cess)h(switc)o(hes)e(from)g(in)o(terrupt-driv)o(en)h(mo)q(de)f(to)h(p)q(olli\
ng)f(mo)q(de)h(to)g(read)37 769 y(the)i(mouse)e(status)g(if)h(the)g(mouse)f
(has)h(b)q(ecome)g(particularly)f(busy)l(.)108 853 y(Eac)o(h)f(clien)o(t)g
(program)f(running)i(under)g(MGR)f(is)g(assigned)h(an)f(IPC)h fg(Bo)o(x)f fn
(for)g(serving)g(terminal)e(input)37 938 y(and)16 b(output)g(requests.)22 b
(All)15 b(of)g(these)h fg(Bo)o(xes)g fn(are)g(connected)h(to)e(a)g(single)g
(notify)g fg(Bo)o(x)p fn(,)h(whic)o(h)f(is)h(noti\014ed)37 1023 y(of)i(an)o
(y)g(messages)e(arriving)g(in)i(the)g(other)g fg(Bo)o(xes)p fn(.)28 b(A)18 b
(terminal)e(serv)o(er)h(pro)q(cess)h(con)o(tin)o(ually)f(reads)g(the)37 1108 y
(notify)c fg(Bo)o(x)g fn(to)g(determine)g(whic)o(h)g(clien)o(t)g(program)e
(had)j(requested)g(terminal)d(input)j(or)f(output)g(and)h(then)37 1192 y(forw)
o(ards)g(the)i(request)f(to)f(the)i(ev)o(en)o(t)f(serv)o(er.)108 1277 y(MGR)h
(runs)g(in)f(the)h(640)p fl(\002)p fn(480)f(mono)q(c)o(hrome)e(mo)q(de)i(of)g
(the)h(V)o(GA)g(video)f(adapter.)22 b(MGR)15 b(in)o(v)o(ok)o(es)g(a)37 1362 y
(BIOS)k(routine)d(to)g(switc)o(h)g(to)g(this)h(mo)q(de.)24 b(Screen)18 b(up)q
(dating)f(is)f(accomplished)g(b)o(y)h(writing)e(directly)h(to)37 1446 y(the)g
(video)f(bu\013er)g(at)f(absolute)h(address)g(0xA0000.)941 2760 y(114)g eop
bop 37 405 a fc(Chapter)35 b(7)37 675 y fb(Conclusion)1578 897 y fj(All)14 b
(I)i(ga)o(v)o(e)e(to)h(y)o(ou)1510 954 y(All)f(y)o(ou)h(made)f(me)h(do)1271
1010 y(I'll)f(react)h(when)g(I)h(hear)f(p)q(eople)h(ask)1608 1066 y(W)l(as)f
(it)f(w)o(orth)g(it)1443 1123 y(Y)l(es)i(it's)e(w)o(orth)g(living)g(for)1480
1179 y(|)i(\\W)l(as)e(it)h(w)o(orth)f(it?")108 1264 y fn(The)h(PC-Choices)e
(pro)s(ject)h(w)o(as)f(successfully)i(carried)e(out)h(o)o(v)o(er)g(a)f(short)
h(p)q(erio)q(d)h(of)e(time)g(b)o(y)h(a)g(single)37 1349 y(p)q(erson)h(\(i.e.)
k(m)o(yself,)12 b(with)i(some)f(assistance)g(from)g(Da)o(v)o(e)g(Kohr\).)20 b
(Dev)o(elopmen)o(t)12 b(of)i(PC-Choices)g(b)q(egan)37 1433 y(in)h(Septem)o
(b)q(er)f(1991)g(and)h(the)f(\014rst)h(distributable)e(v)o(ersion)h(of)g(PC-C\
hoices)h(w)o(as)f(completed)f(in)i(Jan)o(uary)37 1518 y(1992.)27 b(Although)
17 b(few)h(problems)e(w)o(ere)h(rep)q(orted)h(b)o(y)g(PC-Choices)f(users,)h
(PC-Choices)f(w)o(as)g(impro)o(v)o(ed)37 1603 y(and)12 b(re-released)g(throug\
h)f(the)g(Choices)g(FTP)g(serv)o(er)g(in)h(Marc)o(h)e(1992.)18 b(In)12 b(the)
f(same)g(mon)o(th,)f(PC-Choices)37 1687 y(w)o(as)17 b(uploaded)g(to)f(the)h
(highly-p)q(opular)f(SIMTEL20)h(MS-DOS)g(arc)o(hiv)o(e)f(for)g(greater)g(a)o
(v)m(ailabilit)o(y)l(.)22 b(The)37 1772 y(full)d(source)g(co)q(de)h(for)e(PC-\
Choices)h(w)o(as)g(released)g(to)f(licence-holders)i(in)f(Ma)o(y)f(1992.)30 b
(By)20 b(July)f(1992,)37 1857 y(I)f(ha)o(v)o(e)e(p)q(ersonally)h(handled)g
(more)f(than)g(167)h(electronic)f(mail)f(messages)g(regarding)h(PC-Choices,)h
(not)37 1941 y(coun)o(ting)c(replies.)19 b(Based)13 b(on)g(feedbac)o(k)g(from)
f(users,)h(I)g(summarize)e(in)i(T)l(able)f(7.1)g(the)i(t)o(yp)q(es)f(of)f(har\
dw)o(are)37 2026 y(and)g(DOS)f(v)o(ersions)f(that)g(ha)o(v)o(e)g(b)q(een)i
(kno)o(wn)f(to)f(w)o(ork)g(with)g(PC-Choices.)18 b(This)11 b(list)e(is)i(high\
ly)f(incomplete)37 2111 y(as)15 b(few)g(users)h(ha)o(v)o(e)e(rep)q(orted)i
(their)e(con\014gurations.)108 2196 y(The)21 b(GNU)f(C++)h(and)g(C)f(cross-co\
mpilers,)g(cross-assem)o(blers)e(and)j(cross-link)o(ers)e(from)g(the)h(F)l
(ree)37 2280 y(Soft)o(w)o(are)f(F)l(oundation)g(hosted)g(on)h(a)g(Sun)g(SP)l
(AR)o(Cstation)f(w)o(ere)g(used)h(to)g(generate)f(the)h(PC-Choices)37 2365 y
(k)o(ernel,)h(libraries)d(and)i(application)e(programs.)31 b(Ev)o(en)20 b(tho\
ugh)g(no)f(debugger)h(w)o(as)f(a)o(v)m(ailable)g(for)g(PC-)37 2450 y(Choices,)
g(the)f(fast)g(cross-compilation)d(to)q(ols)j(made)f(it)g(con)o(v)o(enien)o
(t)h(to)g(add)h(debugging)f(statemen)o(ts)e(to)37 2534 y(the)h(co)q(de)g(and)
f(retest)g(it.)23 b(The)17 b(b)q(o)q(otstrapp)q(er)f(\(loadco\013)t(\))e(and)
i(device)h(driv)o(er)f(adapters)g(w)o(ere)g(compiled)941 2760 y(115)g eop bop
100 51 a 1751 2 v 99 514 a 2 464 v 124 91 a fn(Base)16 b(PC/motherb)q(oard)
600 514 y 2 464 v 626 91 a(OPTim)o(um)21 b(486WB-33)i(\(486D)o(X\),)e(Adv)m
(anced)k(Logic)f(Researc)o(h)626 147 y(Buisiness)j(VEISA)h(486/33)e(\(486D)o
(X\),)f(Tseng)i(\(486D)o(X\),)e(IBM)626 204 y(PS/2)12 b(Mo)q(del)h(80)g(\(386\
D)o(X\),)d(A)l(T&T)k(6386)e(W)o(GS)g(\(386D)o(X\),)f(Zenith)626 260 y(Data)31
b(Systems)g(\(386D)o(X\),)f(SPEAR386/25U)h(Micro)q(computer)626 317 y(\(386D)
o(X\),)12 b(DTK)j(PEM-2035)e(\(386D)o(X\),)g(AMI)i(Mark)f(I)q(I)i(\(386D)o
(X\),)626 373 y(Leading)26 b(Edge)h(D3/25)e(\(386D)o(X\),)g(IT386SK)h(\(386D)
o(X\),)f(Data-)626 430 y(W)l(orld)16 b(33)g(\(386D)o(X\),)f(IBM)i(PS/2)f(Mo)q
(del)h(L40SX)g(\(386SX\),)e(IBM)626 486 y(PS/55)f(Note)h(\(386SX\),)f(Oliv)o
(etti)f(PC)i(Pro)g(SX20)g(\(386SX\))1850 514 y 2 464 v 100 516 a 1751 2 v 99
694 a 2 179 v 124 556 a(Video)h(adapters)600 694 y 2 179 v 626 556 a(Generic)
27 b(EGA,)h(Generic)f(V)o(GA,)g(Generic)h(Sup)q(er)h(V)o(GA,)e(IBM)626 612 y
(V)o(GA,)12 b(Oak)h(Sup)q(er)h(V)o(GA,)e(A)l(TI)h(8514/Ultra)e(V)o(GA,)h(P)o
(aradise)g(Pro-)626 669 y(fessional)i(V)o(GA,)g(Orc)o(hid)h(Pro)q(designer+)
1850 694 y 2 179 v 100 696 a 1751 2 v 99 761 a 2 66 v 124 736 a(Hard)g(disk)g
(driv)o(es)600 761 y 2 66 v 626 736 a(IDE,)f(SCSI,)i(RLL,)g(MFM,)e(ESDI)1850
761 y 2 66 v 100 763 a 1751 2 v 99 828 a 2 66 v 124 802 a(DOS)i(v)o(ersions)
600 828 y 2 66 v 626 802 a(3.3,)d(4.0,)h(5.0)1850 828 y 2 66 v 100 830 a 1751
2 v 99 1011 a 2 181 v 124 869 a(Miscellanous)600 1011 y 2 181 v 626 869 a(5.2\
5")32 b(1.2M)i(\015opp)o(y)g(disk)h(driv)o(e,)j(3.5")33 b(1.44M)g(\015opp)o
(y)i(disk)626 926 y(driv)o(e,)17 b(Logitec)o(h)g(Bus)h(Mouse,)g(3Com)e(3C503)
h(Ethernet)g(adapter,)626 982 y(Ungermann-Bass)d(NIC-PS/2)h(Ethernet)g(adapte\
r)1850 1011 y 2 181 v 100 1012 a 1751 2 v 345 1090 a fi(T)l(able)j(7.1)p fn
(:)h(PC)c(con\014gurations)g(kno)o(wn)g(to)f(w)o(ork)g(with)h(PC-Choices)37
1223 y(with)g(Borland)f(T)l(urb)q(o)h(C++)g(and)g(T)l(urb)q(o)g(Assem)o(bler)
e(and)i(debugged)h(with)e(Borland)g(T)l(urb)q(o)h(Debugger.)37 1308 y(DJGPP)l
(,)f(the)h(DOS)g(v)o(ersion)e(of)h(the)h(GNU)f(C++)h(compiler,)d(assem)o(bler)
h(and)i(link)o(er,)e(b)o(y)i(DJ)f(Delorie)f(w)o(as)37 1392 y(used)i(to)f(pro)
q(duce)h(the)f(PC-Choices)g(application)f(dev)o(elopmen)o(t)f(en)o(vironmen)o
(t)h(for)g(DOS,)h(enabling)g(DOS)37 1477 y(users)i(to)e(compile)g(PC-Choices)
h(application)f(programs.)108 1562 y(Ev)o(en)j(though)f(m)o(y)f(in)o(v)o(olv)
o(emen)o(t)f(with)i(the)g(PC-Choices)g(pro)s(ject)g(has)g(nearly)g(ended,)i
(other)e(p)q(eople)37 1646 y(inside)e(and)g(outside)g(the)g(Choices)f(pro)s
(ject)h(group)f(con)o(tin)o(ue)h(to)f(use)h(PC-Choices)g(for)f(op)q(erating)g
(systems)37 1731 y(researc)o(h.)20 b(One)14 b(suc)o(h)f(researc)o(h)h(pro)s
(ject)e(is)h(the)g(p)q(orting)g(of)g(the)g(Choices)g(ob)s(ject-orien)o(ted)g
(\014le)g(system[15)n(])37 1816 y(to)g(PC-Choices.)19 b(A)o(t)13 b(the)h(time)
e(of)h(writing,)f(the)h(Choices)h(File)e(Shell)i(\(FiSh\))e(is)h(running)h
(on)f(PC-Choices,)37 1900 y(emplo)o(ying)e(the)i(Choices)f(\014le)h(system)e
(to)h(access)g(disks)h(formatted)d(with)i(MS-DOS[35)o(])g(or)h(BSD)f(Unix[32)
o(].)37 1985 y(A)k(remote)e(pro)q(cedure)i(call)e(in)o(terface)h(will)f(b)q
(e)i(added)g(to)f(the)g(Choices)g(\014le)g(system)f(to)h(transform)e(it)h(in)
o(to)37 2070 y(a)h(user-lev)o(el)g(\014le)g(system)f(for)h(PC-Choices.)108
2154 y(Based)f(on)g(feedbac)o(k)h(from)d(the)i(users,)g(I)g(can)g(safely)f
(claim)f(that)h(PC-Choices)h(is)g(a)f(p)q(ortable,)g(reliable)37 2239 y(op)q
(erating)20 b(system)f(that)g(runs)i(on)f(virtually)e(all)i(existing)f(PC)h
(con\014gurations,)g(pro)o(vided)g(that)g(a)g(few)37 2324 y(basic)d(requireme\
n)o(ts)d(are)i(met.)23 b(Due)16 b(to)g(the)g(success)h(of)f(the)h(PC-Choices)
f(pro)s(ject,)f(the)i(Choices)f(group)37 2408 y(has)g(em)o(bark)o(ed)d(on)i
(a)g(similar)e(pro)s(ject,)h(to)g(build)h(a)g(p)q(ortable)g(v)o(ersion)f(of)h
(Choices)g(for)f(Apple)i(Macin)o(tosh)37 2493 y(computers[15)o(],)23 b(that)e
(adopts)h(the)g(PC-Choices)g(arc)o(hitecture)f(to)h(reuse)g(existing)g(op)q
(erating)f(system)37 2578 y(binary)15 b(co)q(de)h(for)f(p)q(ortabilit)o(y)l
(.)941 2760 y(116)g eop bop 37 405 a fc(APPENDIX)33 b(A)37 675 y fb(Primer)38
b(on)h(Application)37 861 y(Programm)n(ing)37 1139 y fd(A.1)70 b(In)n(tro)r
(duction)37 1269 y fn(This)15 b(c)o(hapter)h(is)e(an)i(informal)d(in)o(tro)q
(duction)h(to)h(building)g(applications)e(for)i(Choices.)1575 1253 y fr(1)
1615 1269 y fn(It)g(is)g(neither)h(an)37 1354 y(exhaustiv)o(e)j(nor)g(a)g(tec)
o(hnical)g(description)g(of)f(Choices)h(Application)g(Programm)o(ing)d(In)o
(terface)j(\(API\).)37 1439 y(The)i(purp)q(ose)g(of)f(the)g(do)q(cumen)o(t)g
(is)g(to)f(sho)o(w,)i(using)f(simple)f(examples,)h(ho)o(w)f(to)h(build)g(Choi\
ces)g(ap-)37 1523 y(plications.)25 b(The)17 b(programmer)d(will)i(\014nd)i
(that)f(Choices)g(is)f(organized)h(as)g(an)g(ob)s(ject-orien)o(ted)f(system,)
37 1608 y(b)q(oth)f(inside)f(and)g(out.)20 b(Man)o(y)13 b(features)h(in)g(Cho\
ices)g(resem)o(ble)f(features)h(in)g(other)g(systems)e(and)j(w)o(e)f(hop)q
(e)37 1693 y(that)20 b(this)f(mak)o(es)f(programmi)o(ng)f(easier.)33 b(Ho)o
(w)o(ev)o(er,)20 b(some)e(features)i(are)f(v)o(ery)h(di\013eren)o(t.)33 b(Whi\
le)19 b(our)37 1777 y(do)q(cumen)o(tation)e(needs)h(m)o(uc)o(h)f(impro)o(v)o
(emen)o(t,)d(w)o(e)k(hop)q(e)g(that)f(this)g(guide)h(will)e(b)q(e)j(of)e(use)
h(to)f(the)h(more)37 1862 y(adv)o(en)o(turous)d(programmer)d(who)j(w)o(an)o
(ts)f(to)h(learn)f(more)g(ab)q(out)h(ob)s(ject-orien)o(ted)g(op)q(erating)f
(systems.)108 1947 y(An)22 b(API)g(is)f(an)g(abstract)g(in)o(terface)g(to)f
(the)i(underlying)g(op)q(erating)e(system)g(that)h(allo)o(ws)f(y)o(ou)h(to)37
2031 y(program)14 b(applications)g(without)g(kno)o(wing)h(its)f(in)o(ternal)h
(details.)k(F)l(or)c(example,)f(the)i(Unix)f(API)h(will)e(let)37 2116 y(y)o
(ou)19 b(use)h fg(stdout)p fn(,)i fg(stdin)f fn(together)d(with)h fg(p)o(rint\
f\(\))g fn(and)g fg(scanf\(\))g fn(to)g(prin)o(t)g(and)g(read)g(from)f(the)h
(terminal.)37 2201 y(Whether)h(the)g(terminal)e(is)h(a)h(VT-100)f(or)h(a)f
(w)o(orkstation)f(console,)i(the)g(functions)g(are)f(called)h(in)f(the)37 2285
y(same)e(manner.)25 b(Similarly)l(,)15 b(\014le)j(I/O)g(is)f(p)q(erformed)g
(through)g(streams)e(declared)j fg(FILE)f fn(and)g(op)q(erations)37 2370 y
(lik)o(e)10 b fg(fop)q(en\(\))p fn(,)i fg(fwrite\(\))e fn(and)h fg(fread\(\))
p fn(.)17 b(The)11 b(application)e(programmer)f(do)q(es)j(not)f(ha)o(v)o(e)g
(to)g(program)f(detailed)37 2455 y(co)q(de)16 b(to)f(store)f(\014les)i(nor)e
(to)h(pro)o(vide)g(I/O)g(redirection.)37 2538 y 750 2 v 89 2565 a fs(1)107
2581 y fp(This)d(c)o(hapter)i(w)o(as)f(join)o(tly)f(written)h(b)o(y)g(An)o
(tonio)g(Lain,)g(Ro)o(y)g(Campb)q(ell)f(and)i(m)o(yself.)941 2760 y fn(117)g
eop bop 108 42 a fn(The)15 b(underlying)g(structure)f(of)g(Choices)h(is)f(di\
\013eren)o(t)g(from)f(most)g(op)q(erating)h(systems)f(y)o(ou)h(will)g(ha)o
(v)o(e)37 126 y(encoun)o(tered.)32 b(It)19 b(is)g(built)f(as)h(an)g(ob)s(ject\
-orien)o(ted)f(system)f(and)j(the)f(API)g(is)g(ob)s(ject-orien)o(ted.)30 b
(Th)o(us,)37 211 y(Choices)15 b(pro)o(vides)g(a)g(v)o(ery)g(di\013eren)o(t)f
(API)i(from,)d(sa)o(y)l(,)h(Unix)h(or)g(MS-DOS.)g(The)g(ob)s(ject-orien)o(ted)
g(nature)37 296 y(of)f(Choices)g(allo)o(ws)e(a)h(programmer)e(to)i(program)f
(in)o(teractions)g(b)q(et)o(w)o(een)i(the)g(application)f(and)h(the)g(op)q
(er-)37 380 y(ating)h(system)g(as)h(in)o(teractions)e(b)q(et)o(w)o(een)i(ob)s
(jects.)22 b(In)16 b(addition,)f(b)q(ecause)i(of)f(ob)s(ject-)p fi(orien)o
(tation)p fn(,)e(the)37 465 y(programmer)c(can)j(c)o(ho)q(ose)g(b)q(et)o(w)o
(een)g(sev)o(eral)f(di\013eren)o(t)g(lev)o(els)g(of)g(abstraction)g(when)h
(programmi)o(ng)d(these)37 550 y(in)o(teractions.)18 b(Th)o(us,)13 b(in)g(one)
g(mo)q(dule,)f(the)h(programmer)d(ma)o(y)h(treat)h(all)g(op)q(erating)g(syste\
m)f(comp)q(onen)o(ts)37 634 y(as)k(\\ob)s(jects")f(that)h(ha)o(v)o(e)g(names)
f(lik)o(e)g(\\idlePro)q(cess".)19 b(In)d(another)e(mo)q(dule,)g(the)i(program\
mer)c(ma)o(y)h(use)37 719 y(the)j(sp)q(ecialized)f(prop)q(erties)g(of)g(a)g
(particular)e(ob)s(ject.)37 900 y fd(A.2)70 b(Ob)t(jects)21 b(in)i(Choices)37
1032 y ff(A.2.1)56 b(In)n(tro)r(duction)37 1146 y fn(Choices)13 b(is)f(built)
g(from)f(ob)s(jects.)19 b(Eac)o(h)12 b(ob)s(ject)g(is)h(de\014ned)h(b)o(y)e
(a)h(class)f(that)g(sp)q(eci\014es)h(the)g(set)g(of)f(messages)37 1230 y(that)
k(the)h(ob)s(ject)f(can)h(receiv)o(e.)24 b(An)16 b(ob)s(ject)g(encapsulates)h
(data)f(that)g(represen)o(ts)g(its)g(in)o(ternal)f(state.)23 b(A)37 1315 y
(message)18 b(ma)o(y)e(b)q(e)j(sen)o(t)g(to)f(an)g(ob)s(ject)g(to)g(in)o(v)o
(ok)o(e)f(the)i(execution)f(of)g(one)h(of)f(its)g(metho)q(ds.)29 b(Choices)18
b(is)37 1400 y(written)e(in)g(the)g(C++)h(programming)c(language.)23 b(Eac)o
(h)16 b(class)f(that)h(is)g(used)h(in)f(Choices)g(is)g(represen)o(ted)37 1485
y(as)f(an)g(ob)s(ject)f(in)h(the)g(system.)j(In)d(particular,)e(it)i(is)f(p)q
(ossible)g(to)h(send)g(a)g(message)e(to)h(a)h(class)f(in)h(order)f(to)37 1569
y(\014nd)k(out)e(more)f(ab)q(out)h(the)h(prop)q(erties)f(of)g(an)g(ob)s(ject)
g(de\014ned)i(b)o(y)e(the)h(class.)23 b(Ob)s(jects)16 b(can)h(b)q(e)g(created\
,)37 1654 y(deleted,)f(stored)e(in)h(\014les,)g(passed)h(in)f(messages)e(to)i
(other)g(ob)s(jects,)f(or)h(returned)g(from)f(metho)q(ds.)108 1739 y(Standard)
19 b(input)f(and)h(output)g(are)f(ob)s(jects)g(that)g(ma)o(y)f(b)q(e)j(access\
ed)f(b)o(y)g(the)f(application)g(through)37 1823 y(the)h(p)q(oin)o(ter)g(v)m
(ariables)f fg(Standa)o(rdInput)j fn(and)e fg(Standa)o(rdOutput)q fn(.)33 b
(These)19 b(v)m(ariables)f(are)h(assigned)f(v)m(alues)37 1908 y(for)f(the)g
(standard)f(input)h(and)g(output)f(ob)s(jects)g(at)g(application)g(startup)g
(time.)23 b(F)l(or)16 b(example,)g(supp)q(ose)37 1993 y(w)o(e)i(wish)g(to)g
(prin)o(t)f(the)h(message)f(\\Hello)g(Sailor!")27 b(on)18 b(the)h(standard)e
(output.)29 b(W)l(e)18 b(send)h(the)f(message)37 2077 y fg(fo)o(rmattedW)o
(rite\(\))d fn(together)g(with)h(a)g(\\Hello)f(Sailor!")21 b(string)15 b(argu\
men)o(t)f(to)i fg(Standa)o(rdOutput)k fn(using)15 b(the)37 2162 y(follo)o(win\
g)e(program)g(fragmen)o(t:)151 2268 y fg(Standa)o(rdOutpu)q(t)18 b fl(!)e fg
(fo)o(rmattedW)o(rite)e(\()p fh("Hello)23 b(Sailor!)p fl(n)p fh(n")p fg(\);)
108 2403 y fn(Access)d(to)f(the)g(man)o(y)f(ob)s(jects)h(pro)o(vided)h(b)o
(y)f(Choices)g(is)g(v)o(ery)g(useful)h(in)f(applications.)32 b(In)20 b(order)
37 2487 y(to)c(send)h(them)e(messages,)g(w)o(e)h(need)i(to)d(acquire)h(p)q
(oin)o(ters)g(to)g(them.)22 b(Section)16 b(A.3)g(will)f(explain)h(ho)o(w)g
(to)37 2572 y(obtain)f(these)g(p)q(oin)o(ters.)941 2760 y(118)g eop bop 37 42
a ff(A.2.2)56 b(Smart)18 b(p)r(oin)n(ters)37 156 y fn(The)e(k)o(ernel)f(is)g
(a)h(dynamic)e(collection)g(of)h(ob)s(jects)g(represen)o(ting)g(pro)q(cesses,)
h(protected)f(memory)e(spaces)37 240 y(and)i(resources.)20 b(In)15 b(C++,)f
(it)g(is)g(di\016cult)g(to)f(manage)g(a)h(large)g(collection)f(of)h(ob)s(ject\
s)g(e\016cien)o(tly)f(without)37 325 y(m)o(uc)o(h)i(programming)d(e\013ort.)
20 b(In)d(Choices,)e(w)o(e)g(pro)o(vide)g(smart)f(p)q(oin)o(ters)h(that)g(sup\
p)q(ort)h(garbage)f(collec-)37 410 y(tion)j(using)g(reference)h(coun)o(ting.)
29 b(As)19 b(long)f(as)g(applications)f(can)h(still)f(reference)i(a)f(particu\
lar)f(ob)s(ject,)37 494 y(the)d(ob)s(ject)e(will)g(remain)g(in)h(existence.)
20 b(Ho)o(w)o(ev)o(er,)12 b(when)h(the)h(last)e(reference)i(to)e(that)h(ob)s
(ject)g(is)f(remo)o(v)o(ed,)37 579 y(the)k(ob)s(ject)e(is)h(deleted)h(automat\
icall)o(y)l(.)108 664 y(Tw)o(o)h(sets)g(of)g(classes,)g(named)g fg(Sta)o(r)h
fn(and)f fg(Ref)h fn(classes,)g(are)f(used)h(to)f(automate)e(garbage)i(collec\
tion.)37 748 y(In)h(general,)f(whenev)o(er)h(w)o(e)f(need)h(a)f(lo)q(cal)g
(or)g(global)f(v)m(ariable)g(that)h(p)q(oin)o(ts)g(to)g(a)g(Choices)g(ob)s
(ject)f(in)i(an)37 833 y(application)12 b(program,)f(w)o(e)h(use)i(a)e fg(Sta)
o(r)h fn(p)q(oin)o(ter)f(v)m(ariable.)18 b(F)l(or)13 b(example,)e(instead)i
(of)f(using)h(the)g(follo)o(wing)37 918 y(C++)j(co)q(de)g(to)f(reference)g
(an)h(ob)s(ject:)151 1024 y fh(#include)e fg(")p fh(WhatsoeverObject.h)p fg
(")151 1137 y(Whatso)q(everObject)k fl(\003)p fg(MyP)o(ointer;)151 1193 y(Myp)
q(ointer)e(=)f(\(Whatso)q(everObject)j fl(\003)p fg(\))d(\(..something..\);)
108 1328 y fn(w)o(e)g(reference)h(a)f(Choices)g(ob)s(ject)f(using:)151 1434 y
fh(#include)g fg(")p fh(WhatsoeverObject.h)p fg(")151 1491 y fh(#include)g fg
(")p fh(WhatsoeverObjectStar.h)p fg(")151 1603 y(Whatso)q(everObjectSt)q(a)o
(r)j(MyP)o(ointer;)151 1660 y(Myp)q(ointer)f(=)f(\(Whatso)q(everObjectSt)q
(a)o(r\))i(\(..something..\);)108 1794 y fn(Returning)h(a)f(reference)h(from)
e(a)h(function)h(can)f(lead)g(to)g(v)o(ery)h(ine\016cien)o(t)f(reference)h
(coun)o(ting)f(co)q(de)37 1879 y(in)k(an)f(automatic)e(garbage)h(collection)g
(sc)o(heme)h(implemen)o(ted)e(without)h(the)h(supp)q(ort)h(of)f(a)g(compiler.)
37 1964 y(Ho)o(w)o(ev)o(er,)c(a)g(function)g(ma)o(y)f(return)h(a)g(smart)e
(p)q(oin)o(ter)i(to)g(a)g(Choices)g(ob)s(ject)g(v)o(ery)g(e\016cien)o(tly)f
(using)h(the)37 2048 y(standard)f(C++)h(compiler)d(b)o(y)j(follo)o(wing)c(the)
k(Choices)f(co)q(ding)g(con)o(v)o(en)o(tions.)108 2133 y(The)f(function)f(is)
g(co)q(ded)i(to)e(return)g(a)h fg(Ref)j fn(p)q(oin)o(ter.)i(The)14 b fg(Ref)j
fn(p)q(oin)o(ter)c(m)o(ust)f(not)h(b)q(e)h(used)h(directly)e(in)37 2218 y(the)
h(application)f(co)q(de)h(to)f(access)h(a)f(Choices)h(ob)s(ject.)k(Instead,)c
(the)g(p)q(oin)o(ter)f(should)h(b)q(e)g(assigned)g(\014rst)f(to)37 2302 y(a)k
fg(Sta)o(r)f fn(lo)q(cal)f(v)m(ariable)h(and)h(the)f(ob)s(ject)g(accessed)h
(through)f(that)g(v)m(ariable.)23 b(The)17 b(follo)o(wing)d(application)37
2387 y(co)q(de)i(is)f(correct:)151 2493 y fh(#include)f fg(")p fh(WhatsoeverO\
bject.h)p fg(")151 2550 y fh(#include)g fg(")p fh(WhatsoeverObjectStar.h)p fg
(")941 2760 y fn(119)g eop bop 151 42 a fi(extern)15 b fg(Whatso)q(everObject\
Ref)j(T)l(rickyF)o(unction\(\);)151 154 y(Whatso)q(everObjectSt)q(a)o(r)f(MyP)
o(ointer;)151 211 y(Myp)q(ointer)f(=)f(T)l(rickyF)o(unction\(\);)151 267 y
(Myp)q(ointer)h fl(!)g fg(something\(\);)108 402 y fn(But)f(this)g(is)g(not:)
151 508 y fh(#include)f fg(")p fh(WhatsoeverObject.h)p fg(")151 565 y fh(#inc\
lude)g fg(")p fh(WhatsoeverObjectStar.h)p fg(")151 677 y fi(extern)h fg(Whats\
o)q(everObjectRef)j(T)l(rickyF)o(unction\(\);)151 790 y(T)l(rickyF)o(unction\
\(\))e fl(!)f fg(something\(\);)108 925 y fn(In)22 b(addition,)g(the)g(Choice\
s)g(con)o(v)o(en)o(tion)e(requires)i(the)g(formal)d(parameters)h(of)h(a)g(fun\
ction)h(to)f(b)q(e)37 1010 y(normal)16 b(p)q(oin)o(ters,)i(not)f(declared)h
(of)g(t)o(yp)q(e)g fg(Sta)o(r)p fn(.)27 b(Although)18 b(normal)e(p)q(oin)o
(ters)h(to)g(Choices)h(ob)s(jects)f(are)37 1094 y(used)g(for)f(formal)e(param\
eters,)g(the)j(actual)e(parameters)g(can)h(b)q(e)h(of)f(t)o(yp)q(e)g fg(Sta)o
(r)p fn(.)23 b(F)l(or)16 b(example,)f(this)h(will)37 1179 y(w)o(ork:)151 1285
y fh(#include)e fg(")p fh(WhatsoeverObject.h)p fg(")151 1342 y fh(#include)g
fg(")p fh(WhatsoeverObjectStar.h)p fg(")151 1455 y fi(extern)h(v)o(oid)f fg
(T)l(rickyF)o(unction)i(\(Whatso)q(everObject)i fl(\003)p fg(\);)151 1567 y
(Whatso)q(everObjectSt)q(a)o(r)f(MyP)o(ointer;)151 1624 y(T)l(rickyF)o(unctio\
n)f(\(MyP)o(ointer\);)108 1758 y fn(But)f(this)g(will)f(not:)151 1865 y fh
(#include)g fg(")p fh(WhatsoeverObject.h)p fg(")151 1921 y fh(#include)g fg
(")p fh(WhatsoeverObjectStar.h)p fg(")151 2034 y fi(extern)h(v)o(oid)f fg(T)l
(rickyF)o(unction)i(\(Whatso)q(everObjectSta)o(r\);)151 2147 y(Whatso)q(everO\
bjectSt)q(a)o(r)h(MyP)o(ointer;)151 2203 y(T)l(rickyF)o(unction)f(\(MyP)o(oin\
ter\);)108 2338 y fn(Because)i(the)g(ob)s(jects)f(in)g(Choices)h(are)f(automa\
ticall)o(y)e(garbage)i(collected,)g(it)g(is)g(not)g(necessary)h(to)37 2423 y
(call)j(the)g(destructor)f(of)h(an)f(ob)s(ject)h(p)q(oin)o(ted)g(to)f(b)o(y)h
(a)f fg(Sta)o(r)p fn(.)37 b(Moreo)o(v)o(er,)21 b(b)q(ecause)h(Choices)e(supp)
q(orts)37 2507 y(m)o(ultipro)q(cessing,)14 b(shared)i(memory)e(and)i(ligh)o
(t)o(w)o(eigh)o(t)d(pro)q(cesses,)j(directly)g(in)o(v)o(oking)e(the)i(destruc\
tor)g(of)37 2592 y(an)d(ob)s(ject)f(can)h(result)f(in)g(an)g(inconsisten)o
(t)g(system)f(state)h(in)o(v)o(olving)e(dangling)i(p)q(oin)o(ters.)19 b(That)
12 b(is,)g(calling)941 2760 y(120)g eop bop 37 42 a fn(a)14 b(Choices)g(ob)s
(ject)f(destructor)g(directly)g(can)h(cause)g(the)g(application)f(to)g(fail.)
18 b(Finally)l(,)13 b fg(Sta)o(r)g fn(p)q(oin)o(ters)g(can)37 126 y(b)q(e)22 b
(assigned)f(to)f(normal)f(p)q(oin)o(ters)i(within)f(an)h(application)f(but)h
(care)g(m)o(ust)f(b)q(e)i(tak)o(en)e(not)h(to)f(use)i(a)37 211 y(dangling)15 b
(reference;)g(the)h(lifetime)d(of)h(an)h(ob)s(ject)g(is)g(guaran)o(teed)f(onl\
y)h(when)h fg(Sta)o(r)f fn(p)q(oin)o(ters)g(are)g(used.)108 296 y(The)g(w)o
(a)o(y)f(smart)f(p)q(oin)o(ters)i(ha)o(v)o(e)f(b)q(een)j(describ)q(ed)e(is)g
(rather)f(simplistic)f(and)i(there)g(are)g(some)e(excep-)37 380 y(tions)e(to)
g(these)h(rules.)19 b(Nev)o(ertheless,)11 b(these)h(rules)g(are)f(applicable)
g(in)g(most)f(of)h(the)h(cases.)19 b(It)11 b(is)g(sometimes)37 465 y(useful)
16 b(to)e(implemen)o(t)f(a)i(mo)q(dule)f(with)h(normal)e(p)q(oin)o(ters)i(\
\014rst)g(and)g(add)g(the)h(smart)d(p)q(oin)o(ters)i(when)g(the)37 550 y(syst\
em)f(is)h(already)f(w)o(orking.)37 730 y fd(A.3)70 b(The)22 b(Standard)j(Name\
serv)n(er)37 860 y fn(Choices)15 b(is)g(built)g(assuming)e(the)i(principle)g
(that)g(an)g(application)e(should)j(only)e(b)q(e)i(able)f(to)f(access)i(those)
37 945 y(ob)s(jects)h(it)f(needs.)25 b(When)17 b(an)g(application)e(is)h(\014\
rst)h(executed,)g(it)f(is)h(supplied)g(with)f(a)g(small)f(n)o(um)o(b)q(er)h
(of)37 1029 y(references)i(to)e(Choices)g(ob)s(jects)g(that)g(most)f(applicat\
ions)h(need.)25 b(These)17 b(references)g(include)g fg(Standa)o(rd-)37 1114 y
(Output)p fn(,)26 b fg(Standa)o(rdInput)p fn(,)f fg(Standa)o(rdFileSystemInte\
rface)d fn(and)g(the)f fg(Standa)o(rdNameServer)q fn(.)38 b(References)37 1199
y(to)22 b(other)g(Choices)g(ob)s(jects)f(ma)o(y)g(b)q(e)i(acquired)f(b)o(y)g
(sending)g(a)g fg(lo)q(okup\(\))h fn(message)d(to)i(the)g fg(Standa)o(rd-)37
1283 y(NameServer)q fn(.)27 b(The)18 b fg(lo)q(okup\(\))g fn(message)f(includ\
es,)h(as)g(parameters,)e(an)i(iden)o(ti\014er)f(for)h(an)f(ob)s(ject)h(and)g
(a)37 1368 y(sp)q(eci\014cation)d(of)f(its)f(class.)19 b(The)c(nameserv)o(er)
e fg(lo)q(okup\(\))h fn(metho)q(d)f(returns)i(a)f(p)q(oin)o(ter)f(to)h(that)g
(ob)s(ject)f(if)h(it)37 1453 y(b)q(oth)j(\014nds)g(the)f(ob)s(ject)g(and)h
(the)f(application)f(has)h(the)h(appropriate)e(p)q(ermission)g(to)h(use)g(it.)
23 b(In)17 b(certain)37 1537 y(cases,)f(the)g(nameserv)o(er)e(will)g(return)i
(a)f(p)q(oin)o(ter)h(to)f(an)g(ob)s(ject)g(that)g(is)h(a)f(sub)q(class)h(of)f
(the)h(one)g(required,)37 1622 y(but)g(this)e(should)i(not)e(b)q(e)i(a)f(prob\
lem.)108 1707 y(The)k fg(Standa)o(rdNameServer)f fn(con)o(tains)f(references)
i(to)f(man)o(y)e(ob)s(jects)i(that)f(ma)o(y)g(b)q(e)i(used)g(b)o(y)f(appli-)
37 1791 y(cations.)37 b(F)l(or)20 b(example,)h(to)g(access)g(a)g(Choices)f
(ob)s(ject)h(named)f(\\John")h(of)g(class)f(\\Whatso)q(ev)o(er")g(w)o(e)37
1876 y(co)q(de:)151 1982 y fh(#include)14 b fg(")p fh(Whatsoever.h)p fg(")151
2039 y fh(#include)g fg(")p fh(WhatsoeverStar.h)p fg(")151 2152 y(Whatso)q
(everSta)o(r)i(MyObject;)151 2265 y(MyObject)h(=)e(\(Whatso)q(everSta)o(r\))h
(Standa)o(rdNameServer)f fl(!)242 2321 y fg(lo)q(okup)h(\()p fh("John")p fg
(,)e fh("Whatsoever")p fg(\);)108 2456 y fn(If)19 b(the)f(nameserv)o(er)f(can\
not)h(\014nd)h(an)f(ob)s(ject)g(to)f(matc)o(h)g(the)i(lo)q(okup)f(request,)g
(it)g(will)f(return)h(zero.)37 2540 y(W)l(e)e(recommend)d(alw)o(a)o(ys)h(c)o
(hec)o(king)h(that)f(the)i(address)f(returned)g(b)o(y)h(the)f(nameserv)o(er)f
(is)g(non-zero.)941 2760 y(121)g eop bop 108 42 a fn(The)17 b fg(Standa)o(rdN\
ameServer)h fn(includes)f(the)g fg(Class)g fn(ob)s(jects)f(that)g(represen)o
(t)h(classes)f(used)i(in)e(the)h(con-)37 126 y(struction)e(of)g(Choices.)k
(W)l(e)c(can)h(write)e(the)h(previous)g(example)f(in)h(the)h(follo)o(wing)d
(w)o(a)o(y:)151 230 y fh(#include)h fg(")p fh(Whatsoever.h)p fg(")151 286 y fh
(#include)g fg(")p fh(WhatsoeverStar.h)p fg(")151 343 y fh(#include)g fg(")p
fh(Class.h)p fg(")384 b fk(//)46 b(ClassStar.h)22 b(is)g(automatic)n(al)r(ly)
h(include)n(d)151 456 y fg(Whatso)q(everSta)o(r)16 b(MyObject;)151 512 y(Clas\
sSta)o(r)g(Whatso)q(everClass;)151 625 y(Whatso)q(everClass)h(=)e(\(ClassSta)
o(r\))g(Standa)o(rdNameServer)g fl(!)242 681 y fg(lo)q(okup)h(\()p fh("Whatso\
ever")p fg(,)d fh("Class")p fg(\);)151 738 y(MyObject)k(=)e(\(Whatso)q(everSt\
a)o(r\))h(Standa)o(rdNameServer)f fl(!)242 794 y fg(lo)q(okup)h(\()p fh("John\
")p fg(,)e(Whatso)q(everClass\);)108 926 y fn(The)i(previous)g(example)e(do)q
(es)j(not)e(sho)o(w)g(the)h(adv)m(an)o(tages)g(of)f(ha)o(ving)g fg(Class)h fn
(ob)s(jects.)22 b fg(Class)16 b fn(ob)s(jects)37 1011 y(can)e(resp)q(ond)g
(to)f(messages)e(lik)o(e)i fg(pa)o(rent\(\))g fn(and)h fg(child\(\))f fn(that)
g(will)f(return)h(p)q(oin)o(ters)g(to)f(the)i(sup)q(erclass)f(and)37 1096 y
(sub)q(class)h(ob)s(jects.)19 b(They)13 b(also)g(can)h(\014nd)g(all)e(the)i
(ob)s(jects)f(that)f(are)i(of)f(that)f(class)h(using)h(the)f fg(getKindred\(\
\))37 1180 y fn(message.)25 b(Ev)o(ery)17 b(Choices)g(ob)s(ject)g(has)g(a)g
(metho)q(d)f(that)h(allo)o(ws)e(one)j(to)e(enquire)i(the)f(ob)s(ject)g(ab)q
(out)g(its)37 1265 y(class.)22 b(When)16 b(the)g fg(classOf\(\))g fn(message)
f(is)g(sen)o(t)h(to)f(an)o(y)g(Choices)h(ob)s(ject,)f(the)h fg(Class)h fn(ob)
s(ject)e(represen)o(ting)37 1350 y(the)j(class)f(of)g(the)h(ob)s(ject)f(will)
f(b)q(e)j(returned.)27 b(This)17 b(w)o(a)o(y)l(,)g(it)g(is)g(p)q(ossible)g
(to)g(implemen)o(t)e(an)j(application)37 1434 y(that)12 b(will)f(try)h(to)f
(obtain)h(an)g(ob)s(ject)f(of)h(a)g(particular)f(class)g(and,)i(if)f(it)f(fai\
ls)g(to)h(do)g(so,)g(to)g(use)g(an)g(ob)s(ject)g(of)g(a)37 1519 y(sup)q(ercla\
ss.)19 b(\(The)12 b(resulting)f(application)f(ma)o(y)g(run)i(less)g(e\016cien)
o(tly)f(than)g(with)g(the)h(actual)f(sub)q(class,)h(but)37 1604 y(it)j(will)f
(ha)o(v)o(e)h(the)g(same)f(functionalit)o(y)l(.\))k(Because)e(of)f(the)g(supp)
q(ort)h(for)e(classes)h(and)g(ob)s(jects)g(in)g(Choices,)37 1688 y(the)h(clas\
s)f(hierarc)o(h)o(y)g(of)g(Choices)g(do)q(es)h(not)g(ha)o(v)o(e)f(to)g(b)q
(e)h(compiled)e(in)o(to)h(the)g(application)g(co)q(de)h(\(that)e(is,)37 1773 y
(the)i(class)e(hierarc)o(h)o(y)h(of)g(Choices)g(do)q(es)g(not)g(ha)o(v)o(e)g
(to)f(b)q(e)i(statically)d(b)q(ound)j(in)o(to)e(the)i(application)d(co)q(de\)\
.)37 1953 y fd(A.4)70 b(Input/Output)23 b(from)f(the)g(terminal)37 2083 y fn
(In)c(Section)e(A.2,)h(w)o(e)f(in)o(tro)q(duced)h(the)g(input)g(and)f(output)
h(ob)s(jects)f(p)q(oin)o(ted)h(to)f(b)o(y)g(the)h(v)m(ariables)f fg(Stan-)37
2168 y(da)o(rdOutput)22 b fn(and)d fg(Standa)o(rdInput)p fn(.)34 b(These)19 b
(ob)s(jects)g(are)f(of)h(class)f fg(OutputSt)q(ream)i fn(and)g fg(InputStream)
f fn(re-)37 2252 y(sp)q(ectiv)o(ely)l(.)35 b(The)20 b(messages)f fg(fo)o(rmat\
tedW)o(rite\(\))f fn(and)i fg(fo)o(rmattedRead\(\))g fn(are)g(used)g(lik)o
(e)g(the)g(p)q(opular)g(C)37 2337 y fg(p)o(rintf\(\))15 b fn(and)h fg(scanf\(\
\))f fn(functions.)20 b(An)15 b(example)f(of)h(their)g(use)g(is)g(the)g(follo)
o(wing:)151 2441 y fh(#include)f fg(")p fh(OutputStream.h)p fg(")151 2497 y fh
(#include)g fg(")p fh(InputStream.h)p fg(")151 2610 y fi(in)o(t)h fg(main)f
(\()p fi(in)o(t)p fg(,)g fi(c)o(har)h fl(\003\003)p fg(\))941 2760 y fn(122)g
eop bop 151 42 a fl(f)242 98 y fk(//)46 b(This)22 b(pr)n(o)n(gr)n(am)h(asks)f
(for)h(your)h(age,)e(inputs)h(it)g(and)f(prints)h(how)g(many)g(months)242 154
y(//)46 b(old)23 b(you)g(ar)n(e.)46 b(Cal)r(ling)21 b(formatte)n(dWrite\(\))i
(on)g(the)g(Standar)n(dOutput)g(do)n(es)g(not)242 211 y(//)46 b(ne)n(c)n(essa\
rily)21 b(me)n(an)h(that)h(the)g(text)g(wil)r(l)g(app)n(e)n(ar)g(on)f(the)h
(scr)n(e)n(en)e(imme)n(diately.)242 267 y(//)46 b(So)22 b(we)h(c)n(al)r(l)f
(\015ush\(\))g(on)h(Standar)n(dOutput)h(to)f(for)n(c)n(e)f(the)h(text)g(to)g
(app)n(e)n(ar)g(on)242 324 y(//)46 b(the)23 b(scr)n(e)n(en)e(right)i(away.)46
b(Standar)n(dOutput)24 b(and)f(Standar)n(dInput)f(ar)n(e)h(sp)n(e)n(cial)242
380 y(//)46 b(variables)22 b(that)i(ar)n(e)e(always)h(available)f(to)h(applic)
n(ations)g(and)f(ar)n(e)h(usual)r(ly)242 437 y(//)46 b(set)22 b(to)h(the)g
(scr)n(e)n(en)e(output)k(and)d(keyb)n(o)n(ar)n(d)h(input)g(r)n(esp)n(e)n(ctiv\
ely.)242 493 y fi(in)o(t)15 b fg(age;)242 550 y(Standa)o(rdOutput)k fl(!)d fg
(fo)o(rmattedW)o(rite)e(\()p fh("What's)22 b(your)i(age?)p fl(n)p fh(n")p fg
(\);)242 606 y(Standa)o(rdOutput)19 b fl(!)d fg(\015ush)h(\(\);)242 663 y(Sta\
nda)o(rdInput)h fl(!)d fg(fo)o(rmattedRead)h(\()p fh("%d")p fg(,)e(&age\);)
242 719 y(Standa)o(rdOutput)19 b fl(!)d fg(fo)o(rmattedW)o(rite)e(\()p fh("yo\
u)23 b(are)g(%d)h(months)f(old)p fl(n)p fh(n")p fg(,)14 b(12)p fl(\003)p fg
(age\);)242 775 y(Standa)o(rdOutput)19 b fl(!)d fg(\015ush)h(\(\);)242 832 y
fi(return)e fg(0;)151 888 y fl(g)108 1020 y fn(The)e fm(<<)h fn(op)q(erator)e
(pro)o(vides)h(a)f(more)g(con)o(v)o(enien)o(t)g(w)o(a)o(y)g(to)h(write)f(outp\
ut)h(to)f(an)h fg(OutputStream)p fn(.)21 b(The)37 1105 y(example)15 b(ab)q
(o)o(v)o(e)f(is)h(equiv)m(alen)o(t)g(to)f(the)i(follo)o(wing)d(one:)151 1208 y
fh(#include)h fg(")p fh(OutputStream.h)p fg(")151 1265 y fh(#include)g fg(")p
fh(InputStream.h)p fg(")151 1377 y fi(in)o(t)h fg(main)f(\()p fi(in)o(t)p fg
(,)g fi(c)o(har)h fl(\003\003)p fg(\))151 1434 y fl(f)242 1490 y fk(//)46 b
(This)22 b(pr)n(o)n(gr)n(am)h(asks)f(for)h(your)h(age,)e(inputs)h(it)g(and)f
(prints)h(how)g(many)g(months)242 1547 y(//)46 b(old)23 b(you)g(ar)n(e.)46 b
(We)23 b(print)f(text)h(by)g(using)f(the)h(")p fm(<<)p fk(")h(op)n(er)n(ator)
g(with)f(the)242 1603 y(//)46 b(Standar)n(dOutput.)g(Cal)r(ling)22 b(")p fm
(<<)i fk(e)n(or")f(has)g(the)g(same)f(e\013e)n(ct)g(as)h(c)n(al)r(ling)242
1660 y(//)46 b(\015ush\(\))22 b(on)g(the)h(Standar)n(dOutput.)47 b(We)23 b
(c)n(al)r(l)f(")p fm(<<)i fk(e)n(or")f(on)f(the)h(Standar)n(dOutput)242 1716 y
(//)46 b(so)23 b(that)g(whatever)g(text)g(we)g(have)g(just)g(printe)n(d)f(wil)
r(l)h(app)n(e)n(ar)g(on)f(the)h(scr)n(e)n(en)242 1773 y(//)46 b(right)23 b
(away.)46 b(Standar)n(dOutput)24 b(and)f(Standar)n(dInput)f(ar)n(e)h(sp)n(e)n
(cial)e(variables)242 1829 y(//)46 b(that)23 b(ar)n(e)g(always)g(available)f
(to)h(applic)n(ations)f(and)h(ar)n(e)g(usual)r(ly)g(set)f(to)h(the)242 1886 y
(//)46 b(scr)n(e)n(en)21 b(output)j(and)f(keyb)n(o)n(ar)n(d)f(input)h(r)n(esp)
n(e)n(ctively.)242 1942 y fi(in)o(t)15 b fg(age;)242 1998 y fl(\003)p fg(Stan\
da)o(rdOutput)k fl(\034)c fh("What's)23 b(your)h(age?)p fl(n)p fh(n")14 b fl
(\034)h fg(eo)o(r;)242 2055 y(Standa)o(rdInput)j fl(!)d fg(fo)o(rmattedRead)h
(\()p fh("%d")p fg(,)e(&age\);)242 2111 y fl(\003)p fg(Standa)o(rdOutput)19 b
fl(\034)c fh("you)24 b(are)f(")15 b fl(\034)h fg(12)p fl(\003)p fg(age)e fl
(\034)h fh(")24 b(months)f(old)p fl(n)p fh(n")14 b fl(\034)i fg(eo)o(r;)242
2168 y fi(return)f fg(0;)151 2224 y fl(g)108 2356 y fn(Note)i(that)f(\\)p fm
(<<)i fn(eor")e(has)h(the)g(same)f(e\013ect)h(as)g(calling)f fg(\015ush\(\))p
fn(.)26 b fg(OutputSt)q(ream)18 b fn(and)g fg(InputStream)37 2441 y fn(also)c
(supp)q(ort)g(simpler)f(messages)f fg(read\(\))i fn(and)h fg(write\(\))e fn
(when)i(formatted)d(input/output)i(is)g(not)g(required.)37 2525 y(In)h(this)f
(case,)g(the)h(parameters)d(are)i(a)g(p)q(oin)o(ter)g(to)g(a)g(bu\013er)g(and)
h(the)f(n)o(um)o(b)q(er)g(of)g(b)o(ytes)g(to)g(read)g(or)g(write.)37 2610 y
(The)i(example)e(b)q(elo)o(w)h(writes)f(ev)o(ery)h(c)o(haracter)g(t)o(yp)q
(ed)g(and)g(stops)g(when)h(`#')e(is)h(t)o(yp)q(ed.)941 2760 y(123)g eop bop
151 42 a fk(//)46 b(sample1.c)n(c:)22 b(Echo)h(keyb)n(o)n(ar)n(d)f(input.)46 b
(Stops)23 b(when)f('#')h(is)f(typ)n(e)n(d.)151 98 y fh(#include)14 b fg(")p fh
(OutputStream.h)p fg(")151 154 y fh(#include)g fg(")p fh(InputStream.h)p fg
(")151 267 y fi(in)o(t)h fg(main)f(\()p fi(in)o(t)p fg(,)g fi(c)o(har)h fl
(\003\003)p fg(\))151 324 y fl(f)197 380 y fk(//)46 b(This)22 b(pr)n(o)n(gr)n
(am)g(r)n(ep)n(e)n(ate)n(d)r(ly)h(r)n(e)n(ads)f(keypr)n(esses)f(and)i(prints)
f(them)h(until)g(you)197 437 y(//)46 b(pr)n(ess)21 b('#'.)46 b(T)m(o)22 b(r)n
(e)n(ad)g(a)h(single)f(keypr)n(ess,)f(we)i(c)n(al)r(l)f(the)h(r)n(e)n(ad\(\))
f(metho)n(d)h(on)197 493 y(//)46 b(the)22 b(Standar)n(dInput,)h(the)g(ar)n
(guments)f(b)n(eing)g(an)g(arr)n(ay)i(to)f(hold)g(the)g(char)n(acter)197 550 y
(//)46 b(typ)n(e)n(d)22 b(\(arr)n(ay)h(c\),)f(and)h(the)g(numb)n(er)f(1,)h
(to)g(indic)n(ate)g(that)g(we)g(want)g(to)g(r)n(e)n(ad)f(only)197 606 y(//)46
b(one)22 b(char)n(acter)h(fr)n(om)g(the)g(keyb)n(o)n(ar)n(d.)45 b(r)n(e)n(ad\
\(\))22 b(wil)r(l)g(r)n(eturn)h(the)g(numb)n(er)g(of)197 663 y(//)46 b(char)n
(acters)22 b(r)n(e)n(ad.)46 b(Standar)n(dInput)22 b(\(of)h(typ)n(e)f(InputStr)
n(e)n(am\))g(and)h(Standar)n(dOutput)197 719 y(//)46 b(\(of)22 b(typ)n(e)h
(OutputStr)n(e)n(am\))g(ar)n(e)f(sp)n(e)n(cial)g(glob)n(al)g(variables)g(use)
n(d)g(for)i(r)n(e)n(ading)197 775 y(//)46 b(char)n(acters)22 b(fr)n(om)h(the)
g(keyb)n(o)n(ar)n(d)g(and)f(for)h(writing)g(char)n(acters)g(to)g(the)g(scr)n
(e)n(en.)197 832 y fl(\003)p fg(Standa)o(rdOutput)18 b fl(\034)e fh("Type)23 b
(a)h(sequence)f(of)g(keys)g(ending)h(with)f(#)p fl(n)p fh(n")14 b fl(\034)i fg
(eo)o(r;)197 888 y fi(c)o(har)f fg(c)g([1];)197 945 y fi(in)o(t)f fg(cha)o
(rsRead)i(=)g(Standa)o(rdInput)i fl(!)d fg(read)g(\(c,)g(1\);)197 1001 y fi
(while)f fg(\(\(c)g([0])h fl(6)p fn(=)h fg('#'\))e(&&)i(\(cha)o(rsRead)g fm
(>)f fg(0\)\))197 1058 y fl(f)242 1114 y fg(Standa)o(rdOutput)k fl(!)d fg(wri\
te)f(\(c,)f(1\);)242 1171 y fl(\003)p fg(Standa)o(rdOutput)19 b fl(\034)c fg
(eo)o(r;)242 1227 y(cha)o(rsRead)h(=)g(Standa)o(rdInput)i fl(!)d fg(read)g
(\(c,)g(1\);)197 1284 y fl(g)197 1340 y fi(return)f fg(0;)151 1396 y fl(g)37
1577 y fd(A.5)70 b(Input/Output)23 b(from)f(\014les)37 1707 y fn(This)13 b
(section)g(discusses)g(the)h(MS-DOS)f(stream-orien)o(ted)e(\014le)j(system)d
(supp)q(orted)j(b)o(y)f(Choices,)g(although)37 1791 y(Choices)i(also)g(supp)q
(orts)g(sev)o(eral)f(di\013eren)o(t)h(\014le)g(systems.)108 1876 y(The)f(\014\
le)g(system)f(is)g(accessed)i(through)e(an)h(ob)s(ject)g(of)f(class)h fg(File\
SystemInterface)g fn(accessible)g(through)37 1961 y(the)j(global)d(v)m(ariabl\
e)i fg(Standa)o(rdFileSystemInterface)p fn(.)23 b(This)16 b(ob)s(ject)f(enabl\
es)i(the)f(programm)o(er)d(to)j(create)37 2045 y(new)j(\014les,)f(op)q(en)g
(existing)f(\014les)h(with)f(a)h(certain)f(mo)q(de)g(of)g(access,)i(c)o(hange)
f(the)f(curren)o(t)h(directory)f(and)37 2130 y(p)q(erform)d(other)h(familiar)
d(\014le)k(system)d(op)q(erations.)108 2215 y(A)f(\014le)g(is)g(op)q(ened)h
(b)o(y)f(sending)g(an)g fg(op)q(en\(\))g fn(message)f(to)g(the)h fg(FileSyste\
mInterface)h fn(ob)s(ject.)18 b(The)12 b(metho)q(d)37 2299 y(returns)23 b(a)f
fg(FileStream)g fn(ob)s(ject)f(that)h(ma)o(y)f(b)q(e)i(sen)o(t)f fg(read\(\))
g fn(or)g fg(write\(\))g fn(messages.)40 b(In)23 b(the)g(follo)o(wing)37 2384
y(examples,)12 b(w)o(e)h(use)g(the)g(strong)f(t)o(yp)q(e)h(c)o(hec)o(king)g
(of)g(C++)g(to)g(ensure)g(that)f(\014les)h(are)g(used)h(with)e(the)h(correct)
37 2469 y(access)22 b(mo)q(de.)39 b(The)22 b(t)o(w)o(o)f(ma)s(jor)e(access)j
(mo)q(des)f(are)g(represen)o(ted)i(b)o(y)e(classes)h fg(W)o(riteFileStream)e
fn(and)941 2760 y(124)g eop bop 37 42 a fg(ReadFileStream)p fn(,)22 b(whic)o
(h)e(are)h(sub)q(classes)f(of)g fg(FileStream)p fn(.)35 b(They)21 b(supp)q
(ort)g(write-only)e(and)i(read-only)37 126 y(access)16 b(to)e(a)h fg(FileStre\
am)p fn(,)f(resp)q(ectiv)o(ely)l(.)108 211 y(The)19 b(basic)f(messages)f(supp)
q(orted)i(b)o(y)g(the)f fg(FileStreams)g fn(are)h fg(read\(\))f fn(or)g fg
(write\(\))f fn(\(dep)q(ending)j(on)e(the)37 296 y(access)h(mo)q(de\),)e fg
(setO\013set\(\))j fn(and)e fg(o\013set\(\))p fn(.)29 b(The)18 b fg(read\(\))
g fn(and)g fg(write\(\))g fn(messages)f(are)h(used)g(in)g(the)h(same)37 380 y
(manner)c(as)g(for)g fg(InputStreams)h fn(and)g fg(OutputStreams)i fn(\(Secti\
on)d(A.4\).)k(A)d fg(FileStream)e fn(con)o(tains)h(a)g(p)q(oin)o(ter)37 465 y
(to)d(the)f(curren)o(t)h(read/write)e(p)q(osition)h(in)g(the)h(\014le.)19 b
(The)12 b(p)q(oin)o(ter)f(ma)o(y)f(b)q(e)i(mo)o(v)o(ed)e(b)o(y)i(using)f(the)
h fg(setO\013set\(\))37 550 y fn(message,)f(whic)o(h)h(b)q(eha)o(v)o(es)g(lik)
o(e)f(the)i(Unix)e(v)o(ersion)h(of)f fg(fseek\(\))h fn(as)g(sho)o(wn)g(in)f
(T)l(able)h(A.1.)18 b(The)13 b(programm)o(er)37 634 y(ma)o(y)h(inquire)h(a)g
fg(FileStream)f fn(ab)q(out)h(the)g(lo)q(cation)f(of)h(its)g(p)q(oin)o(ter)f
(b)o(y)h(sending)h(the)f fg(o\013set\(\))g fn(message.)151 741 y fi(in)o(t)g
fg(setO\013set\()p fi(in)o(t)h fg(delta,)g fi(in)o(t)e fg(mo)q(de\);)358 853 y
1234 2 v 357 910 a 2 57 v 383 893 a fi(Mo)q(de)537 910 y 2 57 v 563 893 a(In)
o(terpretation)911 910 y 2 57 v 1010 893 a(New)j(p)q(oin)o(ter)g(p)q(osition)
1591 910 y 2 57 v 358 911 a 1234 2 v 357 968 a 2 57 v 437 951 a fn(0)537 968 y
2 57 v 563 951 a(Beginning)e(of)g(\014le)911 968 y 2 57 v 1205 951 a fk(delta)
1591 968 y 2 57 v 357 1024 a 2 57 v 437 1007 a fn(1)537 1024 y 2 57 v 587 1007
a(Curren)o(t)g(o\013set)911 1024 y 2 57 v 937 1007 a fk(curr)n(ent)h(p)n(oint\
er)g(p)n(osition)g(+)g(delta)1591 1024 y 2 57 v 357 1081 a 2 57 v 437 1064 a
fn(2)537 1081 y 2 57 v 622 1064 a(End)f(of)g(\014le)911 1081 y 2 57 v 1098
1064 a fk(\014le)g(size)h(+)g(delta)1591 1081 y 2 57 v 358 1082 a 1234 2 v 480
1162 a fi(T)l(able)i(A.1)p fn(:)h(Argumen)o(ts)13 b(for)i fg(FileStream::setO\
\013set\(\))108 1297 y fn(In)g(the)g(next)g(example,)e(a)h(\014le)h(is)f(op)q
(ened)i(in)e(write-only)f(mo)q(de)h(if)g(it)g(already)g(exists.)19 b(Characte\
rs)14 b(are)37 1381 y(read)19 b(from)d(the)j(terminal)d(and)i(app)q(ended)i
(at)e(the)g(end)h(of)f(the)h(\014le.)29 b(If)18 b(the)h(\014le)f(did)h(not)e
(already)h(exist)37 1466 y(when)13 b(it)f(is)g(op)q(ened,)i(it)e(is)f(created\
.)19 b(This)13 b(b)q(eha)o(viour)f(is)g(similar)d(to)j(a)g(Unix)h(\014le)f
(op)q(ened)i(in)e(app)q(end)i(mo)q(de.)151 1572 y fk(//)46 b(sample2.c)n(c:)
22 b(Write)h(keyb)n(o)n(ar)n(d)g(input)g(into)f(the)h(\014le)f("out.1".)47 b
(If)22 b("out.1")151 1629 y(//)46 b(alr)n(e)n(ady)23 b(exists,)e(the)i(keyb)n
(o)n(ar)n(d)g(input)g(is)f(app)n(ende)n(d)h(to)g(the)g(\014le.)44 b(Stops)23 b
(when)151 1685 y(//)46 b('#')23 b(is)f(typ)n(e)n(d.)151 1742 y fh(#include)14
b fg(")p fh(OutputStream.h)p fg(")151 1798 y fh(#include)g fg(")p fh(InputStr\
eam.h)p fg(")151 1855 y fh(#include)g fg(")p fh(FileSystemInterface.h)p fg
(")151 1911 y fh(#include)g fg(")p fh(WriteFileStream.h)p fg(")151 1967 y fh
(#include)g fg(")p fh(WriteFileStreamStar.h)p fg(")151 2080 y fi(in)o(t)h fg
(main)f(\()p fi(in)o(t)p fg(,)g fi(c)o(har)h fl(\003\003)p fg(\))151 2137 y fl
(f)197 2193 y fk(//)46 b(This)22 b(pr)n(o)n(gr)n(am)g(op)n(ens)g(the)h(\014le)
f("out.1",)i(r)n(ep)n(e)n(ate)n(d)r(ly)f(r)n(e)n(ads)f(keypr)n(esses)f(and)
197 2250 y(//)46 b(app)n(ends)22 b(them)h(to)g(the)g(\014le)f(until)g('#')h
(is)f(typ)n(e)n(d.)46 b(The)22 b(\014le)g("out.1")i(is)197 2306 y(//)46 b(cr)
n(e)n(ate)n(d)22 b(if)g(it)h(do)n(esn)-5 b('t)22 b(exist.)45 b(T)m(o)22 b(\
\014nd)g(out)i(whether)f(it)g(exists,)f(we)h(c)n(al)r(l)197 2363 y(//)46 b
(op)n(en\(\))21 b(on)i(the)f(Standar)n(dFileSystemInterfac)n(e,)f(tel)r(ling)
g(it)i(to)g(op)n(en)f(the)197 2419 y(//)46 b(\014le)21 b("out.1")k(for)e(writ\
ing.)45 b(If)22 b(the)h(Standar)n(dFileSystemInterfac)n(e)d(r)n(eturns)j(an)
197 2476 y(//)46 b(err)n(or)23 b(c)n(o)n(de,)f(we)h(assume)f(that)i(the)f(\
\014le)e(do)n(esn)-5 b('t)23 b(exist,)f(and)h(we)g(c)n(an)f(go)h(ahe)n(ad)197
2532 y(//)46 b(to)23 b(cr)n(e)n(ate)f(it.)45 b(T)m(o)22 b(cr)n(e)n(ate)h(the)
g(\014le,)e(we)i(c)n(al)r(l)f(cr)n(e)n(ate\(\))g(on)g(the)h(Standar)n(d)197
2588 y(//)46 b(FileSystemInterfac)n(e,)20 b(and)i(ab)n(ort)h(with)h(an)e(err)
n(or)h(message)f(if)h(cr)n(e)n(ate\(\))e(fails.)941 2760 y fn(125)g eop bop
197 42 a fk(//)197 98 y(//)46 b(If)22 b(the)h(\014le)e(was)i(op)n(ene)n(d)f
(or)i(cr)n(e)n(ate)n(d)e(suc)n(c)n(essful)r(ly,)f(op)n(en\(\))g(or)i(cr)n(e)n
(ate\(\))197 154 y(//)46 b(r)n(eturns)22 b(a)h(WriteFileStr)n(e)n(am)f(obje)n
(ct)g(\(c)n(al)r(l)g(it)g(outf)5 b(\).)46 b(If)22 b(op)n(en\(\))g(suc)n(c)n
(e)n(e)n(de)n(d,)197 211 y(//)46 b(the)22 b(\014le)g(must)h(alr)n(e)n(ady)g
(exist,)f(and)h(we)g(should)g(app)n(end)f(data)i(to)f(it.)46 b(T)m(o)197 267 y
(//)g(pr)n(ep)n(ar)n(e)22 b(the)h(\014le)f(for)h(app)n(ending)f(data,)i(we)e
(set)h(the)g(\014le)f(p)n(ointer)g(to)h(the)197 324 y(//)46 b(end)22 b(of)h
(the)g(\014le;)f(this)g(is)g(done)h(by)g(c)n(al)r(ling)e(setO\013set\(\))g
(on)i(outf.)46 b(After)197 380 y(//)g(that,)23 b(we)g(c)n(an)f(r)n(e)n(ad)g
(keypr)n(esses)g(and)g(write)h(them)h(into)e(the)h(\014le)f(by)h(c)n(al)r(lin\
g)197 437 y(//)46 b(write\(\))22 b(on)g(outf.)197 493 y(//)197 550 y(//)46 b
(We)23 b(do)g(not)f(have)h(to)g(close)f(outf)i(explicitly)e(b)n(e)n(c)n(ause)
g(we)g(ar)n(e)h(using)f(smart)197 606 y(//)46 b(p)n(ointers)22 b(her)n(e)g
(-)h(outf)h(is)e(a)h(WriteFileStr)n(e)n(amStar)f(that)h(c)n(ontains)f(a)h(p)n
(ointer)197 663 y(//)46 b(to)23 b(a)g(WriteFileStr)n(e)n(am)e(obje)n(ct,)i
(and)f(when)h(outf)h(go)n(es)e(out)h(of)g(sc)n(op)n(e,)f(it)h(wil)r(l)197 719
y(//)46 b(b)n(e)22 b(destr)n(oye)n(d,)g(along)g(with)i(the)f(WriteFileStr)n
(e)n(am)f(obje)n(ct)g(that)h(it)g(r)n(efer)n(enc)n(es.)197 775 y(//)46 b(When)
22 b(the)h(WriteFileStr)n(e)n(am)f(obje)n(ct)h(is)f(destr)n(oye)n(d,)g(the)h
(\014le)f(wil)r(l)g(b)n(e)h(close)n(d.)197 832 y(//)46 b(The)22 b(Standar)n
(dFileSystemInterfac)n(e)e(is)i(a)h(sp)n(e)n(cial)f(glob)n(al)g(variable)g
(of)h(typ)n(e)197 888 y(//)46 b(FileSystemInterfac)n(e)20 b(use)n(d)i(for)h
(ac)n(c)n(essing)e(\014le)h(servic)n(es.)197 1001 y fi(in)o(t)14 b fg(erro)o
(r;)197 1058 y fk(//)46 b(Op)n(en)21 b(the)i(\014le)f("out.1")j(for)e(writing\
.)197 1114 y fg(W)o(riteFileStreamSta)o(r)13 b(outf)j(=)g(Standa)o(rdFileSyst\
emInterface)g fl(!)242 1171 y fg(op)q(en)g(\()p fh("out.1")p fg(,)e(W)o(riteF\
ileStreamClass,)g(erro)o(r\);)197 1227 y fi(if)g fg(\(erro)o(r\))197 1284 y fl
(f)242 1340 y fk(//)46 b(If)22 b(\014le)g(c)n(an)-5 b('t)22 b(b)n(e)h(op)n
(ene)n(d,)f(assume)g(it)h(do)n(esn)-5 b('t)22 b(exist.)45 b(Now)23 b(cr)n(e)n
(ate)g(it.)242 1396 y fg(outf)16 b(=)f(Standa)o(rdFileSystemInterface)i fl
(!)f fg(create)f(\()p fh("out.1")p fg(,)288 1453 y(W)o(riteFileStreamClass,)f
(0666,)f(erro)o(r\);)140 b fk(//)45 b(0666:)24 b(p)n(ermissions)d(on)i(the)g
(\014le.)242 1509 y fi(if)15 b fg(\(erro)o(r\))242 1566 y fl(f)288 1622 y fk
(//)45 b(Can)-5 b('t)23 b(cr)n(e)n(ate)f(the)h(\014le.)288 1679 y fl(\003)p fg
(Standa)o(rdOutput)18 b fl(\034)e fh(")p fl(\003\003\003)23 b fh(error)g(")15
b fl(\034)h fg(erro)o(r)d fl(\034)333 1735 y fh(")24 b(while)f(opening)g(outf\
ile)p fl(n)p fh(n")13 b fl(\034)j fg(eo)o(r;)288 1792 y fi(return)e fg(0;)242
1848 y fl(g)197 1905 y(g)197 1961 y fi(else)197 2017 y fl(f)242 2074 y fk(//)
46 b(Se)n(ek)22 b(to)h(the)g(end)f(of)h(the)g(\014le:)f(2)h(me)n(ans)f(use)g
(end-of-\014le)g(as)h(the)g(origin,)242 2130 y(//)46 b(0)23 b(is)f(the)h(o\
\013set)g(fr)n(om)f(the)h(origin.)242 2187 y fi(if)15 b fg(\(outf)g fl(!)h fg
(setO\013set)h(\(0,)d(2\))h(==)g(-1\))242 2243 y fl(f)333 2300 y fk(//)46 b
(Can)-5 b('t)22 b(se)n(ek.)333 2356 y fl(\003)p fg(Standa)o(rdOutput)d fl(\
\034)c fh(")p fl(\003\003\003)23 b fh(error)g(while)h(setting)e(offset)p fl
(n)p fh(n")14 b fl(\034)i fg(eo)o(r;)333 2413 y fi(return)f fg(0;)242 2469 y
fl(g)197 2526 y(g)197 2582 y(\003)p fg(Standa)o(rdOutput)j fl(\034)e fh("Type)
23 b(a)h(sequence)f(of)g(keys)g(ending)h(with)f(#)p fl(n)p fh(n")14 b fl(\034)
i fg(eo)o(r;)941 2760 y fn(126)g eop bop 197 42 a fi(c)o(har)15 b fg(c)g([1];)
197 98 y fi(in)o(t)f fg(cha)o(rsRead)i(=)g(Standa)o(rdInput)i fl(!)d fg(read)
g(\(c,)g(1\);)197 154 y fi(while)f fg(\(\(c)g([0])h fl(6)p fn(=)h fg('#'\))e
(&&)i(\(cha)o(rsRead)g fm(>)f fg(0\)\))197 211 y fl(f)242 267 y fg(outf)h fl
(!)f fg(write)h(\(c,)e(1\);)242 324 y(cha)o(rsRead)i(=)g(Standa)o(rdInput)i fl
(!)d fg(read\(c,1\);)197 380 y fl(g)197 437 y fk(//)46 b(outf)23 b(go)n(es)f
(out)h(of)g(sc)n(op)n(e)f(her)n(e)h(and)g(the)g(\014le)e(is)i(automatic)n(al)
r(ly)g(close)n(d.)197 493 y fi(return)14 b fg(0;)151 550 y fl(g)108 673 y fn
(In)h(this)f(example,)g(it)f(is)i(p)q(ossible)f(to)g(close)g(the)h(\014le)g
(b)o(y)f(assigning)f(another)i fg(FileStream)e fn(ob)s(ject)h(to)g(the)37 757
y(smart)g(p)q(oin)o(ter)i fg(outf)s fn(,)g(or)g(b)o(y)f(lea)o(ving)g(the)h
(blo)q(c)o(k)g(in)g(whic)o(h)f(the)h(smart)e(p)q(oin)o(ter)i(is)f(declared.)
22 b(The)16 b(smart)37 842 y(p)q(oin)o(ter)f(will)f(close)h(the)g(\014le)g
(automatically)d(when)k(the)f(references)h(to)e(the)i(\014le)f(are)g(deleted.)
108 927 y(A)h(sligh)o(tly)d(more)h(complicated)g(example)g(is)h(sho)o(wn)g
(in)g(Section)h(A.8.)k(In)c(this)e(case,)i(w)o(e)f(ha)o(v)o(e)g(imple-)37 1012
y(men)o(ted)g(a)g(class)g fg(Line)g fn(that)g(is)f(basically)g(a)h(string)g
(of)f(c)o(haracters)h(that)f(has)i(metho)q(ds)e(to)h(write)f(and)i(read)37
1096 y(itself)e(from)e(\014les)i(or)g(a)g(terminal.)j(The)e(message)e fg(equa\
ls\(\))i fn(compares)e(t)o(w)o(o)g(strings.)18 b(This)c(class)f(is)h(used)h
(to)37 1181 y(implemen)o(t)g(a)i(simple)e(t)o(yping)i(tutor)f(program.)24 b
(A)17 b(\\teac)o(her")f(line)h(is)g(read)g(from)f(a)g(\014le)i(and)f(presen)o
(ted)37 1266 y(on)i(the)g(screen.)31 b(Then)19 b(a)f(\\studen)o(t")g(line)h
(is)f(read)g(from)f(the)i(terminal)d(and)j(if)f(they)h(are)f(equal)h(a)f(new)
37 1350 y(\\teac)o(her")c(line)g(is)g(read)g(from)f(the)h(\014le.)20 b(Otherw\
ise)14 b(the)h(same)e(\\teac)o(her")g(line)i(is)e(presen)o(ted)i(again.)k(Thi\
s)37 1435 y(pro)q(cess)c(is)f(rep)q(eated)g(un)o(til)f(w)o(e)h(reac)o(h)g(the)
g(end)h(of)f(the)g(\014le)g(or)g(the)g(studen)o(t)g(decides)h(that)e(he)i(had)
f(enough)37 1520 y(and)i(k)o(eys)f(`#'.)37 1699 y fd(A.6)70 b(Using)23 b(Time\
rs)37 1828 y fn(Timers)18 b(are)h(ob)s(jects)f(in)h(Choices.)31 b(Timers)17 b
(are)i(useful)g(for)g(measuring)e(p)q(erformance)h(and)h(reco)o(v)o(ering)37
1913 y(from)13 b(errors.)19 b(In)c(this)f(section)g(w)o(e)g(will)f(discuss)h
(t)o(w)o(o)f(particular)g(classes)h(of)g(timers:)j(free)e(running)f(timers)37
1998 y(and)i(timeout)d(timers.)37 2147 y ff(A.6.1)56 b(F)-5 b(ree)18 b(Runnin\
g)i(Timers)37 2261 y fn(The)c(nameserv)o(er)f(pro)o(vides)g(access)g(to)g(the)
h(Choices)f(ob)s(ject)g fg(SystemTimer)g fn(of)g(class)g fg(F)o(reeRunningTim\
er)p fn(.)37 2346 y(This)e(ob)s(ject)f(resp)q(onds)h(to)f(the)h(message)e fg
(time\(\))h fn(b)o(y)h(returning)f(the)h(time)e(in)h(microseconds)g(since)h
(Choices)37 2430 y(w)o(as)j(started.)22 b(The)16 b(system)f(timer)f(can)j(b)q
(e)g(used)f(to)g(measure)f(the)h(time)f(sp)q(en)o(t)h(on)h(a)e(particular)g
(part)h(of)37 2515 y(an)g(application)d(program,)g(as)i(in)g(the)g(follo)o
(wing)e(example:)151 2610 y fh(#include)h fg(")p fh(FreeRunningTimer.h)p fg
(")941 2760 y fn(127)g eop bop 151 42 a fh(#include)14 b fg(")p fh(FreeRunnin\
gTimerStar.h)p fg(")151 98 y fn(.)8 b(.)g(.)151 154 y fi(unsigned)15 b(in)o
(t)f fg(sta)o(rt,)h(timesp)q(ent;)151 211 y(F)o(reeRunningTimerSta)o(r)g(Syst\
emTimer)f(=)i(\(F)o(reeRunningTimerSta)o(r\))197 267 y(Standa)o(rdNameServer)
f fl(!)g fg(lo)q(okup)h(\()p fh("SystemTimer")p fg(,)d fh("FreeRunningTimer")
p fg(\);)151 324 y fn(.)8 b(.)g(.)151 380 y fg(sta)o(rt)16 b(=)f(SystemTimer)
f fl(!)i fg(time\(\);)151 493 y fn(.)8 b(.)g(.)13 b fg(Some)i(computation)h fn
(.)8 b(.)g(.)151 606 y fg(timesp)q(ent)17 b(=)f(SystemTimer)e fl(!)h fg(time\
\(\))g(-)g(sta)o(rt;)151 663 y fl(\003)p fg(Standa)o(rdOutput)j fl(\034)e fh
("Time)23 b(spent:)47 b(")14 b fl(\034)i fg(timesp)q(ent)g fl(\034)f fh(")24 b
(microseconds)p fl(n)p fh(n")13 b fl(\034)i fg(eo)o(r;)151 719 y fn(.)8 b(.)g
(.)108 853 y(The)19 b(problem)e(with)h(the)g(system)f(timer)g(is)h(that)g(it)
f(rolls)g(o)o(v)o(er)h(ev)o(ery)g(4294)g(seconds)h(\(or)e(ab)q(out)i(an)37 938
y(hour\).)h(The)15 b(limitation)d(is)j(caused)g(b)o(y)h(using)f(a)f(32-bit)h
(unsigned)g(in)o(teger)g(to)f(store)h(the)g(time.)37 1089 y ff(A.6.2)56 b(Tim\
eout)18 b(Timers)37 1203 y fn(Our)h(application)e(program)f(can)i(create)f
(\(without)g(using)h(the)g(nameserv)o(er\))e(timers)h(of)g(class)h fg(Timeout\
-)37 1288 y(Timer)p fn(.)h(The)c(main)f(metho)q(ds)g(in)h(this)g(class)g(are:)
106 1422 y fl(\017)22 b fg(unsigned)14 b(int)f(sta)o(rt\(unsigned)h(int)e(mic\
roseconds\))p fn(:)19 b(Starts)10 b(the)i(timeout)e(timer)g(with)i(lapse)f fg
(microsec-)151 1507 y(onds)p fn(.)21 b(Returns)16 b(the)f(actual)f(n)o(um)o
(b)q(er)h(of)g(microseconds)f(set.)106 1629 y fl(\017)22 b fg(unsigned)17 b
(int)f(stop\(\))p fn(:)21 b(Stops)15 b(the)g(timer.)j(Returns)e(the)f(n)o(um)
o(b)q(er)f(of)h(microseconds)f(left.)106 1751 y fl(\017)22 b fg(unsigned)17 b
(int)f(residual\(\))p fn(:)k(Returns)c(the)f(remaining)e(n)o(um)o(b)q(er)i
(of)g(microseconds.)106 1873 y fl(\017)22 b fg(void)15 b(a)o(w)o(ait\(\))p fn
(:)k(The)c(curren)o(t)h(pro)q(cess)f(w)o(aits)f(un)o(til)g(the)h(timer)f(expi\
res.)108 2007 y(In)i(the)f(follo)o(wing)e(example)h(a)h fg(TimeoutTimer)f fn
(is)g(used)i(to)f(prin)o(t)f(\\Hello")g(on)h(the)g(screen)h(ev)o(ery)f fg(lap\
se)37 2092 y fn(seconds.)151 2198 y fk(//)46 b(sample3.c)n(c:)22 b(R)n(e)n
(ad)h(a)g(numb)n(er)f("lapse")h(fr)n(om)g(Standar)n(dInput)g(and)f(print)h
("Hel)r(lo")151 2255 y(//)46 b(10)23 b(times)g(after)g(waiting)f("lapse")h
(se)n(c)n(onds)f(e)n(ach)g(time.)151 2311 y fh(#include)14 b fg(")p fh(Output\
Stream.h)p fg(")151 2368 y fh(#include)g fg(")p fh(InputStream.h)p fg(")151
2424 y fh(#include)g fg(")p fh(TimeoutTimer.h)p fg(")151 2481 y fh(#include)g
fg(")p fh(TimeoutTimerStar.h)p fg(")151 2594 y fi(in)o(t)h fg(main)f(\()p fi
(in)o(t)p fg(,)g fi(c)o(har)h fl(\003\003)p fg(\))941 2760 y fn(128)g eop bop
151 42 a fl(f)197 98 y fk(//)46 b(In)21 b(or)n(der)i(to)g(wait)h("lapse")f
(se)n(c)n(onds,)e(we)i(cr)n(e)n(ate)f(a)h(Time)n(outTimer)f(obje)n(ct,)197 154
y(//)46 b(c)n(al)r(l)22 b(start\(\))g(to)h(tel)r(l)f(it)h(how)g(long)f(to)h
(wait,)g(and)g(then)g(c)n(al)r(l)f(await\(\))g(to)197 211 y(//)46 b(actual)r
(ly)23 b(do)g(the)g(waiting;)f(await\(\))h(wil)r(l)f(not)h(r)n(eturn)g(until)
f(the)h(timer)g(has)197 267 y(//)46 b(expir)n(e)n(d.)f(The)22 b(ar)n(gument)h
(to)g(start\(\))f(is)g(expr)n(esse)n(d)g(in)g(micr)n(ose)n(c)n(onds,)f(so)197
324 y(//)46 b(we)22 b(have)h(to)g(multiply)g("lapse")g(by)g(100000)h(and)f
(p)n(ass)f(the)h(r)n(esult)f(as)h(the)197 380 y(//)46 b(ar)n(gument.)f(We)23 b
(use)g(the)g(Time)n(outTimerStar)f(smart)h(p)n(ointer)g(her)n(e)f(so)h(that)
197 437 y(//)46 b(we)22 b(don)-5 b('t)23 b(have)g(to)h(destr)n(oy)e(the)h(tim\
er)g(explicitly.)197 550 y(//)46 b(Make)22 b(a)h(new)f(timer.)197 606 y fg
(TimeoutTimerSta)o(r)13 b(timer)h(=)i fi(new)f fg(TimeoutTimer;)197 663 y fi
(in)o(t)f fg(lapse;)197 719 y fl(\003)p fg(Standa)o(rdOutput)k fl(\034)e fh
("Time)23 b(between)g(hellos)g(in)h(seconds:)p fl(n)p fh(n")13 b fl(\034)j fg
(eo)o(r;)197 775 y(Standa)o(rdInput)h fl(!)f fg(fo)o(rmattedRead)f(\()p fh
("%d")p fg(,)f(&lapse\);)197 832 y fi(for)g fg(\()p fi(in)o(t)h fg(i)g(=)g
(0;)g(i)g fm(<)g fg(10;)f(i++\))197 888 y fl(f)242 945 y fk(//)46 b(Start)23 b
(the)g(timer.)242 1001 y fg(timer)14 b fl(!)i fg(sta)o(rt)f(\(lapse)p fl(\003)
p fg(1000000\);)242 1058 y fk(//)46 b(Wait)23 b(for)g(the)g(timer)g(to)g(expi\
r)n(e.)242 1114 y fg(timer)14 b fl(!)i fg(a)o(w)o(ait)f(\(\);)242 1171 y fk
(//)46 b(Timer)22 b(has)h(expir)n(e)n(d.)45 b(Print)23 b(a)g(message.)242 1227
y fl(\003)p fg(Standa)o(rdOutput)c fl(\034)c fh("Hello)p fl(n)p fh(n")f fl
(\034)i fg(eo)o(r;)197 1284 y fl(g)197 1340 y fi(return)e fg(0;)151 1396 y fl
(g)37 1577 y fd(A.7)70 b(Pro)r(cess)22 b(creation,)i(comm)m(unication)d(and)j
(sync)n(hronization)37 1707 y fn(An)19 b(adv)m(an)o(tage)f(of)g(Choices)h(o)o
(v)o(er)e(man)o(y)g(other)i(op)q(erating)e(systems)g(is)h(that)g(it)g(is)g
(p)q(ossible)g(to)g(express)37 1791 y(concurrency)j(using)f(ligh)o(t)o(w)o
(eigh)o(t)d(pro)q(cesses.)34 b(Ligh)o(t)o(w)o(eigh)o(t)18 b(pro)q(cesses)i
(can)g(b)q(e)h(created)f(with)f(a)h(small)37 1876 y(o)o(v)o(erhead)13 b(b)q
(ecause)h(they)f(share)g(the)g(memory)d(space)j(of)g(the)g(pro)q(cess)g(that)
f(created)h(them)f(and)h(can)g(access)37 1961 y(the)i(same)d(global)h(v)m(ari\
ables.)19 b(A)14 b(c)o(hange)g(made)f(to)g(a)h(global)e(v)m(ariable)i(b)o(y)g
(one)g(of)f(the)h(pro)q(cesses)h(is)e(visible)37 2045 y(to)i(the)g(others.)20
b(Comm)o(unicati)o(on)12 b(b)q(et)o(w)o(een)k(ligh)o(t)o(w)o(eigh)o(t)c(pro)q
(cesses)k(can)f(b)q(e)h(implemen)o(ted)d(in)i(this)g(w)o(a)o(y)l(.)108 2130 y
(It)h(is)g(also)f(p)q(ossible)h(to)f(create)h(Unix-st)o(yle)f(hea)o(vyw)o(eig\
h)o(t)g(pro)q(cesses)i(in)e(Choices)h(using)g(the)g fg(Applica-)37 2215 y(tio\
nDispatcher)i fn(metho)q(ds.)j(In)16 b(this)f(case,)h(eac)o(h)f(hea)o(vyw)o
(eigh)o(t)g(pro)q(cess)h(has)f(its)g(o)o(wn)g(protected)h(memory)37 2299 y
(space)j(and)f(indep)q(enden)o(t)h(set)e(of)h(global)e(v)m(ariables.)27 b(Suc)
o(h)18 b(pro)q(cesses)h(can)f(p)q(erform)e(in)o(terpro)q(cess)i(com-)37 2384 y
(m)o(unication)c(through)i(shared)g(memory)e(or)h(messages,)g(but)h(the)g(set)
g(up)h(costs)e(are)h(higher)g(and)g(the)g(API)37 2469 y(is)f(a)g(little)f(mor\
e)f(complicated.)941 2760 y(129)g eop bop 108 42 a fn(Whenev)o(er)18 b(shared)
f(memory)e(is)i(used)h(for)f(comm)o(unication,)e(a)i(sync)o(hronization)f(mec)
o(hanism)f(is)i(re-)37 126 y(quired)i(to)f(pro)o(vide)h(critical)e(sections)h
(and)h(signalling.)28 b(In)20 b(order)e(to)g(sync)o(hronize)h(pro)q(cesses,)h
(Choices)37 211 y(supp)q(orts)c(semaphores.)37 361 y ff(A.7.1)56 b(Pro)r(cess)
18 b(Creation)37 475 y fn(In)d(Choices,)e(pro)q(cesses)h(are)f(ob)s(jects)g
(of)h(class)f fg(Pro)q(cess)h fn(or)f(one)h(of)f(its)g(sub)q(classes.)19 b
(Application)13 b(pro)q(cesses)37 560 y(are)h(ob)s(jects)f(of)g(class)g fg
(ApplicationPro)q(cess)p fn(.)21 b(The)14 b fg(ApplicationPro)q(cess)i fn(con\
structor)d(can)g(b)q(e)h(used)h(to)d(build)37 645 y(a)k(pro)q(cess)g(and)f
(it)g(requires)h(as)f(an)h(argumen)o(t)d(a)j(p)q(oin)o(ter)f(to)g(a)g(main)f
(\\function")h(that)g(will)f(b)q(e)j(executed)37 729 y(b)o(y)g(the)f(pro)q
(cess.)24 b(A)17 b(\\command)d(line")i(to)g(b)q(e)h(passed)f(to)g(the)h(pro)q
(cess)g(ma)o(y)d(also)i(b)q(e)h(sp)q(eci\014ed)g(if)f(one)h(is)37 814 y(desir\
ed.)26 b(Once)18 b(the)f(pro)q(cess)g(is)g(created,)g(it)f(can)h(b)q(e)h(disp\
atc)o(hed)f(on)g(the)g(pro)q(cessor)g(b)o(y)g(placing)f(it)g(in)o(to)37 899 y
(the)h(Choices)f(pro)q(cess)g(sc)o(heduler.)23 b(Sending)17 b(the)f(message)f
fg(ready\(\))g fn(to)h(the)g(pro)q(cess)h(ob)s(ject)e(will)g(put)h(the)37 983
y(pro)q(cess)g(in)o(to)e(the)h(pro)q(cess)h(sc)o(heduler.)k(A)15 b(simple)f
(example)g(is)h(sho)o(wn)g(b)q(elo)o(w.)151 1086 y fk(//)46 b(sample4.c)n(c:)
22 b(Cr)n(e)n(ate)g(a)h(lightweight)g(pr)n(o)n(c)n(ess,)e(print)i(something)f
(in)g(the)h(curr)n(ent)151 1142 y(//)46 b(pr)n(o)n(c)n(ess)21 b(and)i(in)f
(the)h(new)g(pr)n(o)n(c)n(ess.)151 1199 y fh(#include)14 b fg(")p fh(OutputSt\
ream.h)p fg(")151 1255 y fh(#include)g fg(")p fh(Process.h)p fg(")151 1312 y
fh(#include)g fg(")p fh(ProcessStar.h)p fg(")151 1424 y fi(in)o(t)h fg(main2)
f(\()p fi(in)o(t)p fg(,)g fi(c)o(har)h fl(\003\003)p fg(\))151 1481 y fl(f)
197 1537 y fk(//)46 b(This)22 b(function)g(is)g(the)h(entry)g(p)n(oint)f(of)h
(the)g(lightweight)g(pr)n(o)n(c)n(ess)e(cr)n(e)n(ate)n(d)197 1594 y(//)46 b
(in)22 b(main\(\).)44 b(When)23 b(the)g(pr)n(o)n(c)n(ess)e(exits)i(fr)n(om)g
(this)f(function,)h(the)f(pr)n(o)n(c)n(ess)197 1650 y(//)46 b(wil)r(l)22 b
(b)n(e)g(terminate)n(d.)197 1763 y(//)46 b(The)22 b(new)g(lightweight)h(pr)n
(o)n(c)n(ess)e(wil)r(l)i(start)g(her)n(e...)197 1820 y fl(\003)p fg(Standa)o
(rdOutput)18 b fl(\034)e fh("hello)23 b(sailor)g(2!)p fl(n)p fh(n")14 b fl
(\034)i fg(eo)o(r;)197 1876 y fk(//)46 b(...and)22 b(die)h(her)n(e.)197 1933 y
fi(return)14 b fg(0;)151 1989 y fl(g)151 2102 y fi(in)o(t)h fg(main)f(\()p fi
(in)o(t)p fg(,)g fi(c)o(har)h fl(\003\003)p fg(\))151 2158 y fl(f)197 2215 y
fk(//)46 b(We)23 b(cr)n(e)n(ate)f(a)h(lightweight)g(pr)n(o)n(c)n(ess)e(by)i
(making)f(a)h(new)g(Applic)n(ationPr)n(o)n(c)n(ess.)197 2271 y(//)46 b(The)22
b(Applic)n(ationPr)n(o)n(c)n(ess)e(c)n(onstructor)j(ac)n(c)n(epts)f(an)h(ar)n
(gument)f(that)i(sp)n(e)n(ci\014es)197 2328 y(//)46 b(which)23 b(function)f
(to)h(b)n(e)f(exe)n(cute)n(d)h(when)g(the)g(new)f(pr)n(o)n(c)n(ess)f(runs.)45
b(The)23 b(pr)n(o)n(c)n(ess)197 2384 y(//)46 b(wil)r(l)22 b(not)h(run)f(autom\
atic)n(al)r(ly)i(when)f(we)f(cr)n(e)n(ate)h(it;)f(we)h(have)g(to)g(c)n(al)r
(l)f(r)n(e)n(ady\(\))197 2441 y(//)46 b(on)22 b(the)h(pr)n(o)n(c)n(ess)e(to)i
(make)g(it)g(run)g(\(when)f(the)h(CPU)f(is)g(available\).)45 b(We)23 b(use)g
(the)197 2497 y(//)46 b(Pr)n(o)n(c)n(essStar)21 b(smart)i(p)n(ointer)f(her)n
(e)h(so)f(that)i(we)e(don)-5 b('t)24 b(have)f(to)g(destr)n(oy)f(the)197 2554 y
(//)46 b(pr)n(o)n(c)n(ess)21 b(explicitly.)941 2760 y fn(130)g eop bop 197 42
a fk(//)46 b(Cr)n(e)n(ate)21 b(a)i(new)g(lightweight)g(pr)n(o)n(c)n(ess)e(tha\
t)i(wil)r(l)g(start)g(at)g(main2\(\).)197 98 y fg(Pro)q(cessSta)o(r)15 b(p)o
(ro)q(c)g(=)h fi(new)f fg(ApplicationPro)q(cess)i(\(main2\);)197 154 y fi(if)
d fg(\(p)o(ro)q(c)h(==)h(0\))197 211 y fl(f)242 267 y fk(//)46 b(Can)-5 b('t)
22 b(cr)n(e)n(ate)h(pr)n(o)n(c)n(ess.)242 324 y fl(\003)p fg(Standa)o(rdOutpu\
t)c fl(\034)c fh(")p fl(\003\003\003)23 b fh(error)g(while)h(creating)e(a)i
(process)p fl(n)p fh(n")14 b fl(\034)h fg(eo)o(r;)242 380 y fi(return)g fg
(0;)197 437 y fl(g)197 493 y fk(//)46 b(The)22 b(new)g(pr)n(o)n(c)n(ess)g(won)
-5 b('t)23 b(run)g(until)f(we)h(say)f(r)n(e)n(ady\(\).)197 550 y fg(p)o(ro)q
(c)15 b fl(!)g fg(ready\(\);)197 606 y fk(//)46 b(A)o(t)22 b(this)h(p)n(oint,)
f(the)h(new)f(pr)n(o)n(c)n(ess)g(wil)r(l)g(run)h(when)g(it)f(gets)h(the)g(CPU\
.)197 663 y fl(\003)p fg(Standa)o(rdOutput)18 b fl(\034)e fh("hello)23 b(sail\
or)g(1!)p fl(n)p fh(n")14 b fl(\034)i fg(eo)o(r;)197 719 y fi(return)e fg(0;)
151 775 y fl(g)108 910 y fn(This)k(example)f(ab)q(o)o(v)o(e)h(ma)o(y)e(exhibi\
t)i(in)o(terference)g(b)q(et)o(w)o(een)h(the)f(t)o(w)o(o)f(concurren)o(t)h
(pro)q(cesses.)29 b(The)37 995 y fg(Standa)o(rdOutpu)q(t)15 b fn(ob)s(ject)10
b(is)h(shared)g(b)o(y)h(b)q(oth)f(pro)q(cesses)h(b)q(ecause)g(of)f(the)g(shar\
ed)g(memory)l(.)17 b(The)11 b(pro)q(cesses)37 1079 y(can)16 b(b)q(e)g(sync)o
(hronized)f(to)g(use)g fg(Standa)o(rdOutpu)q(t)j fn(in)d(a)g(co)q(ordinated)g
(w)o(a)o(y)f(using)h(semaphores.)37 1230 y ff(A.7.2)56 b(Pro)r(cess)18 b(Sync)
n(hronization)37 1344 y fn(Semaphores)13 b(ma)o(y)e(b)q(e)j(used)g(in)e(the)i
(previous)e(example)g(to)h(ensure)g(that)g(only)f(one)i(pro)q(cess)f(is)g(usi\
ng)f fg(Stan-)37 1429 y(da)o(rdOutput)19 b fn(at)c(a)g(time.)k(Semaphores)c
(in)g(Choices)h(are)f(ob)s(jects)g(of)g(class)g fg(Semapho)o(re)p fn(.)20 b
(The)c(constructor)37 1513 y(allo)o(ws)g(the)i(programm)o(er)d(to)i(sp)q(ecif\
y)g(an)h(initial)d(v)m(alue)j(for)f(the)g(semaphore)g(and)g(the)h(maxim)o(um)
13 b(v)m(alue)37 1598 y(\(default)i(65535\).)j(The)e fg(P\(\))e fn(and)h fg
(V\(\))g fn(messages)f(of)h(a)g(semaphore)f(are)h(used)g(in)g(the)h(con)o(v)o
(en)o(tional)d(w)o(a)o(y)l(.)151 1704 y fk(//)46 b(sample5.c)n(c:)22 b(Cr)n
(e)n(ate)g(a)h(lightweight)g(pr)n(o)n(c)n(ess,)e(print)i(something)f(in)g(the)
h(curr)n(ent)151 1761 y(//)46 b(pr)n(o)n(c)n(ess)21 b(and)i(in)f(the)h(new)g
(pr)n(o)n(c)n(ess)e(in)h(a)h(synchr)n(onize)n(d)e(manner.)151 1817 y fh(#incl\
ude)14 b fg(")p fh(OutputStream.h)p fg(")151 1874 y fh(#include)g fg(")p fh
(Semaphore.h)p fg(")151 1930 y fh(#include)g fg(")p fh(Process.h)p fg(")151
1987 y fh(#include)g fg(")p fh(ProcessStar.h)p fg(")151 2100 y fk(//)46 b(Thi\
s)22 b(semaphor)n(e)h(is)f(for)h(c)n(ontr)n(ol)r(ling)f(ac)n(c)n(ess)f(to)i
(the)g(Standar)n(dOutput.)46 b(Each)151 2156 y(//)g(pr)n(o)n(c)n(ess)21 b(mus\
t)i(P\(\))f(this)h(semaphor)n(e)g(b)n(efor)n(e)f(using)g(the)h(Standar)n(dOut\
put,)h(and)151 2213 y(//)46 b(V\(\))22 b(it)h(Standar)n(dOutput.)46 b(Note)23
b(that)g(this)g(semaphor)n(e)g(lives)e(in)i(glob)n(al)f(variable)151 2269 y
(//)46 b(sp)n(ac)n(e,)22 b(and)h(is)f(henc)n(e)g(ac)n(c)n(essible)e(by)j(ligh\
tweight)g(pr)n(o)n(c)n(esses,)e(sinc)n(e)g(they)151 2325 y(//)46 b(shar)n(e)
23 b(the)g(same)f(glob)n(al)g(variable)h(sp)n(ac)n(e.)44 b(The)23 b(semaphor)
n(e)g(is)f(al)r(lo)n(c)n(ate)n(d)g(in)151 2382 y(//)46 b(main\(\).)151 2438 y
fg(Semapho)o(re)15 b fl(\003)p fg(sem;)151 2551 y fi(in)o(t)g fg(main2)f(\()p
fi(in)o(t)p fg(,)g fi(c)o(har)h fl(\003\003)p fg(\))151 2608 y fl(f)941 2760 y
fn(131)g eop bop 197 42 a fk(//)46 b(This)22 b(function)g(is)g(the)h(entry)g
(p)n(oint)f(of)h(the)g(lightweight)g(pr)n(o)n(c)n(ess)e(cr)n(e)n(ate)n(d)197
98 y(//)46 b(in)22 b(main\(\).)44 b(When)23 b(the)g(pr)n(o)n(c)n(ess)e(exits)
i(fr)n(om)g(this)f(function,)h(the)f(pr)n(o)n(c)n(ess)197 154 y(//)46 b(wil)r
(l)22 b(b)n(e)g(terminate)n(d.)46 b(When)22 b(we)h(want)g(to)g(print)g(someth\
ing,)f(we)h(c)n(al)r(l)f(P\(\))197 211 y(//)46 b(on)22 b(the)h(semaphor)n(e)g
(to)g(enter)f(the)h(critic)n(al)g(se)n(ction,)e(then)i(use)f(the)197 267 y
(//)46 b(Standar)n(dOutput,)23 b(and)g(c)n(al)r(l)f(V\(\))g(on)g(the)h(semaph\
or)n(e)g(to)g(le)n(ave)f(the)h(critic)n(al)197 324 y(//)46 b(se)n(ction.)197
437 y(//)g(Gr)n(ab)22 b(the)h(semaphor)n(e)g(for)g(the)g(Standar)n(dOutput.)
197 493 y fg(sem)14 b fl(!)i fg(P)f(\(\);)197 550 y fl(f)997 b fk(//)46 b(Sta\
rt)23 b(of)g(critic)n(al)f(se)n(ction.)242 606 y fl(\003)p fg(Standa)o(rdOutp\
ut)d fl(\034)c fh("hello)23 b(sailor)g(2!)p fl(n)p fh(n")15 b fl(\034)g fg
(eo)o(r;)197 663 y fl(g)45 b fk(//)h(End)22 b(of)h(critic)n(al)f(se)n(ction.)
197 719 y(//)46 b(R)n(ele)n(ase)21 b(it.)197 775 y fg(sem)14 b fl(!)i fg(V)g
(\(\);)197 832 y fi(return)e fg(0;)151 888 y fl(g)151 1001 y fi(in)o(t)h fg
(main)f(\()p fi(in)o(t)p fg(,)g fi(c)o(har)h fl(\003\003)p fg(\))151 1058 y fl
(f)197 1114 y fk(//)46 b(We)23 b(\014rst)f(cr)n(e)n(ate)g(a)h(semaphor)n(e)g
(to)g(c)n(ontr)n(ol)f(ac)n(c)n(ess)f(to)i(the)g(Standar)n(dOutput.)197 1171 y
(//)46 b(We)23 b(do)g(that)g(by)g(al)r(lo)n(c)n(ating)f(a)h(new)f(Semaphor)n
(e)h(obje)n(ct,)f(and)h(p)n(ass)f(the)h(value)197 1227 y(//)46 b(1)22 b(to)i
(the)e(Semaphor)n(e)i(c)n(onstructor)e(as)h(the)g(initial)f(c)n(ounter)h(valu\
e)f(in)h(the)197 1284 y(//)46 b(Semaphor)n(e.)f(\(P\(\))22 b(wil)r(l)g(de)n
(cr)n(ement)g(the)h(c)n(ounter)g(and)f(blo)n(ck)g(the)h(curr)n(ent)197 1340 y
(//)46 b(pr)n(o)n(c)n(ess)21 b(if)h(the)h(de)n(cr)n(emente)n(d)f(value)h(is)f
(less)g(than)h(0.\))197 1396 y(//)197 1453 y(//)46 b(We)23 b(cr)n(e)n(ate)f
(a)h(lightweight)g(pr)n(o)n(c)n(ess)e(by)i(making)f(a)h(new)g(Applic)n(ationP\
r)n(o)n(c)n(ess.)197 1509 y(//)46 b(The)22 b(Applic)n(ationPr)n(o)n(c)n(ess)e
(c)n(onstructor)j(ac)n(c)n(epts)f(an)h(ar)n(gument)f(that)i(sp)n(e)n(ci\014es)
197 1566 y(//)46 b(which)23 b(function)f(to)h(b)n(e)f(exe)n(cute)n(d)h(when)g
(the)g(new)f(pr)n(o)n(c)n(ess)f(runs.)45 b(The)23 b(pr)n(o)n(c)n(ess)197 1622
y(//)46 b(wil)r(l)22 b(not)h(run)f(automatic)n(al)r(ly)i(when)f(we)f(cr)n(e)n
(ate)h(it;)f(we)h(have)g(to)g(c)n(al)r(l)f(r)n(e)n(ady\(\))197 1679 y(//)46 b
(on)22 b(the)h(pr)n(o)n(c)n(ess)e(to)i(make)g(it)g(run)g(\(when)f(the)h(CPU)f
(is)g(available\).)45 b(We)23 b(use)g(the)197 1735 y(//)46 b(Pr)n(o)n(c)n(ess\
Star)21 b(smart)i(p)n(ointer)f(her)n(e)h(so)f(that)i(we)e(don)-5 b('t)24 b
(have)f(to)g(destr)n(oy)f(the)197 1792 y(//)46 b(pr)n(o)n(c)n(ess)21 b(explic\
itly.)197 1848 y(//)197 1905 y(//)46 b(After)22 b(that,)h(whenever)g(the)g
(old)g(pr)n(o)n(c)n(ess)e(or)i(the)g(new)g(pr)n(o)n(c)n(ess)e(wishes)h(to)197
1961 y(//)46 b(print)22 b(something,)h(it)f(c)n(al)r(ls)g(P\(\))g(on)g(the)h
(semaphor)n(e)g(to)g(enter)g(the)g(critic)n(al)197 2017 y(//)46 b(se)n(ction)
21 b(to)i(use)g(the)g(Standar)n(dOutput,)h(and)e(c)n(al)r(ls)g(V\(\))g(to)h
(exit)f(the)h(critic)n(al)197 2074 y(//)46 b(se)n(ction.)197 2187 y(//)g(Cr)n
(e)n(ate)21 b(the)i(semaphor)n(e.)46 b(1)23 b(me)n(ans)f(the)h(r)n(esour)n
(c)n(e)f(is)g(initial)r(ly)g(available.)197 2243 y fg(sem)14 b(=)i fi(new)f fg
(Semapho)o(re)g(\(1\);)197 2300 y(Pro)q(cessSta)o(r)g(p)o(ro)q(c)g(=)h fi(new)
f fg(ApplicationPro)q(cess)i(\(main2\);)197 2356 y fi(if)d fg(\(p)o(ro)q(c)h
(==)h(0\))197 2413 y fl(f)242 2469 y(\003)p fg(Standa)o(rdOutput)j fl(\034)c
fh(")p fl(\003\003\003)23 b fh(error)g(while)h(creating)e(a)i(process)p fl
(n)p fh(n")14 b fl(\034)h fg(eo)o(r;)242 2526 y fi(return)g fg(0;)197 2582 y
fl(g)p fg(;)941 2760 y fn(132)g eop bop 197 42 a fg(p)o(ro)q(c)15 b fl(!)g fg
(ready)g(\(\);)197 98 y fk(//)46 b(Gr)n(ab)22 b(the)h(semaphor)n(e)g(for)g
(the)g(Standar)n(dOutput.)197 154 y fg(sem)14 b fl(!)i fg(P)f(\(\);)197 211 y
fl(f)997 b fk(//)46 b(Start)23 b(of)g(critic)n(al)f(se)n(ction.)242 267 y fl
(\003)p fg(Standa)o(rdOutput)d fl(\034)c fh("hello)23 b(sailor)g(1!)p fl(n)p
fh(n")15 b fl(\034)g fg(eo)o(r;)197 324 y fl(g)45 b fk(//)h(End)22 b(of)h(cri\
tic)n(al)f(se)n(ction.)197 380 y(//)46 b(R)n(ele)n(ase)21 b(it.)197 437 y fg
(sem)14 b fl(!)i fg(V)g(\(\);)197 493 y fi(return)e fg(0;)151 550 y fl(g)108
684 y fn(Note)k(that)g(in)h(the)g(previous)f(example)g(the)h(semaphore)e(is)i
(declared)f(as)h(a)f(global)g(v)m(ariable)g(b)o(y)g(the)37 769 y(main)c(progr\
am)f(so)i(that)g(it)f(ma)o(y)f(b)q(e)j(shared)g(with)e(the)h(ligh)o(t)o(w)o
(eigh)o(t)e(pro)q(cess.)37 920 y ff(A.7.3)56 b(Pro)r(cess)18 b(Comm)n(unicati\
on)37 1034 y fn(Ligh)o(t)o(w)o(eigh)o(t)g(pro)q(cesses)h(can)h(comm)o(unicate)
d(through)i(shared)g(v)m(ariables)g(lo)q(cated)g(in)g(shared)g(memory)l(.)37
1118 y(The)c(example)e(that)g(w)o(e)h(are)f(going)g(to)h(discuss)g(is)f(a)h
(dual-pro)q(cess)g(v)o(ersion)g(of)f(the)h(t)o(yping)f(tutor)h(program)37 1203
y(in)o(tro)q(duced)f(in)e(Section)h(A.5.)19 b(Its)12 b(source)g(co)q(de)g(is)
g(sho)o(wn)f(in)h(Section)g(A.9.)18 b(In)13 b(this)e(case)h(the)g(functionali\
t)o(y)37 1288 y(of)j(the)f(application)f(has)i(b)q(een)g(divided)g(in)o(to)f
(t)o(w)o(o)f(comm)o(unicating)e(pro)q(cesses)k(represen)o(ting)f(the)h(teac)o
(her)37 1372 y(and)h(the)f(studen)o(t.)20 b(It)15 b(is)g(imp)q(ortan)o(t)e
(to)h(p)q(oin)o(t)h(out)g(the)g(follo)o(wing:)106 1507 y fl(\017)22 b fg(Line\
.h)16 b fn(and)f(the)g(class)g fg(Line)g fn(remain)f(unc)o(hanged.)106 1629 y
fl(\017)22 b fn(Only)12 b(one)g(pro)q(cess)g(is)f(using)h fg(Standa)o(rdOutpu\
t)j fn(at)d(a)f(time.)17 b(Whenev)o(er)12 b(a)g(pro)q(cess)g(signals)e(the)i
(other,)151 1714 y(the)21 b(signalling)d(pro)q(cess)i(either)h(\014nishes)f
(or)g(w)o(aits)f(for)g(a)h(signal)g(to)f(return)i(from)d(the)j(signalled)151
1798 y(pro)q(cess.)106 1920 y fl(\017)h fn(The)17 b(v)m(ariable)f fg(NotEnd)j
fn(is)d(global)g(and)h(is)f(used)h(to)g(comm)o(unicate)d(the)j(termination)d
(condition)i(to)151 2005 y(the)f(other)g(pro)q(cess.)106 2127 y fl(\017)22 b
fg(teacherline)15 b fn(do)q(es)e(not)g(need)h(to)f(b)q(e)g(global)f(b)q(ecaus\
e)i(the)g(studen)o(t)f(pro)q(cess)g(do)q(es)h(not)f(need)h(to)e(access)151
2212 y(it.)18 b(Ho)o(w)o(ev)o(er,)12 b fg(studentlin)q(e)k fn(is)c(global)f
(b)q(ecause)j(the)f(teac)o(her)g(pro)q(cess)g(compares)e(it)h(with)h fg(teach\
erline)p fn(.)106 2334 y fl(\017)22 b fn(As)15 b(in)g(the)h(previous)f(exampl\
e,)e(the)i(semaphore)g(used)g(for)g(signalling)e(m)o(ust)h(b)q(e)i(global.)
941 2760 y(133)g eop bop 37 42 a fd(A.8)70 b(Learning)24 b(to)f(t)n(yp)r(e)37
174 y ff(A.8.1)56 b(Line.h)151 260 y fk(//)46 b(line.h:)22 b(De\014nes)f(the)
i(class)f(Line.)151 316 y fi(const)16 b fg(MAXLINE)f(=)g(160;)209 b fk(//)46 b
(Maximum)23 b(numb)n(er)g(of)g(char)n(acters)g(in)f(a)h(line.)151 372 y fi
(const)16 b fg(ENDCHAR)g(=)f('#';)397 b fk(//)46 b(Char)n(acter)23 b(to)g(sig\
nify)f(end)g(of)h(line.)151 485 y fi(class)15 b fg(Line)151 542 y fl(f)197 598
y fk(//)46 b(This)22 b(class)f(r)n(epr)n(esents)g(a)i(line)f(of)h(text.)46 b
(Op)n(er)n(ations)21 b(ar)n(e)i(pr)n(ovide)n(d)g(to)g(r)n(e)n(ad)197 655 y
(//)46 b(and)22 b(write)h(the)g(text,)g(and)g(also)f(to)h(c)n(omp)n(ar)n(e)g
(lines.)151 711 y fi(public)p fg(:)197 768 y fk(//)46 b(Initialize)21 b(my)i
(line)e(-)i(set)g(it)f(empty.)197 824 y fg(Line)15 b(\(\))f fl(f)h fg(length)
i(=)e(0;)g fl(g)197 881 y fk(//)46 b(R)n(ep)n(e)n(ate)n(d)r(ly)22 b(r)n(e)n
(ad)g(char)n(acters)h(fr)n(om)g("in")g(and)g(write)g(them)g(into)f(my)h(line)
197 937 y(//)46 b(until)22 b(a)h(new)r(line)f(or)h(ENDCHAR)f(is)g(r)n(e)n(ad.)
45 b(Set)22 b("end")i(to)f(true)g(if)g(a)g(new)r(line)e(has)197 993 y(//)46 b
(b)n(e)n(en)21 b(r)n(e)n(ad.)45 b(R)n(eturn)23 b(the)g(numb)n(er)f(of)h(char)
n(acters)g(r)n(e)n(ad,)g(not)f(c)n(ounting)g(the)197 1050 y(//)46 b(new)r(lin\
e.)e(My)22 b(old)h(line)f(is)g(wip)n(e)n(d)h(out)g(b)n(efor)n(e)f(r)n(e)n(adi\
ng)g(any)h(char)n(acters.)197 1106 y(//)46 b(Wil)r(l)22 b(not)h(work)g(if)g
(ther)n(e)f(ar)n(e)h(mor)n(e)g(than)g(MAXLINE)d(char)n(acters)j(to)g(b)n(e)g
(r)n(e)n(ad.)197 1163 y fi(in)o(t)14 b fg(ReadfromKeyb)q(oa)o(rd)g(\(InputStr\
eam)i fl(\003)p fg(in,)f fi(in)o(t)f fg(&end\);)197 1219 y fk(//)46 b(R)n(ep)
n(e)n(ate)n(d)r(ly)22 b(r)n(e)n(ad)g(char)n(acters)h(fr)n(om)g("in")g(and)g
(write)g(them)g(into)f(my)h(line)197 1276 y(//)46 b(until)22 b(a)h(new)r(line)
f(or)h(ENDCHAR)f(is)g(r)n(e)n(ad,)g(or)i(until)e(ther)n(e)h(ar)n(e)f(no)h(mor)
n(e)197 1332 y(//)46 b(char)n(acters)22 b(to)h(b)n(e)g(r)n(e)n(ad.)45 b(Set)
22 b("end")h(to)g(true)h(if)e(a)h(new)r(line)f(has)197 1389 y(//)46 b(b)n(e)n
(en)21 b(r)n(e)n(ad.)45 b(R)n(eturn)23 b(the)g(numb)n(er)f(of)h(char)n(acters)
g(r)n(e)n(ad,)g(not)f(c)n(ounting)g(the)197 1445 y(//)46 b(new)r(line.)e(My)
22 b(old)h(line)f(is)g(wip)n(e)n(d)h(out)g(b)n(efor)n(e)f(r)n(e)n(ading)g(any)
h(char)n(acters.)197 1502 y(//)46 b(Wil)r(l)22 b(not)h(work)g(if)g(ther)n(e)f
(ar)n(e)h(mor)n(e)g(than)g(MAXLINE)d(char)n(acters)j(to)g(b)n(e)g(r)n(e)n(ad.)
197 1558 y fi(in)o(t)14 b fg(ReadfromFile)g(\(ReadFileStream)h fl(\003)p fg
(in,)g fi(in)o(t)g fg(&end\);)197 1614 y fk(//)46 b(Write)23 b(my)g(line)e
(and)i(a)g(new)r(line)f(to)h("out".)47 b(R)n(eturn)23 b(the)g(numb)n(er)f(of)
h(char)n(acters)197 1671 y(//)46 b(written,)22 b(including)g(the)h(new)r(line\
.)197 1727 y fi(in)o(t)14 b fg(W)o(riteT)l(oScreen)i(\(OutputStream)h fl(\003)
p fg(out\);)197 1784 y fk(//)46 b(Write)23 b(my)g(line)e(and)i(a)g(new)r(line)
f(to)h("out".)47 b(R)n(eturn)23 b(the)g(numb)n(er)f(of)h(char)n(acters)197
1840 y(//)46 b(written,)22 b(including)g(the)h(new)r(line.)197 1897 y fi(in)o
(t)14 b fg(W)o(riteT)l(oFile)h(\(W)o(riteFileStream)e fl(\003)p fg(out\);)197
1953 y fk(//)46 b(R)n(eturn)22 b(the)h(length)f(of)h(my)g(line,)f(not)g(c)n
(ounting)g(the)h(new)r(line)f(at)h(the)g(end.)197 2010 y fi(in)o(t)14 b fg
(Length)i(\(\))f fl(f)g fi(return)f fg(length;)i fl(g)197 2066 y fk(//)46 b
(R)n(eturn)22 b(true)h(if)g(l1)g(has)f(the)h(same)g(c)n(ontents)e(as)i(l2.)
197 2123 y fi(friend)14 b(in)o(t)g fg(equal)i(\(Line)f fl(\003)p fg(l1,)g(Lin\
e)g fl(\003)p fg(l2\);)151 2179 y fi(priv)m(ate)p fg(:)197 2235 y fi(c)o(har)
g fg(linecha)o(r)g([MAXLINE];)447 b fk(//)45 b(The)23 b(char)n(acters)g(in)f
(my)h(line.)197 2292 y fi(in)o(t)14 b fg(length;)57 b fk(//)46 b(The)22 b(num\
b)n(er)h(of)g(char)n(acters)f(in)h(my)g(line,)e(not)i(c)n(ounting)f(new)r(lin\
e.)151 2348 y fl(g)p fg(;)151 2461 y fi(inline)14 b(in)o(t)g fg(equal)j(\(Lin\
e)d fl(\003)p fg(l1,)h(Line)g fl(\003)p fg(l2\))151 2518 y fl(f)197 2574 y fk
(//)46 b(This)22 b(function)g(r)n(eturns)g(true)h(if)g(lines)e(l1)i(and)g(l2)
f(ar)n(e)h(e)n(qual,)f(that)i(is,)e(they)941 2760 y fn(134)g eop bop 197 42 a
fk(//)46 b(have)23 b(the)f(same)h(length)f(and)h(al)r(l)f(their)i(char)n(acte\
rs)e(ar)n(e)h(e)n(qual.)197 98 y fi(if)14 b fg(\(l1)h fl(!)g fg(Length)h(\(\))
f fl(6)p fn(=)g fg(l2)g fl(!)h fg(Length)g(\(\)\))242 154 y fi(return)f fg
(0;)197 211 y fi(else)197 267 y fl(f)242 324 y fi(in)o(t)g fg(len)g(=)h(l1)f
fl(!)g fg(Length)h(\(\);)242 380 y fi(for)f fg(\()p fi(in)o(t)f fg(i)h(=)h
(0;)e(i)h fm(<)h fg(len;)f(i++\))288 437 y fi(if)f fg(\(l1)h fl(!)g fg(linech\
a)o(r)h([i])f fl(6)p fn(=)g fg(l2)g fl(!)h fg(linecha)o(r)f([i]\))333 493 y fi
(return)g fg(0;)242 550 y fi(return)g fg(1;)197 606 y fl(g)151 663 y(g)37 813
y ff(A.8.2)56 b(T)n(yp)r(e1.cc)151 899 y fk(//)46 b(typ)n(e1.c)n(c:)22 b(T)m
(yping)g(tutor)i(-)f(you)g(typ)n(e)g(whatever)g(you)h(se)n(e)d(on)i(the)g(scr)
n(e)n(en,)e(and)i(the)151 956 y(//)46 b(pr)n(o)n(gr)n(am)23 b(wil)r(l)f(ask)h
(you)g(to)g(try)g(again)g(if)g(the)g(text)f(that)i(you)f(typ)n(e)n(d)g(isn)-5
b('t)151 1012 y(//)46 b(the)23 b(same)g(as)f(the)h(text)g(that)g(app)n(e)n
(ar)n(e)n(d)g(on)g(the)g(scr)n(e)n(en.)43 b(The)23 b(pr)n(o)n(gr)n(am)g(stops)
151 1068 y(//)46 b(when)23 b(you)g(typ)n(e)g('#'.)45 b(The)23 b(text)g(to)g
(b)n(e)f(typ)n(e)n(d)g(c)n(omes)h(fr)n(om)g(the)g(\014le)e("in.1".)151 1125 y
fh(#include)14 b fg(")p fh(OutputStream.h)p fg(")151 1181 y fh(#include)g fg
(")p fh(InputStream.h)p fg(")151 1238 y fh(#include)g fg(")p fh(FileSystemInt\
erface.h)p fg(")151 1294 y fh(#include)g fg(")p fh(ReadFileStream.h)p fg(")
151 1351 y fh(#include)g fg(")p fh(ReadFileStreamStar.h)p fg(")151 1407 y fh
(#include)g fg(")p fh(WriteFileStream.h)p fg(")151 1464 y fh(#include)g fg
(")p fh(WriteFileStreamStar.h)p fg(")151 1520 y fh(#include)g fg(")p fh(line.\
h)p fg(")151 1633 y fi(in)o(t)h fg(Line::ReadfromKeyb)q(oa)o(rd)e(\(InputStre\
am)j fl(\003)p fg(in,)f fi(in)o(t)f fg(&end\))151 1689 y fl(f)197 1746 y fk
(//)46 b(R)n(ep)n(e)n(ate)n(d)r(ly)22 b(r)n(e)n(ad)g(char)n(acters)h(fr)n(om)
g("in")g(and)g(write)g(them)g(into)f(my)h(line)197 1802 y(//)46 b(until)22 b
(a)h(new)r(line)f(or)h(ENDCHAR)f(is)g(r)n(e)n(ad.)45 b(Set)22 b("end")i(to)f
(true)g(if)g(a)g(new)r(line)e(has)197 1859 y(//)46 b(b)n(e)n(en)21 b(r)n(e)n
(ad.)45 b(R)n(eturn)23 b(the)g(numb)n(er)f(of)h(char)n(acters)g(r)n(e)n(ad,)g
(not)f(c)n(ounting)g(the)197 1915 y(//)46 b(new)r(line.)e(My)22 b(old)h(line)
f(is)g(wip)n(e)n(d)h(out)g(b)n(efor)n(e)f(r)n(e)n(ading)g(any)h(char)n(acters\
.)197 1972 y(//)46 b(Wil)r(l)22 b(not)h(work)g(if)g(ther)n(e)f(ar)n(e)h(mor)n
(e)g(than)g(MAXLINE)d(char)n(acters)j(to)g(b)n(e)g(r)n(e)n(ad.)197 2028 y fg
(length)16 b(=)f(0;)197 2085 y fi(in)o(t)f fg(cha)o(rsRead)i(=)g(in)f fl(!)h
fg(read)f(\(&linecha)o(r)h([length],)g(1\);)197 2141 y fi(while)e fg(\(\(line\
cha)o(r)g([length])j fl(6)p fn(=)e fg(ENDCHAR\))h(&&)g(\(cha)o(rsRead)g fm
(>)g fg(0\))e(&&)242 2198 y(\(linecha)o(r)h([length])i fl(6)p fn(=)e fg(')p fl
(n)p fg(n'\)\))197 2254 y fl(f)242 2310 y fg(length++;)242 2367 y(cha)o(rsRea\
d)h(=)g(in)f fl(!)h fg(read)f(\(&linecha)o(r)h([length],)g(1\);)197 2423 y fl
(g)197 2480 y fi(if)e fg(\(linecha)o(r[length])j fl(6)p fn(=)e fg(')p fl(n)p
fg(n'\))242 2536 y(end)h(=)g(0;)197 2593 y fi(else)941 2760 y fn(135)g eop bop
242 42 a fg(end)16 b(=)g(1;)197 98 y fi(return)e fg(length;)151 154 y fl(g)
151 267 y fi(in)o(t)h fg(Line::ReadfromFile)e(\(ReadFileStream)i fl(\003)p fg
(in,)g fi(in)o(t)g fg(&end\))151 324 y fl(f)197 380 y fk(//)46 b(R)n(ep)n(e)n
(ate)n(d)r(ly)22 b(r)n(e)n(ad)g(char)n(acters)h(fr)n(om)g("in")g(and)g(write)
g(them)g(into)f(my)h(line)197 437 y(//)46 b(until)22 b(a)h(new)r(line)f(or)h
(ENDCHAR)f(is)g(r)n(e)n(ad,)g(or)i(until)e(ther)n(e)h(ar)n(e)f(no)h(mor)n(e)
197 493 y(//)46 b(char)n(acters)22 b(to)h(b)n(e)g(r)n(e)n(ad.)45 b(Set)22 b
("end")h(to)g(true)h(if)e(a)h(new)r(line)f(has)197 550 y(//)46 b(b)n(e)n(en)
21 b(r)n(e)n(ad.)45 b(R)n(eturn)23 b(the)g(numb)n(er)f(of)h(char)n(acters)g
(r)n(e)n(ad,)g(not)f(c)n(ounting)g(the)197 606 y(//)46 b(new)r(line.)e(My)22 b
(old)h(line)f(is)g(wip)n(e)n(d)h(out)g(b)n(efor)n(e)f(r)n(e)n(ading)g(any)h
(char)n(acters.)197 663 y(//)46 b(Wil)r(l)22 b(not)h(work)g(if)g(ther)n(e)f
(ar)n(e)h(mor)n(e)g(than)g(MAXLINE)d(char)n(acters)j(to)g(b)n(e)g(r)n(e)n(ad.)
197 719 y fg(length)16 b(=)f(0;)197 775 y fi(in)o(t)f fg(cha)o(rsRead)i(=)g
(in)f fl(!)h fg(read)f(\(&linecha)o(r)h([length],)g(1\);)197 832 y fi(while)e
fg(\(\(linecha)o(r)g([length])j fl(6)p fn(=)e fg(ENDCHAR\))h(&&)g(\(cha)o(rsR\
ead)g fm(>)g fg(0\))e(&&)242 888 y(\(linecha)o(r)h([length])i fl(6)p fn(=)e fg
(')p fl(n)p fg(n'\)\))197 945 y fl(f)242 1001 y fg(length++;)242 1058 y(cha)o
(rsRead)h(=)g(in)f fl(!)h fg(read)f(\(&linecha)o(r)h([length],)g(1\);)197 1114
y fl(g)197 1171 y fi(if)e fg(\(linecha)o(r)h([length])i fl(6)p fn(=)e fg(')p
fl(n)p fg(n'\))242 1227 y(end)h(=)g(0;)197 1284 y fi(else)242 1340 y fg(end)g
(=)g(1;)197 1396 y fi(return)e fg(length;)151 1453 y fl(g)151 1566 y fi(in)o
(t)h fg(Line::W)o(riteT)l(oScreen)g(\(OutputStream)i fl(\003)p fg(out\))151
1622 y fl(f)197 1679 y fk(//)46 b(Write)23 b(my)g(line)e(and)i(a)g(new)r(line)
f(to)h("out".)47 b(R)n(eturn)23 b(the)g(numb)n(er)f(of)h(char)n(acters)197
1735 y(//)46 b(written,)22 b(not)h(c)n(ounting)f(the)h(new)r(line.)197 1792 y
fi(in)o(t)14 b fg(cha)o(rW)o(ritten;)197 1848 y fi(if)g fg(\(length)i fl(6)p
fn(=)g fg(0\))197 1905 y fl(f)242 1961 y fg(cha)o(rW)o(ritten)g(=)f(out)h fl
(!)f fg(write)h(\(linecha)o(r,)e(length)j(+)e(1\);)137 b fk(//)46 b(Outputs)
23 b(')p fl(n)p fk(n)-5 b(')22 b(also.)242 2017 y fg(out)16 b fl(!)f fg(\015u\
sh)i(\(\);)242 2074 y fi(return)e fg(cha)o(rW)o(ritten;)197 2130 y fl(g)197
2187 y fi(else)f(return)g fg(0;)151 2243 y fl(g)151 2356 y fi(in)o(t)h fg(Lin\
e::W)o(riteT)l(oFile)f(\(W)o(riteFileStream)f fl(\003)p fg(out\))151 2413 y fl
(f)197 2469 y fk(//)46 b(Write)23 b(my)g(line)e(and)i(a)g(new)r(line)f(to)h
("out".)47 b(R)n(eturn)23 b(the)g(numb)n(er)f(of)h(char)n(acters)197 2526 y
(//)46 b(written,)22 b(including)g(the)h(new)r(line.)197 2582 y fi(if)14 b fg
(\(length)i fl(6)p fn(=)g fg(0\))941 2760 y fn(136)g eop bop 242 42 a fi(retu\
rn)15 b fg(out)g fl(!)h fg(write)f(\(linecha)o(r,)g(length)h(+)g(1\);)266 b fk
(//)46 b(Outputs)23 b(')p fl(n)p fk(n)-5 b(')22 b(also.)197 98 y fi(else)242
154 y(return)15 b fg(0;)151 211 y fl(g)p fg(;)151 324 y fi(in)o(t)g fg(main\()
p fi(in)o(t)p fg(,)e fi(c)o(har)i fl(\003\003)p fg(\))151 380 y fl(f)197 437 y
fk(//)46 b(This)22 b(pr)n(o)n(gr)n(am)g(\014rst)h(c)n(al)r(ls)e(op)n(en\(\))h
(on)g(Standar)n(dFileSystemInterfac)n(e)e(to)j(op)n(en)197 493 y(//)46 b(the)
22 b(\014le)g("in.1")h(for)h(r)n(e)n(ading.)44 b(If)22 b(the)h(c)n(al)r(l)f
(was)h(suc)n(c)n(essful,)e(op)n(en\(\))197 550 y(//)46 b(r)n(eturns)22 b(a)h
(R)n(e)n(adFileStr)n(e)n(am)e(obje)n(ct)h(\(c)n(al)r(l)g(it)h(inf)5 b(\).)44 b
(We)23 b(then)g(r)n(e)n(ad)f(a)h(line)197 606 y(//)46 b(fr)n(om)22 b(inf,)h
(print)f(it,)h(r)n(ep)n(e)n(ate)n(d)r(ly)f(r)n(e)n(ad)h(lines)e(fr)n(om)i(the)
g(keyb)n(o)n(ar)n(d)f(and)h(print)197 663 y(//)46 b(them)23 b(until)f(we)h
(have)g(r)n(e)n(ad)f(a)h(line)f(fr)n(om)h(the)g(keyb)n(o)n(ar)n(d)f(that)i
(matches)f(the)g(line)197 719 y(//)46 b(r)n(e)n(ad)22 b(fr)n(om)h(inf.)45 b
(We)23 b(ke)n(ep)f(on)h(doing)f(this)h(until)f(the)h(user)g(pr)n(esses)e('#')
i(or)197 775 y(//)46 b(inf)22 b(has)g(run)h(out)h(of)f(lines.)197 832 y(//)
197 888 y(//)46 b(In)21 b(gr)n(e)n(ater)i(detail:)197 945 y(//)46 b(te)n(ache\
rline)21 b(c)n(ontains)h(the)h(line)f(r)n(e)n(ad)g(fr)n(om)h(inf,)f(and)h(stu\
dentline)f(c)n(ontains)197 1001 y(//)46 b(the)22 b(line)g(r)n(e)n(ad)h(fr)n
(om)g(the)g(keyb)n(o)n(ar)n(d.)45 b(We)23 b(r)n(e)n(ad)f(a)h(line)f(fr)n(om)h
(inf)f(into)197 1058 y(//)46 b(te)n(acherline)21 b(by)i(c)n(al)r(ling)f(R)n
(e)n(adfr)n(omFile\(\))f(on)h(te)n(acherline;)g(we)h(print)197 1114 y(//)46 b
(te)n(acherline)21 b(by)i(c)n(al)r(ling)f(WriteT)m(oScr)n(e)n(en\(\))e(on)i
(te)n(acherline;)g(we)h(r)n(e)n(ad)f(a)h(line)197 1171 y(//)46 b(fr)n(om)22 b
(the)h(keyb)n(o)n(ar)n(d)g(into)f(studentline)g(by)h(c)n(al)r(ling)e(R)n(e)n
(adfr)n(omKeyb)n(o)n(ar)n(d\(\))h(on)197 1227 y(//)46 b(studentline;)21 b(we)
i(print)g(studentline)e(by)i(c)n(al)r(ling)e(WriteT)m(oScr)n(e)n(en\(\))g(on)
197 1284 y(//)46 b(studentline;)21 b(we)i(c)n(omp)n(ar)n(e)g(studentline)e
(and)i(te)n(acherline)f(by)g(c)n(al)r(ling)197 1340 y(//)46 b(e)n(qual\(\).)e
(NotEnd)22 b(is)h(set)f(to)h(false)f(if)h('#')f(is)h(typ)n(e)n(d)f(or)h(if)g
(inf)f(has)h(run)197 1396 y(//)46 b(out)23 b(of)g(lines.)197 1453 y(//)197
1509 y(//)46 b(The)22 b(smart)h(p)n(ointer)f(R)n(e)n(adFileStr)n(e)n(amStar)g
(\(inf)5 b(\))21 b(is)h(use)n(d)h(her)n(e)f(so)h(that)g(we)g(don)-5 b('t)197
1566 y(//)46 b(have)23 b(to)g(explicitly)f(close)g(the)h(\014le)e(-)i(the)g
(\014le)f(wil)r(l)h(b)n(e)f(close)n(d)197 1622 y(//)46 b(automatic)n(al)r(ly)
23 b(when)g(the)g(smart)g(p)n(ointer)f(go)n(es)g(out)i(of)f(sc)n(op)n(e.)44 b
(Standar)n(d)197 1679 y(//)i(FileSystemInterfac)n(e)20 b(\(of)i(typ)n(e)h(Fil\
eSystemInterfac)n(e\))d(is)i(a)h(sp)n(e)n(cial)e(glob)n(al)197 1735 y(//)46 b
(variable)22 b(use)n(d)h(for)g(ac)n(c)n(essing)d(\014le)i(servic)n(es.)44 b
(Standar)n(dInput)23 b(and)f(Standar)n(d)197 1792 y(//)46 b(Output)23 b(ar)n
(e)g(sp)n(e)n(cial)f(glob)n(al)f(variables)i(for)g(p)n(erforming)f(I/O)h(to)g
(and)f(fr)n(om)197 1848 y(//)46 b(the)22 b(keyb)n(o)n(ar)n(d)h(and)g(the)g
(scr)n(e)n(en,)e(r)n(esp)n(e)n(ctively.)197 1961 y fi(in)o(t)14 b fg(erro)o
(r;)197 2017 y fk(//)46 b(Op)n(en)21 b("in.1")j(for)f(r)n(e)n(ading.)197 2074
y fg(ReadFileStreamSta)o(r)15 b(inf)g(=)g(Standa)o(rdFileSystemInterface)i fl
(!)f fg(op)q(en)242 2130 y(\()p fh("in.1")p fg(,)e(ReadFileStreamClass,)h(err\
o)o(r\);)197 2187 y fi(if)f fg(\(erro)o(r\))197 2243 y fl(f)242 2300 y fk(//)
46 b(Can)-5 b('t)22 b(op)n(en)h("in.1",)g(mayb)n(e)g(b)n(e)n(c)n(ause)e(it)i
(do)n(esn)-5 b('t)22 b(exist.)45 b(Simply)23 b(give)f(up.)242 2356 y fl(\003)
p fg(Standa)o(rdOutput)d fl(\034)c fh(")p fl(\003\003\003)23 b fh(error)g(ope\
ning)g(file)h(in.1)p fl(n)p fh(n")14 b fl(\034)h fg(eo)o(r;)242 2413 y fi(ret\
urn)g fg(0;)197 2469 y fl(g)197 2582 y(\003)p fg(Standa)o(rdOutput)j fl(\034)
e fh("Type)23 b(a)h(sequence)f(of)g(keys)g(ending)h(with)f(#)p fl(n)p fh(n")
14 b fl(\034)i fg(eo)o(r;)941 2760 y fn(137)g eop bop 197 42 a fi(in)o(t)14 b
fg(NotEnd;)197 98 y(Line)h fl(\003)p fg(teacherline)h(=)g fi(new)e fg(Line;)
197 154 y(Line)h fl(\003)p fg(studentline)j(=)e fi(new)f fg(Line;)197 211 y fk
(//)46 b(R)n(e)n(ad)22 b(the)h(\014rst)f(line)g(fr)n(om)h(the)g(\014le)f(and)
g(print)h(it)g(for)g(the)g(user)g(to)g(typ)n(e)f(in.)197 267 y fg(teacherline)
16 b fl(!)g fg(ReadfromFile)e(\(inf,)g(NotEnd\);)197 324 y(teacherline)i fl
(!)g fg(W)o(riteT)l(oScreen)f(\(Standa)o(rdOutput)q(\);)197 380 y fi(while)f
fg(\(NotEnd\))197 437 y fl(f)242 493 y fk(//)46 b(R)n(e)n(ad)23 b(what)g(the)
g(user)g(typ)n(es)f(in)g(and)h(print)g(it)g(to)g(the)g(scr)n(e)n(en.)43 b(Not\
End)23 b(is)242 550 y(//)46 b(set)22 b(to)h(false)f(if)h(user)g(typ)n(es)f
('#'.)242 606 y fg(studentline)d fl(!)c fg(ReadfromKeyb)q(oa)o(rd)f(\(Standa)
o(rdInput,)j(NotEnd\);)242 663 y(studentline)i fl(!)c fg(W)o(riteT)l(oScreen)
h(\(Standa)o(rdOutput\);)242 719 y fi(if)f fg(\(NotEnd\))242 775 y fl(f)288
832 y fk(//)45 b(If)23 b(user)f(didn)-5 b('t)23 b(typ)n(e)g('#',)g(che)n(ck)f
(whether)i(the)f(displaye)n(d)f(line)g(and)h(the)288 888 y(//)45 b(typ)n(e)n
(d)23 b(line)f(ar)n(e)h(e)n(qual.)288 945 y fi(if)14 b fg(\(equal)i(\(student\
line,)i(teacherline\)\))288 1001 y fl(f)333 1058 y fk(//)46 b(If)22 b(the)h
(user)g(typ)n(e)n(d)f(in)h(exactly)f(the)h(same)g(line)f(as)g(the)h(line)f
(displaye)n(d,)333 1114 y(//)46 b(then)22 b(r)n(e)n(ad)h(another)g(line)f(fr)
n(om)h(the)g(\014le)f(and)g(print)h(it.)46 b(NotEnd)22 b(is)g(set)333 1171 y
(//)46 b(to)23 b(false)f(if)h(inf)f(has)g(run)h(out)h(of)f(char)n(acters.)333
1227 y fg(teacherline)16 b fl(!)g fg(ReadfromFile)e(\(inf,)h(NotEnd\);)333
1284 y(teacherline)h fl(!)g fg(W)o(riteT)l(oScreen)g(\(Standa)o(rdOutput\);)
288 1340 y fl(g)288 1396 y fi(else)333 1453 y fk(//)46 b(The)22 b(lines)g(did\
n)-5 b('t)23 b(match;)g(tel)r(l)f(the)h(user)g(to)g(typ)n(e)g(again.)333 1509
y fl(\003)p fg(Standa)o(rdOutput)c fl(\034)c fh("Try)24 b(again)p fl(n)p fh
(n")13 b fl(\034)j fg(eo)o(r;)242 1566 y fl(g)197 1622 y(g)197 1679 y fi(dele\
te)f fg(teacherline;)197 1735 y fi(delete)g fg(studentline;)197 1792 y fi(ret\
urn)f fg(0;)151 1848 y fl(g)941 2760 y fn(138)g eop bop 37 42 a fd(A.9)70 b
(T)n(yping)24 b(tutor)f(with)f(t)n(w)n(o)h(pro)r(cesses)151 143 y fk(//)46 b
(typ)n(e2.c)n(c:)22 b(T)m(yping)g(tutor,)i(dual-pr)n(o)n(c)n(ess)e(version.)
44 b(Y)m(ou)23 b(typ)n(e)g(whatever)g(you)h(se)n(e)151 199 y(//)46 b(on)23 b
(the)g(scr)n(e)n(en,)e(and)h(the)h(pr)n(o)n(gr)n(am)g(wil)r(l)g(ask)f(you)h
(to)h(try)f(again)f(if)h(the)g(text)g(that)151 256 y(//)46 b(you)23 b(typ)n
(e)n(d)g(isn)-5 b('t)22 b(the)h(same)g(as)f(the)h(text)g(that)h(app)n(e)n(ar)
n(e)n(d)e(on)h(the)g(scr)n(e)n(en.)44 b(The)151 312 y(//)i(pr)n(o)n(gr)n(am)
23 b(stops)f(when)h(you)g(typ)n(e)g('#'.)46 b(The)22 b(text)h(to)g(b)n(e)f
(typ)n(e)n(d)h(c)n(omes)f(fr)n(om)h(the)151 369 y(//)46 b(\014le)22 b("in.1".)
46 b(One)22 b(pr)n(o)n(c)n(ess)f(r)n(e)n(ads)h(lines)g(fr)n(om)h(the)g(\014le)
e(and)i(prints)f(them)i(while)151 425 y(//)46 b(another)23 b(pr)n(o)n(c)n(ess)
f(r)n(e)n(ads)g(lines)f(fr)n(om)i(the)g(keyb)n(o)n(ar)n(d)f(and)h(c)n(omp)n
(ar)n(es)f(them)i(with)f(the)151 482 y(//)46 b(lines)21 b(r)n(e)n(ad)i(fr)n
(om)g(the)g(\014le.)44 b(This)22 b(pr)n(o)n(gr)n(am)h(also)g(c)n(omputes)g
(the)g(time)f(taken)151 538 y(//)46 b(to)23 b(run)g(the)g(entir)n(e)f(session\
.)151 595 y fh(#include)14 b fg(")p fh(OutputStream.h)p fg(")151 651 y fh(#in\
clude)g fg(")p fh(InputStream.h)p fg(")151 708 y fh(#include)g fg(")p fh(Name\
Server.h)p fg(")151 764 y fh(#include)g fg(")p fh(FileSystemInterface.h)p fg
(")151 820 y fh(#include)g fg(")p fh(ReadFileStream.h)p fg(")151 877 y fh(#in\
clude)g fg(")p fh(ReadFileStreamStar.h)p fg(")151 933 y fh(#include)g fg(")p
fh(WriteFileStream.h)p fg(")151 990 y fh(#include)g fg(")p fh(WriteFileStream\
Star.h)p fg(")151 1046 y fh(#include)g fg(")p fh(FreeRunningTimer.h)p fg(")
151 1103 y fh(#include)g fg(")p fh(FreeRunningTimerStar.h)p fg(")151 1159 y fh
(#include)g fg(")p fh(Process.h)p fg(")151 1216 y fh(#include)g fg(")p fh(Pro\
cessStar.h)p fg(")151 1272 y fh(#include)g fg(")p fh(Semaphore.h)p fg(")151
1329 y fh(#include)g fg(")p fh(line.h)p fg(")151 1441 y fi(in)o(t)h fg(Line::\
ReadfromKeyb)q(oa)o(rd)e(\(InputStream)j fl(\003)p fg(in,)f fi(in)o(t)f fg
(&end\))151 1498 y fl(f)197 1554 y fk(//)46 b(R)n(ep)n(e)n(ate)n(d)r(ly)22 b
(r)n(e)n(ad)g(char)n(acters)h(fr)n(om)g("in")g(and)g(write)g(them)g(into)f
(my)h(line)197 1611 y(//)46 b(until)22 b(a)h(new)r(line)f(or)h(ENDCHAR)f(is)g
(r)n(e)n(ad.)45 b(Set)22 b("end")i(to)f(true)g(if)g(a)g(new)r(line)e(has)197
1667 y(//)46 b(b)n(e)n(en)21 b(r)n(e)n(ad.)45 b(R)n(eturn)23 b(the)g(numb)n
(er)f(of)h(char)n(acters)g(r)n(e)n(ad,)g(not)f(c)n(ounting)g(the)197 1724 y
(//)46 b(new)r(line.)e(My)22 b(old)h(line)f(is)g(wip)n(e)n(d)h(out)g(b)n(efor)
n(e)f(r)n(e)n(ading)g(any)h(char)n(acters.)197 1780 y(//)46 b(Wil)r(l)22 b
(not)h(work)g(if)g(ther)n(e)f(ar)n(e)h(mor)n(e)g(than)g(MAXLINE)d(char)n(acte\
rs)j(to)g(b)n(e)g(r)n(e)n(ad.)197 1837 y fg(length)16 b(=)f(0;)197 1893 y fi
(in)o(t)f fg(cha)o(rsRead)i(=)g(in)f fl(!)h fg(read)f(\(&linecha)o(r)h([lengt\
h],)g(1\);)197 1950 y fi(while)e fg(\(\(linecha)o(r)g([length])j fl(6)p fn
(=)e fg(ENDCHAR\))h(&&)g(\(cha)o(rsRead)g fm(>)g fg(0\))e(&&)242 2006 y(\(lin\
echa)o(r)h([length])i fl(6)p fn(=)e fg(')p fl(n)p fg(n'\)\))197 2062 y fl(f)
242 2119 y fg(length++;)242 2175 y(cha)o(rsRead)h(=)g(in)f fl(!)h fg(read)f
(\(&linecha)o(r)h([length],)g(1\);)197 2232 y fl(g)197 2288 y fi(if)e fg(\(li\
necha)o(r)h([length])i fl(6)p fn(=)e fg(')p fl(n)p fg(n'\))242 2345 y(end)h
(=)g(0;)197 2401 y fi(else)242 2458 y fg(end)g(=)g(1;)197 2514 y fi(return)e
fg(length;)151 2571 y fl(g)941 2760 y fn(139)g eop bop 151 98 a fi(in)o(t)15 b
fg(Line::ReadfromFile)e(\(ReadFileStream)i fl(\003)p fg(in,)g fi(in)o(t)g fg
(&end\))151 154 y fl(f)197 211 y fk(//)46 b(R)n(ep)n(e)n(ate)n(d)r(ly)22 b
(r)n(e)n(ad)g(char)n(acters)h(fr)n(om)g("in")g(and)g(write)g(them)g(into)f
(my)h(line)197 267 y(//)46 b(until)22 b(a)h(new)r(line)f(or)h(ENDCHAR)f(is)g
(r)n(e)n(ad,)g(or)i(until)e(ther)n(e)h(ar)n(e)f(no)h(mor)n(e)197 324 y(//)46 b
(char)n(acters)22 b(to)h(b)n(e)g(r)n(e)n(ad.)45 b(Set)22 b("end")h(to)g(true)
h(if)e(a)h(new)r(line)f(has)197 380 y(//)46 b(b)n(e)n(en)21 b(r)n(e)n(ad.)45 b
(R)n(eturn)23 b(the)g(numb)n(er)f(of)h(char)n(acters)g(r)n(e)n(ad,)g(not)f
(c)n(ounting)g(the)197 437 y(//)46 b(new)r(line.)e(My)22 b(old)h(line)f(is)g
(wip)n(e)n(d)h(out)g(b)n(efor)n(e)f(r)n(e)n(ading)g(any)h(char)n(acters.)197
493 y(//)46 b(Wil)r(l)22 b(not)h(work)g(if)g(ther)n(e)f(ar)n(e)h(mor)n(e)g
(than)g(MAXLINE)d(char)n(acters)j(to)g(b)n(e)g(r)n(e)n(ad.)197 550 y fg(lengt\
h)16 b(=)f(0;)197 606 y fi(in)o(t)f fg(cha)o(rsRead)i(=)g(in)f fl(!)h fg(read)
f(\(&linecha)o(r)h([length],)g(1\);)197 663 y fi(while)e fg(\(\(linecha)o(r)g
([length])j fl(6)p fn(=)e fg(ENDCHAR\))h(&&)g(\(cha)o(rsRead)g fm(>)g fg(0\))
e(&&)242 719 y(\(linecha)o(r)h([length])i fl(6)p fn(=)e fg(')p fl(n)p fg(n'\)\
\))197 775 y fl(f)242 832 y fg(length++;)242 888 y(cha)o(rsRead)h(=)g(in)f fl
(!)h fg(read)f(\(&linecha)o(r)h([length],)g(1\);)197 945 y fl(g)197 1001 y fi
(if)e fg(\(linecha)o(r)h([length])i fl(6)p fn(=)e fg(')p fl(n)p fg(n'\))242
1058 y(end)h(=)g(0;)197 1114 y fi(else)242 1171 y fg(end)g(=)g(1;)197 1227 y
fi(return)e fg(length;)151 1284 y fl(g)151 1453 y fi(in)o(t)h fg(Line::W)o
(riteT)l(oScreen)g(\(OutputStream)i fl(\003)p fg(out\))151 1509 y fl(f)197
1566 y fk(//)46 b(Write)23 b(my)g(line)e(and)i(a)g(new)r(line)f(to)h("out".)
47 b(R)n(eturn)23 b(the)g(numb)n(er)f(of)h(char)n(acters)197 1622 y(//)46 b
(written,)22 b(not)h(c)n(ounting)f(the)h(new)r(line.)197 1679 y fi(in)o(t)14 b
fg(cha)o(rW)o(ritten;)197 1735 y fi(if)g fg(\(length)i fl(6)p fn(=)g fg(0\))
197 1792 y fl(f)242 1848 y fg(cha)o(rW)o(ritten)g(=)f(out)h fl(!)f fg(write)h
(\(linecha)o(r,)e(length)j(+)e(1\);)155 b fk(//)46 b(Output)24 b(')p fl(n)p fk
(n)-5 b(')22 b(also.)242 1905 y fg(out)16 b fl(!)f fg(\015ush\(\);)242 1961 y
fi(return)g fg(cha)o(rW)o(ritten;)197 2017 y fl(g)197 2074 y fi(else)f(return)
g fg(0;)151 2130 y fl(g)151 2243 y fi(in)o(t)h fg(Line::W)o(riteT)l(oFile)f
(\(W)o(riteFileStream)f fl(\003)p fg(out\))151 2300 y fl(f)197 2356 y fk(//)
46 b(Write)23 b(my)g(line)e(and)i(a)g(new)r(line)f(to)h("out".)47 b(R)n(eturn)
23 b(the)g(numb)n(er)f(of)h(char)n(acters)197 2413 y(//)46 b(written,)22 b
(including)g(the)h(new)r(line.)197 2469 y fi(if)14 b fg(\(length)i fl(6)p fn
(=)g fg(0\))242 2526 y fi(return)f fg(out)g fl(!)h fg(write)f(\(linecha)o(r,)
g(length)h(+)g(1\);)284 b fk(//)46 b(Output)24 b(')p fl(n)p fk(n)-5 b(')22 b
(also.)197 2582 y fi(else)941 2760 y fn(140)g eop bop 242 42 a fi(return)15 b
fg(0;)151 98 y fl(g)151 211 y fk(//)46 b(This)22 b(semaphor)n(e)h(is)f(use)n
(d)h(for)g(synchr)n(onizing)e(the)i(two)g(pr)n(o)n(c)n(esses.)43 b(The)23 b
(te)n(acher)151 267 y(//)46 b(pr)n(o)n(c)n(ess)21 b(V\(\)'s)h(this)g(semaphor)
n(e)h(to)g(tel)r(l)g(the)g(student)f(pr)n(o)n(c)n(ess)g(to)h(r)n(e)n(ad)f(a)h
(line)151 324 y(//)46 b(fr)n(om)23 b(the)g(keyb)n(o)n(ar)n(d,)f(and)h(then)g
(the)g(te)n(acher)f(pr)n(o)n(c)n(ess)g(P\(\)'s)f(this)i(semaphor)n(e.)151 380
y(//)46 b(The)22 b(student)h(pr)n(o)n(c)n(ess)e(V\(\)'s)h(this)g(semaphor)n
(e)h(to)g(tel)r(l)g(the)g(te)n(acher)f(pr)n(o)n(c)n(ess)151 437 y(//)46 b(tha\
t)23 b(it)g(has)g(\014nishe)n(d)e(r)n(e)n(ading)h(a)h(line)f(fr)n(om)h(the)g
(keyb)n(o)n(ar)n(d,)f(and)h(the)g(student)151 493 y(//)46 b(pr)n(o)n(c)n(ess)
21 b(P\(\)'s)h(this)g(semaphor)n(e.)151 550 y fg(Semapho)o(re)15 b fl(\003)p
fg(sem;)151 663 y fk(//)46 b(V)m(ariables)22 b(shar)n(e)n(d)g(by)h(b)n(oth)g
(lightweight)g(pr)n(o)n(c)n(esses:)d(NotEnd)j(is)f(false)g(if)151 719 y(//)46
b(the)23 b(\014le)f(r)n(an)g(out)i(of)f(lines)e(or)i(if)g(the)g(user)f(typ)n
(e)n(d)h('#'.)45 b(studentline)22 b(is)151 775 y(//)46 b(the)23 b(line)f(typ)
n(e)n(d)g(by)h(the)g(user.)46 b(The)22 b(student)h(pr)n(o)n(c)n(ess)e(sets)h
(this)g(variable)h(when)151 832 y(//)46 b(the)23 b(user)g(typ)n(es)f(a)h(line\
,)f(and)h(the)f(te)n(acher)h(pr)n(o)n(c)n(ess)f(c)n(omp)n(ar)n(es)g(studentli\
ne)151 888 y(//)46 b(with)23 b(the)g(line)f(r)n(e)n(ad)h(fr)n(om)g(the)f(\014\
le.)45 b(The)22 b(two)i(glob)n(al)e(variables)g(to)n(gether)h(with)151 945 y
(//)46 b(sem)22 b(ar)n(e)h(ac)n(c)n(essible)e(to)i(b)n(oth)g(pr)n(o)n(c)n(ess\
es)e(b)n(e)n(c)n(ause)g(they)i(ar)n(e)g(lightweight)151 1001 y(//)46 b(pr)n
(o)n(c)n(esses)21 b(which)i(shar)n(e)g(the)g(same)f(glob)n(al)g(variable)h
(sp)n(ac)n(e.)151 1058 y fi(in)o(t)15 b fg(NotEnd;)151 1114 y(Line)g fl(\003)
p fg(studentline)k(=)c fi(new)g fg(Line;)151 1227 y fi(in)o(t)g fg(main2)f
(\()p fi(in)o(t)p fg(,)g fi(c)o(har)h fl(\003\003)p fg(\))151 1284 y fl(f)197
1340 y fk(//)46 b(This)22 b(function)g(runs)g(as)h(the)g(te)n(acher)g(pr)n
(o)n(c)n(ess,)e(and)i(the)g(pr)n(o)n(c)n(ess)e(dies)h(when)197 1396 y(//)46 b
(this)22 b(function)g(r)n(eturns.)45 b(The)23 b(te)n(acher)g(pr)n(o)n(c)n(ess)
e(is)h(cr)n(e)n(ate)n(d)g(in)h(main\(\).)197 1453 y(//)46 b(This)22 b(pr)n
(o)n(c)n(ess)f(op)n(ens)h(the)h(\014le)f("in.1")h(for)g(r)n(e)n(ading)f(by)h
(c)n(al)r(ling)e(op)n(en\(\))h(on)197 1509 y(//)46 b(the)22 b(Standar)n(dFile\
SystemInterfac)n(e,)f(which)i(r)n(eturns)f(a)h(R)n(e)n(adFileStr)n(e)n(am)e
(obje)n(ct.)197 1566 y(//)46 b(We)23 b(then)f(r)n(ep)n(e)n(ate)n(d)g(r)n(e)n
(ad)h(a)g(line)f(fr)n(om)g(the)h(\014le)f(\(by)h(c)n(al)r(ling)e(R)n(e)n(adfr)
n(omFile\(\)\),)197 1622 y(//)46 b(print)22 b(it)h(\(by)f(c)n(al)r(ling)g(Wri\
teT)m(oScr)n(e)n(en\(\)\),)d(signal)j(the)h(student)g(pr)n(o)n(c)n(ess)e(to)
197 1679 y(//)46 b(r)n(e)n(ad)22 b(a)h(line)f(fr)n(om)h(the)g(keyb)n(o)n(ar)n
(d,)f(wait)h(for)g(the)g(line)f(to)h(b)n(e)f(r)n(e)n(ad)h(and)g(c)n(omp)n(ar)
n(e)197 1735 y(//)46 b(the)22 b(line)g(r)n(e)n(ad)h(fr)n(om)g(the)g(keyb)n
(o)n(ar)n(d)f(with)h(the)g(line)f(fr)n(om)h(fr)n(om)g(the)g(\014le.)197 1792 y
(//)46 b(We)23 b(c)n(ontinue)f(to)h(r)n(e)n(ad)f(lines)g(fr)n(om)g(the)h(keyb)
n(o)n(ar)n(d)g(and)g(c)n(omp)n(ar)n(e)f(them)h(with)197 1848 y(//)46 b(the)22
b(line)g(r)n(e)n(ad)h(fr)n(om)g(the)g(\014le)f(until)g(they)h(match.)197 1905
y(//)197 1961 y(//)46 b(We)23 b(quit)g(when)f(the)h(\014le)f(runs)g(out)i(of)
f(lines)e(or)i(when)g(the)g(user)g(pr)n(esses)e('#')197 2017 y(//)46 b(\(the)
22 b(student)h(pr)n(o)n(c)n(ess)e(signals)g(this)i(by)f(storing)h(false)f(in)
g(NotEnd\).)45 b(Just)197 2074 y(//)h(b)n(efor)n(e)22 b(we)g(quit,)i(we)e(wak\
e)h(up)h(the)f(student)f(pr)n(o)n(c)n(ess.)197 2130 y(//)197 2187 y(//)46 b
(The)22 b(Standar)n(dFileSystemInterfac)n(e)e(is)i(a)h(sp)n(e)n(cial)f(glob)n
(al)g(variable)g(that)197 2243 y(//)46 b(is)22 b(use)n(d)g(for)h(ac)n(c)n(ess\
ing)e(\014le)h(servic)n(es.)197 2356 y(//)46 b(Lightweight)22 b(pr)n(o)n(c)n
(ess)g(cr)n(e)n(ate)n(d)g(in)g(main\(\))g(starts)g(her)n(e.)197 2413 y fi(in)
o(t)14 b fg(erro)o(r;)197 2469 y fk(//)46 b(Op)n(en)21 b(the)i(\014le)f("in.1\
")h(for)g(r)n(e)n(ading.)197 2526 y fg(ReadFileStreamSta)o(r)15 b(inf)g(=)g
(Standa)o(rdFileSystemInterface)i fl(!)f fg(op)q(en)242 2582 y(\()p fh("in.1")
p fg(,)e(ReadFileStreamClass,)h(erro)o(r\);)941 2760 y fn(141)g eop bop 197 42
a fi(if)14 b fg(\(erro)o(r\))197 98 y fl(f)242 154 y(\003)p fg(Standa)o(rdOut\
put)19 b fl(\034)c fh(")p fl(\003\003\003)23 b fh(error)g(opening)g(file)h fl
(n)p fh(n")14 b fl(\034)i fg(eo)o(r;)242 211 y fi(return)f fg(0;)197 267 y fl
(g)197 380 y(\003)p fg(Standa)o(rdOutput)j fl(\034)e fh("Type)23 b(a)h(sequen\
ce)f(of)g(keys)g(ending)h(with)f(#)p fl(n)p fh(n")14 b fl(\034)i fg(eo)o(r;)
197 437 y(Line)f fl(\003)p fg(teacherline)h(=)g fi(new)e fg(Line;)197 493 y fk
(//)46 b(R)n(e)n(ad)22 b(the)h(\014rst)f(line)g(fr)n(om)h(the)g(\014le)f(and)
g(print)h(it.)197 550 y fg(teacherline)16 b fl(!)g fg(ReadfromFile)e(\(inf,)g
(NotEnd\);)197 606 y(teacherline)i fl(!)g fg(W)o(riteT)l(oScreen)f(\(Standa)o
(rdOutput)q(\);)197 663 y(sem)f fl(!)i fg(V\(\);)70 b fk(//)45 b(Wake)24 b
(up)f(the)g(student)g(pr)n(o)n(c)n(ess)e(to)i(r)n(e)n(ad)g(a)g(line)e(fr)n
(om)i(keyb)n(o)n(ar)n(d.)197 719 y fg(sem)14 b fl(!)i fg(P\(\);)152 b fk(//)
46 b(Wait)23 b(for)g(the)g(student)g(pr)n(o)n(c)n(ess)e(to)i(\014nish)f(r)n
(e)n(ading)g(the)h(line.)197 775 y fi(while)14 b fg(\(NotEnd\))197 832 y fl
(f)242 888 y fk(//)46 b(NotEnd)22 b(is)h(true)g(if)g(user)f(didn)-5 b('t)23 b
(typ)n(e)g('#'.)46 b(Che)n(ck)21 b(whether)j(the)f(line)f(that)242 945 y(//)
46 b(the)23 b(user)g(has)f(typ)n(e)n(d)h(is)f(e)n(qual)h(to)g(the)g(line)f
(we)g(have)h(just)g(r)n(e)n(ad.)242 1001 y fi(if)15 b fg(\(equal)g(\(studentl\
ine,)j(teacherline\)\))242 1058 y fl(f)288 1114 y fk(//)45 b(If)23 b(so,)f
(r)n(e)n(ad)h(the)g(next)f(line)g(fr)n(om)h(the)g(\014le)f(and)g(print)h(it.)
45 b(NotEnd)23 b(is)288 1171 y(//)45 b(set)23 b(to)g(false)f(if)g(ther)n(e)h
(ar)n(e)g(no)f(mor)n(e)h(lines)f(to)h(b)n(e)f(r)n(e)n(ad)g(fr)n(om)h(the)g
(\014le.)288 1227 y fg(teacherline)16 b fl(!)g fg(ReadfromFile)e(\(inf,)g(Not\
End\);)288 1284 y(teacherline)i fl(!)g fg(W)o(riteT)l(oScreen)f(\(Standa)o
(rdOutput)q(\);)242 1340 y fl(g)242 1396 y fi(else)288 1453 y fk(//)45 b(The)
23 b(lines)e(don)-5 b('t)23 b(match;)h(tel)r(l)e(the)h(user)g(to)g(typ)n(e)f
(again.)288 1509 y fl(\003)p fg(Standa)o(rdOutput)c fl(\034)e fh("Try)23 b
(again)p fl(n)p fh(n")14 b fl(\034)i fg(eo)o(r;)242 1566 y fi(if)f fg(\(NotEn\
d\))242 1622 y fl(f)288 1679 y fg(sem)f fl(!)i fg(V\(\);)60 b fk(//)46 b(Wake)
24 b(up)f(student)g(pr)n(o)n(c)n(ess)e(to)i(r)n(e)n(ad)g(a)g(line)e(fr)n(om)i
(keyb)n(o)n(ar)n(d.)288 1735 y fg(sem)14 b fl(!)i fg(P\(\);)143 b fk(//)46 b
(Wait)23 b(for)g(student)g(pr)n(o)n(c)n(ess)e(to)i(\014nish)f(r)n(e)n(ading)g
(the)h(line.)242 1792 y fl(g)197 1848 y(g)197 1905 y fg(sem)14 b fl(!)i fg
(V\(\);)249 b fk(//)46 b(Wake)23 b(up)h(student)e(pr)n(o)n(c)n(ess)g(in)g(c)n
(ase)g(it's)g(stil)r(l)g(waiting.)197 1961 y fi(delete)15 b fg(teacherline;)
197 2017 y fk(//)46 b(This)22 b(pr)n(o)n(c)n(ess)f(dies)h(her)n(e.)197 2074 y
fi(return)14 b fg(0;)151 2130 y fl(g)151 2243 y fi(in)o(t)h fg(main)f(\()p fi
(in)o(t)p fg(,)g fi(c)o(har)h fl(\003\003)p fg(\))151 2300 y fl(f)197 2356 y
fk(//)46 b(This)22 b(pr)n(o)n(c)n(ess)f(runs)h(as)h(the)g(student)f(pr)n(o)n
(c)n(ess,)g(r)n(e)n(ading)g(lines)f(fr)n(om)i(the)197 2413 y(//)46 b(keyb)n
(o)n(ar)n(d)22 b(and)h(waking)f(up)i(the)e(te)n(acher)h(pr)n(o)n(c)n(ess)f
(when)g(the)h(lines)f(ar)n(e)g(r)n(e)n(ady.)197 2469 y(//)46 b(In)21 b(this)i
(pr)n(o)n(c)n(ess,)e(we)i(\014rst)f(cr)n(e)n(ate)h(a)f(semaphor)n(e)i(for)f
(synchr)n(onizing)d(the)197 2526 y(//)46 b(two)23 b(pr)n(o)n(c)n(esses.)43 b
(We)23 b(then)g(fetch)g(the)g(SystemTimer)e(fr)n(om)i(the)g(Standar)n(dName)
197 2582 y(//)46 b(Server)22 b(by)h(c)n(al)r(ling)e(lo)n(okup\(\).)45 b(We)23
b(cr)n(e)n(ate)f(the)h(te)n(acher)g(pr)n(o)n(c)n(ess)e(and)941 2760 y fn(142)
g eop bop 197 42 a fk(//)46 b(make)22 b(it)h(runnable)f(by)h(c)n(al)r(ling)f
(r)n(e)n(ady\(\))f(on)i(the)g(pr)n(o)n(c)n(ess.)44 b(By)23 b(c)n(al)r(ling)
197 98 y(//)46 b(time\(\))22 b(on)g(the)h(SystemTimer,)f(we)h(obtain)f(the)h
(curr)n(ent)g(system)f(time)h(in)197 154 y(//)46 b(micr)n(ose)n(c)n(onds;)21 b
(this)h(value)h(is)f(stor)n(e)n(d)h(in)f("start".)197 211 y(//)197 267 y(//)
46 b(After)22 b(that,)h(we)g(r)n(ep)n(e)n(ate)n(d)r(ly)f(r)n(e)n(ad)h(lines)e
(fr)n(om)i(the)g(keyb)n(o)n(ar)n(d,)g(print)f(them,)197 324 y(//)46 b(signal)
21 b(the)i(te)n(acher)g(pr)n(o)n(c)n(ess)e(to)i(pr)n(o)n(c)n(ess)f(the)h(line)
e(and)i(wait)g(for)g(the)g(te)n(acher)197 380 y(//)46 b(pr)n(o)n(c)n(ess)21 b
(to)i(\014nish)f(pr)n(o)n(c)n(essing)e(the)j(line.)45 b(We)23 b(stop)g(when)f
(the)h(user)g(pr)n(esses)197 437 y(//)46 b('#')22 b(or)h(when)g(the)g(\014le)
f(runs)g(out)i(of)f(lines)e(\(p)n(ar)n(ent)h(pr)n(o)n(c)n(ess)f(indic)n(ates)
h(this)197 493 y(//)46 b(by)22 b(storing)g(false)g(in)h(NotEnd\).)44 b(Next,)
23 b(we)g(signal)e(the)i(te)n(acher)g(pr)n(o)n(c)n(ess)197 550 y(//)46 b(to)
23 b(wake)g(up.)46 b(Final)r(ly)21 b(we)i(print)g(out)g(the)g(dur)n(ation)h
(of)e(the)h(session)f(by)197 606 y(//)46 b(subtr)n(acting)22 b(the)h(starting)
f(time)h(\("start"\))g(fr)n(om)g(the)g(curr)n(ent)f(time)197 663 y(//)46 b
(\(obtaine)n(d)22 b(by)g(c)n(al)r(ling)g(time\(\))g(on)g(the)h(SystemTimer\).)
197 719 y(//)197 775 y(//)46 b(Lines)21 b(r)n(e)n(ad)h(fr)n(om)h(the)g(keyb)n
(o)n(ar)n(d)g(ar)n(e)f(stor)n(e)n(d)h(in)f(the)h(glob)n(al)f(variable)197 832
y(//)46 b(studentline.)e(studentline)21 b(is)i(r)n(e)n(ad)f(fr)n(om)h(the)g
(keyb)n(o)n(ar)n(d)g(by)f(c)n(al)r(ling)197 888 y(//)46 b(R)n(e)n(adfr)n(omKe\
yb)n(o)n(ar)n(d\(\);)21 b(studentline)h(is)g(printe)n(d)h(by)f(c)n(al)r(ling)
g(WriteT)m(oScr)n(e)n(en\(\).)197 945 y(//)197 1001 y(//)46 b(Standar)n(dName\
Server)22 b(is)g(a)h(sp)n(e)n(cial)f(glob)n(al)g(variable)g(use)n(d)h(for)g
(fetching)197 1058 y(//)46 b(system)22 b(obje)n(cts.)197 1171 y(//)46 b(Cr)n
(e)n(ate)21 b(a)i(semaphor)n(e)g(and)g(set)g(its)f(c)n(ounter)h(to)g(0.)197
1227 y fg(sem)14 b(=)i fi(new)f fg(Semapho)o(re)g(\(0\);)197 1284 y fi(unsign\
ed)f(in)o(t)h fg(sta)o(rt,)g(duration;)197 1340 y fk(//)46 b(F)m(etch)22 b
(the)h(system)f(timer)h(fr)n(om)g(the)g(Standar)n(dNameServer.)197 1396 y fg
(F)o(reeRunningTimerSta)o(r)15 b(SystemTimer)f(=)h(\(F)o(reeRunningTimerSta)o
(r\))242 1453 y(Standa)o(rdNameServer)g fl(!)h fg(lo)q(okup)g(\()p fh("System\
Timer")p fg(,)d fh("FreeRunningTimer")f fg(\);)197 1566 y fk(//)46 b(Cr)n(e)n
(ate)21 b(the)i(te)n(acher)g(pr)n(o)n(c)n(ess)f(which)h(wil)r(l)f(start)h(exe)
n(cution)g(at)g(main2\(\).)197 1622 y fg(Pro)q(cessSta)o(r)15 b(p)o(ro)q(c)g
(=)h fi(new)f fg(ApplicationPro)q(cess)i(\(main2\);)197 1679 y fk(//)46 b(Pr)
n(o)n(c)n(ess)20 b(wil)r(l)j(not)g(run)f(until)h(we)g(r)n(e)n(ady\(\))e(it.)
197 1735 y fg(p)o(ro)q(c)15 b fl(!)g fg(ready)g(\(\);)197 1792 y fk(//)46 b
(R)n(ememb)n(er)22 b(the)h(time)g(now.)197 1848 y fg(sta)o(rt)15 b(=)h(System\
Timer)e fl(!)h fg(time)g(\(\);)197 1905 y fk(//)46 b(Wait)23 b(for)g(te)n(ach\
er)g(pr)n(o)n(c)n(ess)e(to)i(r)n(e)n(ad)g(a)g(line)f(fr)n(om)h(the)f(\014le)g
(and)h(print)g(it.)197 1961 y fg(sem)14 b fl(!)i fg(P)f(\(\);)197 2017 y fi
(while)f fg(\(NotEnd\))197 2074 y fl(f)242 2130 y fk(//)46 b(NotEnd)22 b(is)h
(true)g(if)g(the)g(\014le)e(hasn)-5 b('t)23 b(run)g(out)g(of)g(lines.)44 b
(R)n(e)n(ad)23 b(a)g(line)242 2187 y(//)46 b(fr)n(om)23 b(the)g(keyb)n(o)n
(ar)n(d)f(and)h(set)f(NotEnd)h(to)g(false)f(if)g(user)h(typ)n(es)g('#'.)242
2243 y fg(studentline)c fl(!)c fg(ReadfromKeyb)q(oa)o(rd)f(\(Standa)o(rdInput\
,)j(NotEnd\);)242 2300 y(studentline)i fl(!)c fg(W)o(riteT)l(oScreen)h(\(Stan\
da)o(rdOutput\);)242 2356 y fi(if)f fg(\(NotEnd\))242 2413 y fl(f)288 2469 y
fg(sem)f fl(!)i fg(V)f(\(\);)94 b fk(//)46 b(If)22 b(user)h(didn)-5 b('t)23 b
(typ)n(e)f('#',)h(wake)g(up)g(the)g(te)n(acher)g(pr)n(o)n(c)n(ess.)288 2526 y
fg(sem)14 b fl(!)i fg(P)f(\(\);)79 b fk(//)46 b(Wait)23 b(for)g(te)n(acher)g
(pr)n(o)n(c)n(ess)f(to)h(r)n(e)n(ad)f(a)h(line)f(fr)n(om)h(the)g(\014le.)242
2582 y fl(g)941 2760 y fn(143)g eop bop 197 42 a fl(g)197 98 y fg(sem)14 b fl
(!)i fg(V)g(\(\);)313 b fk(//)46 b(Wake)23 b(up)h(the)f(te)n(acher)g(in)f(c)n
(ase)g(it's)g(stil)r(l)g(waiting.)197 211 y fi(delete)15 b fg(studentline;)
197 267 y fk(//)46 b(Print)22 b(the)h(total)g(dur)n(ation)g(of)g(this)g(sessi\
on.)197 324 y fg(duration)16 b(=)f(SystemTimer)f fl(!)i fg(time)f(\(\))f(-)h
(sta)o(rt;)197 380 y fl(\003)p fg(Standa)o(rdOutput)j fl(\034)e fh("Time)23 b
(typing)g(")15 b fl(\034)h fg(duration)g fl(\034)f fh(")24 b(microseconds)p fl
(n)p fh(n")13 b fl(\034)j fg(eo)o(r;)197 437 y fi(return)e fg(0;)151 493 y fl
(g)941 2760 y fn(144)g eop bop 37 405 a fc(APPENDIX)33 b(B)37 675 y fb(Class)
39 b(Hierarc)m(h)m(y)g(Chart)941 2760 y fn(145)g eop bop 287 0 a
21739551 40258437 986726 986726 27562557 49533665 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 15 15 419 753
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.935065 0 0 0.935065 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 4.57764e-05 -6.10352e-05 ] concat

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 20 20 ] concat
%I
[
(ClassInstaller)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 30 20 ] concat
%I
[
(ConstructorInstaller)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 40 20 ] concat
%I
[
(DataSink)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 50 20 ] concat
%I
[
(Flush)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 60 20 ] concat
%I
[
(MethodTableEntry)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 70 165 ] concat
%I
[
(ClassConstructor)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 80 165 ] concat
%I
[
(InputStream)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 90 165 ] concat
%I
[
(Message)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 100 165 ] concat
%I
[
(OutputStream)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
163 68 163 108 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
68 93 163 93 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 85 70 ] concat
%I
[
(ProxiableObject)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
68 83 68 93 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 93 68 93 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 85 20 ] concat
%I
[
(Object)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 110 20 ] concat
%I
[
(ProvidedVersionInstaller)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 120 180 ] concat
%I
[
(LocalBoxRef)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
178 118 178 128 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
128 128 178 128 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 120 130 ] concat
%I
[
(BoxRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 130 130 ] concat
%I
[
(ClassConstructorRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 140 130 ] concat
%I
[
(ClassRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 150 130 ] concat
%I
[
(ConstructorDescriptorRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 160 130 ] concat
%I
[
(DiskRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 170 130 ] concat
%I
[
(DomainRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 180 130 ] concat
%I
[
(FaultHandlerRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 190 130 ] concat
%I
[
(FileSystemInterfaceRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 200 130 ] concat
%I
[
(FreeRunningTimerRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 210 220 ] concat
%I
[
(CharacterInputStreamRef)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
218 208 218 218 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
128 218 218 218 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 210 130 ] concat
%I
[
(InputStreamRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 220 220 ] concat
%I
[
(MemoryObjectCacheRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 230 315 ] concat
%I
[
(PersistentMemoryObjectRef)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
313 228 313 238 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
218 238 313 238 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 230 220 ] concat
%I
[
(MemoryObjectRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 240 220 ] concat
%I
[
(PhysicalMemoryRangeRef)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
218 218 218 248 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
128 238 218 238 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 230 130 ] concat
%I
[
(MemoryRangeRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 250 130 ] concat
%I
[
(MessageRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 260 130 ] concat
%I
[
(NameServerRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 270 130 ] concat
%I
[
(ObjectProxyManagerRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 280 130 ] concat
%I
[
(OutputStreamRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 290 130 ] concat
%I
[
(ProcessRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 300 130 ] concat
%I
[
(ProxyTableCopyRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 310 130 ] concat
%I
[
(SemaphoreRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 320 310 ] concat
%I
[
(ReadFileStreamRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 330 310 ] concat
%I
[
(WriteFileStreamRef)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
308 318 308 338 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
223 333 308 333 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 325 225 ] concat
%I
[
(FileStreamRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 340 225 ] concat
%I
[
(MemoryObjectContainerRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 350 225 ] concat
%I
[
(MemoryObjectDictionaryRef)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
223 323 223 358 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
128 345 223 345 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 337 130 ] concat
%I
[
(StoredObjectRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 360 130 ] concat
%I
[
(SystemInterfaceRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 370 190 ] concat
%I
[
(TimeoutTimerRef)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
188 368 188 378 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
128 378 188 378 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 370 130 ] concat
%I
[
(TimerRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 380 130 ] concat
%I
[
(TimingInterfaceRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 390 130 ] concat
%I
[
(VersionObjectRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 400 130 ] concat
%I
[
(VirtualPCInterfaceRef)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 410 130 ] concat
%I
[
(VirtualPCRegisterQueueRef)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
128 118 128 418 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 273 128 273 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 265 20 ] concat
%I
[
(ProxiableObjectRef)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 1 0 0 1 -359.161 345.306 ] concat

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 420 190 ] concat
%I
[
(LocalBoxStar)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
188 418 188 428 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
133 428 188 428 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 420 135 ] concat
%I
[
(BoxStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 430 135 ] concat
%I
[
(ClassConstructorStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 440 135 ] concat
%I
[
(ClassStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 450 135 ] concat
%I
[
(ConstructorDescriptorStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 460 135 ] concat
%I
[
(DiskStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 470 135 ] concat
%I
[
(DomainStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 480 135 ] concat
%I
[
(FaultHandlerStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 490 135 ] concat
%I
[
(FileSystemInterfaceStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 500 135 ] concat
%I
[
(FreeRunningTimerStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 510 230 ] concat
%I
[
(CharacterInputStreamStar)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
228 508 228 518 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
133 518 228 518 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 510 135 ] concat
%I
[
(InputStreamStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 520 230 ] concat
%I
[
(MemoryObjectCacheStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 530 330 ] concat
%I
[
(PersistentMemoryObjectStar)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
328 528 328 538 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
228 538 328 538 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 530 230 ] concat
%I
[
(MemoryObjectStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 540 230 ] concat
%I
[
(PhysicalMemoryRangeStar)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
228 518 228 548 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
133 538 228 538 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 530 135 ] concat
%I
[
(MemoryRangeStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 550 135 ] concat
%I
[
(MessageStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 560 135 ] concat
%I
[
(NameServerStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 570 135 ] concat
%I
[
(ObjectProxyManagerStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 580 135 ] concat
%I
[
(OutputStreamStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 590 135 ] concat
%I
[
(ProcessStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 600 135 ] concat
%I
[
(ProxyTableCopyStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 610 135 ] concat
%I
[
(SemaphoreStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 620 325 ] concat
%I
[
(ReadFileStreamStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 630 325 ] concat
%I
[
(WriteFileStreamStar)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
323 618 323 638 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
233 633 323 633 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 625 235 ] concat
%I
[
(FileStreamStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 640 235 ] concat
%I
[
(MemoryObjectContainerStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 650 235 ] concat
%I
[
(MemoryObjectDictionaryStar)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
233 623 233 658 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
133 645 233 645 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 637 135 ] concat
%I
[
(StoredObjectStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 660 135 ] concat
%I
[
(SystemInterfaceStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 670 200 ] concat
%I
[
(TimeoutTimerStar)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
198 668 198 678 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
133 678 198 678 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 670 135 ] concat
%I
[
(TimerStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 680 135 ] concat
%I
[
(TimingInterfaceStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 690 135 ] concat
%I
[
(VersionObjectStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 700 135 ] concat
%I
[
(VirtualPCInterfaceStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 710 135 ] concat
%I
[
(VirtualPCRegisterQueueStar)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
133 418 133 718 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 573 133 573 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 565 20 ] concat
%I
[
(ProxiableObjectStar)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 720 20 ] concat
%I
[
(ProxyTable)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 730 20 ] concat
%I
[
(ProxyTableInstaller)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 740 20 ] concat
%I
[
(RequiredVersionInstaller)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 750 20 ] concat
%I
[
(VersionInstaller)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 760 20 ] concat
%I
[
(VirtualPCArgs)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 770 20 ] concat
%I
[
(asAddress)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 780 20 ] concat
%I
[
(asBits)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 790 20 ] concat
%I
[
(asHex)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 800 20 ] concat
%I
[
(asOctal)
] Text
End

End %I eop

End %I eop

End %I eop

End %I eop

showpage

%%Trailer

end

endTexFig
1687 2314 a
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch translate

2161 2387 a fi(Figure)16 b(B.1)p fn(:)k(Classes)14 b(in)h(the)h fg(Common)d fn
(directory)1769 2314 y currentpoint grestore moveto
941 2760 a fn(146)g eop bop
225 615 a 23681433 22734171 986726 986726 29404446 28549283 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 15 15 447 434
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.935065 0 0 0.935065 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 20 105 ] concat
%I
[
(MadAllocator)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 30 105 ] concat
%I
[
(MemoryBlockAllocator)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 40 105 ] concat
%I
[
(StupidAllocator)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
103 18 103 48 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 38 103 38 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 30 20 ] concat
%I
[
(\(Allocator\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 50 20 ] concat
%I
[
(CPUCollection)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 60 20 ] concat
%I
[
(CPUSetIterator)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 70 20 ] concat
%I
[
(MethodTableEntryCopy)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 80 220 ] concat
%I
[
(TwoLevelPageTable)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
218 78 218 88 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 88 218 88 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 80 90 ] concat
%I
[
(\(AddressTranslation\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 90 90 ] concat
%I
[
(CPUSet)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 100 180 ] concat
%I
[
(BlockCharacterQueue)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 110 180 ] concat
%I
[
(LineBufferedEchoingCharacterQueue)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 120 180 ] concat
%I
[
(RawCharacterQueue)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
178 98 178 128 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 118 178 118 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 110 90 ] concat
%I
[
(CharacterQueue)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 130 155 ] concat
%I
[
(AwaitedInterruptException)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 140 155 ] concat
%I
[
(TimeSliceException)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 150 155 ] concat
%I
[
(TimerManagerException)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
153 128 153 158 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 148 153 148 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 140 90 ] concat
%I
[
(Exception)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 160 90 ] concat
%I
[
(Gate)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 170 90 ] concat
%I
[
(Kernel)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 180 90 ] concat
%I
[
(ObjectProxy)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 190 190 ] concat
%I
[
(NullProcessContainer)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 200 305 ] concat
%I
[
(LockedSingleProcessHolder)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
303 198 303 208 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
188 208 303 208 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 200 190 ] concat
%I
[
(SingleProcessHolder)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
188 188 188 208 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 203 188 203 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 195 90 ] concat
%I
[
(ProcessContainer)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 210 90 ] concat
%I
[
(ProcessorContext)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 220 205 ] concat
%I
[
(CPU)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 230 205 ] concat
%I
[
(Class)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 240 205 ] concat
%I
[
(ConstructorDescriptor)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 250 205 ] concat
%I
[
(FreeRunningTimer)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 260 205 ] concat
%I
[
(NameServer)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 270 205 ] concat
%I
[
(ObjectProxyManager)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 280 260 ] concat
%I
[
(ApplicationProcess)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 290 260 ] concat
%I
[
(InterruptProcess)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 300 260 ] concat
%I
[
(PerCPUIdleProcess)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 310 345 ] concat
%I
[
(PreemptableSystemProcess)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
343 308 343 318 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
258 318 343 318 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 310 260 ] concat
%I
[
(SystemProcess)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
258 278 258 318 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 303 258 303 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 295 205 ] concat
%I
[
(Process)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 320 205 ] concat
%I
[
(ProxyTableCopy)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 330 365 ] concat
%I
[
(LazySemaphore)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 340 365 ] concat
%I
[
(MutexSemaphore)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
363 328 363 348 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
268 343 363 343 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 335 270 ] concat
%I
[
(BinarySemaphore)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 350 270 ] concat
%I
[
(GraciousSemaphore)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 360 270 ] concat
%I
[
(MultiVSemaphore)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
268 333 268 368 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 355 268 355 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 347 205 ] concat
%I
[
(Semaphore)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 370 205 ] concat
%I
[
(SystemInterface)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 380 250 ] concat
%I
[
(PeriodicTimer)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 390 250 ] concat
%I
[
(TimeoutTimer)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
248 378 248 398 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 393 248 393 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 385 205 ] concat
%I
[
(Timer)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 400 205 ] concat
%I
[
(TimingInterface)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 410 205 ] concat
%I
[
(VersionObject)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 218 203 418 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 323 203 323 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 315 90 ] concat
%I
[
(\(ProxiableObject\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 420 90 ] concat
%I
[
(SchedulerInfo)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 430 90 ] concat
%I
[
(Statistics)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 440 90 ] concat
%I
[
(TimerManager)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 78 88 448 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 268 88 268 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 260 20 ] concat
%I
[
(\(Object\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 450 20 ] concat
%I
[
(ObjectProxyKey)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 460 20 ] concat
%I
[
(ProxyReturnFlags)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 470 20 ] concat
%I
[
(_statistics)
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
1687 2269 a
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch translate

2185 2342 a fi(Figure)16 b(B.2)p fn(:)k(Classes)14 b(in)h(the)h fg(Kernel)f fn
(directory)1769 2269 y currentpoint grestore moveto
941 2760 a fn(147)g eop bop
544 0 a 13616824 39271711 986726 986726 14603550 40258437 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 15 15 222 612
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.935065 0 0 0.935065 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 20 20 ] concat
%I
[
(AddressFlushQueue)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 30 90 ] concat
%I
[
(AddressTranslation)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 40 90 ] concat
%I
[
(AddressTranslator)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 50 90 ] concat
%I
[
(PhysicalMemoryChain)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 60 90 ] concat
%I
[
(PhysicalMemoryChainContiguousBlockIterator)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 70 205 ] concat
%I
[
(Domain)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 80 205 ] concat
%I
[
(DomainCleaner)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 90 205 ] concat
%I
[
(FaultHandler)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 100 465 ] concat
%I
[
(PhysicallyResidentMemoryObject)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 110 465 ] concat
%I
[
(RootMemoryObject)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
463 98 463 118 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
358 113 463 113 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 105 360 ] concat
%I
[
(DummyMemoryObject)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 120 360 ] concat
%I
[
(PhysicalMemoryObject)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
358 103 358 128 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
278 120 358 120 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 112 280 ] concat
%I
[
(MemoryObject)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 130 515 ] concat
%I
[
(FIFOPagedMemoryObjectCache)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 140 515 ] concat
%I
[
(RandomPagedMemoryObjectCache)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 150 515 ] concat
%I
[
(RootMemoryObjectCache)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
513 128 513 158 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
383 148 513 148 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 140 385 ] concat
%I
[
(PagedMemoryObjectCache)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 160 385 ] concat
%I
[
(PremappedMemoryObjectCache)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
383 138 383 168 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
278 158 383 158 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 150 280 ] concat
%I
[
(MemoryObjectCache)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 170 280 ] concat
%I
[
(PhysicalMemoryRange)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 180 280 ] concat
%I
[
(VirtualMemoryRange)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
278 110 278 188 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 154 278 154 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 146 205 ] concat
%I
[
(MemoryRange)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 190 205 ] concat
%I
[
(PhysicalMemoryManager)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 200 205 ] concat
%I
[
(Store)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 68 203 208 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 143 203 143 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 135 90 ] concat
%I
[
(\(ProxiableObject\))
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 28 88 143 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 90 88 90 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 82 20 ] concat
%I
[
(\(Object\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 210 20 ] concat
%I
[
(PhysicalMemoryChainIterator)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 220 20 ] concat
%I
[
(PhysicallyAddressableUnit)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 230 20 ] concat
%I
[
(asPAU)
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
1687 2312 a
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch translate

2169 2385 a fi(Figure)16 b(B.3)p fn(:)k(Classes)14 b(in)h(the)h fg(Memo)o(ry)
d fn(directory)1769 2312 y currentpoint grestore moveto
941 2760 a fn(148)g eop
bop 854 0 a 3815342 36508877 986726 986726 4802068 37495603 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 15 15 73 570
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.935065 0 0 0.935065 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 20 420 ] concat
%I
[
(ProcessInputStream)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
418 18 418 28 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
298 28 418 28 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 20 300 ] concat
%I
[
(CharacterInputStream)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 30 300 ] concat
%I
[
(NullInputStream)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
298 18 298 38 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 33 298 33 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 25 205 ] concat
%I
[
(\(InputStream\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 40 440 ] concat
%I
[
(IdentifyingMultiplexedOutputStream)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
438 38 438 48 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
303 48 438 48 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 40 305 ] concat
%I
[
(MultiplexedOutputStream)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 50 305 ] concat
%I
[
(NullOutputStream)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 60 305 ] concat
%I
[
(ProcessOutputStream)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
303 38 303 68 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 58 303 58 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 50 205 ] concat
%I
[
(\(OutputStream\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 70 205 ] concat
%I
[
(SerialLine)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 23 203 78 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 55 203 55 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 47 90 ] concat
%I
[
(\(ProxiableObject\))
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 45 88 55 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 55 88 55 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 47 20 ] concat
%I
[
(\(Object\))
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
1687 2332 a
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch translate

2151 2405 a fi(Figure)17 b(B.4)p fn(:)j(Classes)14 b(in)h(the)g fg(IODevices)
h fn(directory)1769 2332 y currentpoint grestore moveto
941 2760 a fn(149)g eop
bop 581 420 a
12432753 27891466 986726 986726 13419479 28878192 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 15 15 204 439
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.935065 0 0 0.935065 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 20 295 ] concat
%I
[
(RRScheduler)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 30 295 ] concat
%I
[
(SemaphoreRegulatedFIFOScheduler)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
293 18 293 38 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
208 33 293 33 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 25 210 ] concat
%I
[
(FIFOScheduler)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 40 210 ] concat
%I
[
(NonLockedFIFOScheduler)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 50 275 ] concat
%I
[
(SchedFeedbackQueues)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 60 275 ] concat
%I
[
(SchedPriorityList)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 70 345 ] concat
%I
[
(SchedStack)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
343 68 343 78 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
273 78 343 78 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 70 275 ] concat
%I
[
(SchedQueue)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 80 275 ] concat
%I
[
(SchedSearchList)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
273 48 273 88 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
208 73 273 73 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 65 210 ] concat
%I
[
(SchedList)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 90 290 ] concat
%I
[
(DeadlineSchedulerUSS)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 100 390 ] concat
%I
[
(LIFOSchedulerUSS)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 110 390 ] concat
%I
[
(RRSchedulerUSS)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
388 98 388 118 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
288 113 388 113 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 105 290 ] concat
%I
[
(FIFOSchedulerUSS)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 120 290 ] concat
%I
[
(HRNSchedulerUSS)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 130 385 ] concat
%I
[
(VMSSchedulerUSS)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
383 128 383 138 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
288 138 383 138 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 130 290 ] concat
%I
[
(MLFSchedulerUSS)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 140 290 ] concat
%I
[
(SRTSchedulerUSS)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 150 290 ] concat
%I
[
(UNIXSchedulerUSS)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
288 88 288 158 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
208 128 288 128 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 120 210 ] concat
%I
[
(SchedulerUSS)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 160 210 ] concat
%I
[
(SystemScheduler)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
208 23 208 168 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 100 208 100 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 92 90 ] concat
%I
[
(\(ProcessContainer\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 170 295 ] concat
%I
[
(DeadlineSchedulerInfo)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 180 295 ] concat
%I
[
(HRNSchedulerInfo)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 190 295 ] concat
%I
[
(SRTSchedulerInfo)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 200 295 ] concat
%I
[
(UNIXSchedulerInfo)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 210 295 ] concat
%I
[
(VMSSchedulerInfo)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
293 168 293 218 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
193 198 293 198 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 190 195 ] concat
%I
[
(USSSchedulerInfo)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
193 188 193 198 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 198 193 198 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 190 90 ] concat
%I
[
(\(SchedulerInfo\))
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 90 88 198 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 149 88 149 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 141 20 ] concat
%I
[
(\(Object\))
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
1687 2266 a
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch translate

2146 2339 a fi(Figure)16 b(B.5)p fn(:)k(Classes)14 b(in)h(the)h fg(Schedulers)
h fn(directory)1769 2266 y currentpoint grestore moveto
941 2760 a fn(150)g eop
bop 682 0 a 9259438 40258437 986726 986726 12169625 48875847 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 15 15 185 743
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.935065 0 0 0.935065 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 20 160 ] concat
%I
[
(PCKernel)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
158 18 158 28 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 28 158 28 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 20 90 ] concat
%I
[
(\(Kernel\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 30 240 ] concat
%I
[
(LocalBox)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
238 28 238 38 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 38 238 38 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 30 205 ] concat
%I
[
(Box)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 40 335 ] concat
%I
[
(PCi386CPU)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
333 38 333 48 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
258 48 333 48 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 40 260 ] concat
%I
[
(\(i386CPU\))
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
258 38 258 48 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 48 258 48 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 40 205 ] concat
%I
[
(\(CPU\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 50 325 ] concat
%I
[
(PCFreeRunningTimer)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
323 48 323 58 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 58 323 58 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 50 205 ] concat
%I
[
(\(FreeRunningTimer\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 60 715 ] concat
%I
[
(HeapMemoryObject)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
713 58 713 68 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
523 68 713 68 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 60 525 ] concat
%I
[
(\(PhysicallyResidentMemoryObject\))
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
523 58 523 68 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
398 68 523 68 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 60 400 ] concat
%I
[
(\(DummyMemoryObject\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 70 400 ] concat
%I
[
(PersistentMemoryObject)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
398 58 398 78 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
298 73 398 73 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 65 300 ] concat
%I
[
(\(MemoryObject\))
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
298 63 298 73 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 73 298 73 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 65 205 ] concat
%I
[
(\(MemoryRange\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 80 305 ] concat
%I
[
(PCConsole)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
303 78 303 88 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 88 303 88 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 80 205 ] concat
%I
[
(\(OutputStream\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 90 270 ] concat
%I
[
(PCTimesliceTimer)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
268 88 268 98 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 98 268 98 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 90 205 ] concat
%I
[
(\(Timer\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 100 205 ] concat
%I
[
(VirtualPCInterface)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 110 205 ] concat
%I
[
(VirtualPCRegisterQueue)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 28 203 118 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 78 203 78 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 70 90 ] concat
%I
[
(\(ProxiableObject\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 120 190 ] concat
%I
[
(PCTimerManager)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
188 118 188 128 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 128 188 128 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 120 90 ] concat
%I
[
(\(TimerManager\))
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 18 88 128 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 78 88 78 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 70 20 ] concat
%I
[
(\(Object\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 130 20 ] concat
%I
[
(PCBusyWait)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 140 20 ] concat
%I
[
(PCLock)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 150 20 ] concat
%I
[
(PCReferenceCount)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 160 20 ] concat
%I
[
(VirtualPC)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 170 20 ] concat
%I
[
(VirtualPCStack)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 180 20 ] concat
%I
[
(VirtualPCTask)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 190 20 ] concat
%I
[
(VirtualPCVectors)
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
1687 2299 a
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch translate

2063 2372 a fi(Figure)17 b(B.6)p fn(:)j(Classes)14 b(in)h(the)g fg(MachineDep)
q(enden)q(t)j fn(directory)1769 2299 y currentpoint grestore moveto
941 2760
a fn(151)g eop bop 562 0 a
13024788 39600619 986726 986726 14011514 40587345 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 15 15 213 617
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.935065 0 0 0.935065 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 20 20 ] concat
%I
[
(CodeDataSegmentDescriptor)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 30 20 ] concat
%I
[
(GateDescriptor)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 40 20 ] concat
%I
[
(InitialApplicationContextStackDescription)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 50 20 ] concat
%I
[
(IretFrame)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 60 20 ] concat
%I
[
(LretFrame)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 70 215 ] concat
%I
[
(i386MMU)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
213 68 213 78 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 78 213 78 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 70 90 ] concat
%I
[
(\(AddressTranslator\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 80 175 ] concat
%I
[
(StrayException)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 90 175 ] concat
%I
[
(i386GeneralProtectionException)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 100 175 ] concat
%I
[
(i386PageFaultException)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
173 78 173 108 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 98 173 98 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 90 90 ] concat
%I
[
(\(Exception\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 110 320 ] concat
%I
[
(i386ApplicationContext)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 120 425 ] concat
%I
[
(i386UninterruptableSystemContext)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
423 118 423 128 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
318 128 423 128 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 120 320 ] concat
%I
[
(i386SystemContext)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
318 108 318 128 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
208 123 318 123 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 115 210 ] concat
%I
[
(i386GenericContext)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
208 113 208 123 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 123 208 123 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 115 90 ] concat
%I
[
(\(ProcessorContext\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 130 260 ] concat
%I
[
(i386CPU)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
258 128 258 138 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 138 258 138 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 130 205 ] concat
%I
[
(\(CPU\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 140 540 ] concat
%I
[
(i386PhysicalMemoryObject)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
538 138 538 148 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
398 148 538 148 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 140 400 ] concat
%I
[
(\(PhysicalMemoryObject\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 150 400 ] concat
%I
[
(i386SourceOfZerosMemoryObject)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
398 138 398 158 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
298 153 398 153 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 145 300 ] concat
%I
[
(\(MemoryObject\))
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
298 143 298 153 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 153 298 153 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 145 205 ] concat
%I
[
(\(MemoryRange\))
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 128 203 153 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 145 203 145 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 137 90 ] concat
%I
[
(\(ProxiableObject\))
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 68 88 145 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 111 88 111 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 103 20 ] concat
%I
[
(\(Object\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 160 20 ] concat
%I
[
(SegmentDescriptor)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 170 20 ] concat
%I
[
(TaskStateSegment)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 180 20 ] concat
%I
[
(UserProxyStack)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 190 20 ] concat
%I
[
(UserProxyState)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 200 20 ] concat
%I
[
(i386PageTableEntry)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 210 20 ] concat
%I
[
(i386PointerTableEntry)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 220 20 ] concat
%I
[
(stackFrame)
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
1687 2332 a
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch translate

2053 2406 a fi(Figure)16 b(B.7)p fn(:)k(Classes)14 b(in)h(the)h fg(Pro)q(cess\
o)o(rDep)q(endent)i fn(directory)1769 2332 y currentpoint grestore moveto
941
2760 a fn(152)g eop bop 427 540 a
17300603 25457541 986726 986726 18287329 26444267 startTexFig

%!PS-Adobe-2.0 EPSF-1.2
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 15 15 278 402
%%EndComments

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l b translate w h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def

%%EndProlog

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

%I Idraw 10 Grid 8 8

%%Page: 1 1

Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.935065 0 0 0.935065 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 20 180 ] concat
%I
[
(SharedAllocator)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 30 180 ] concat
%I
[
(StaticAllocator)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
178 18 178 38 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
83 33 178 33 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 25 85 ] concat
%I
[
(BucketAllocator)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
83 23 83 33 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 33 83 33 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 25 20 ] concat
%I
[
(Allocator)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 40 20 ] concat
%I
[
(ApplicationDispatcher)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 50 130 ] concat
%I
[
(TerminalInputStream_read_Message)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 60 130 ] concat
%I
[
(TerminalInputStream_read_replyMessage)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 70 130 ] concat
%I
[
(TerminalOutputStream_write_Message)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
128 48 128 78 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 68 128 68 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 60 20 ] concat
%I
[
(ApplicationMessage)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 80 80 ] concat
%I
[
(Partition)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
78 78 78 88 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 88 78 88 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 80 20 ] concat
%I
[
(BitArray)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 90 20 ] concat
%I
[
(BitArrayRange)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 100 175 ] concat
%I
[
(AssocTable)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
173 98 173 108 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
83 108 173 108 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 100 85 ] concat
%I
[
(MultiHashTable)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
83 98 83 108 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 108 83 108 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 100 20 ] concat
%I
[
(HashTable)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 110 20 ] concat
%I
[
(LOCK)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 120 20 ] concat
%I
[
(LightHashTable)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 130 85 ] concat
%I
[
(NVList)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
83 128 83 138 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 138 83 138 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 130 20 ] concat
%I
[
(LightList)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 140 235 ] concat
%I
[
(NVListVirtualiser)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
233 138 233 148 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
113 148 233 148 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 140 115 ] concat
%I
[
(LightListVirtualiser)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 150 115 ] concat
%I
[
(NVLinkVirtualiser)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
113 138 113 158 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 153 113 153 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 145 20 ] concat
%I
[
(LinkVirtualiser)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 160 200 ] concat
%I
[
(IteratingList)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
198 158 198 168 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
138 168 198 168 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 160 140 ] concat
%I
[
(HintList)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
138 158 138 168 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
58 168 138 168 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 160 60 ] concat
%I
[
(CountingList)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
58 158 58 168 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 168 58 168 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 160 20 ] concat
%I
[
(List)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 170 245 ] concat
%I
[
(DOSFile)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
243 168 243 178 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 178 243 178 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 170 205 ] concat
%I
[
(File)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 180 320 ] concat
%I
[
(DOSFileSystemInterface)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
318 178 318 188 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 188 318 188 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 180 205 ] concat
%I
[
(FileSystemInterface)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 190 300 ] concat
%I
[
(PCConsoleInputStream)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
298 188 298 198 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 198 298 198 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 190 205 ] concat
%I
[
(\(InputStream\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 200 305 ] concat
%I
[
(BufferedOutputStream)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
303 198 303 208 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 208 303 208 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 200 205 ] concat
%I
[
(\(OutputStream\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 210 355 ] concat
%I
[
(ReadFileStream)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 220 355 ] concat
%I
[
(WriteFileStream)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
353 208 353 228 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
283 223 353 223 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 215 285 ] concat
%I
[
(FileStream)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
283 213 283 223 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 223 283 223 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 215 205 ] concat
%I
[
(StoredObject)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
203 168 203 223 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 200 203 200 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 192 90 ] concat
%I
[
(\(ProxiableObject\))
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
88 190 88 200 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 200 88 200 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 192 20 ] concat
%I
[
(\(Object\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 230 20 ] concat
%I
[
(REFERENCE_COUNT)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 240 115 ] concat
%I
[
(Link)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
113 238 113 248 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
63 248 113 248 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 240 65 ] concat
%I
[
(NVLink)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
63 238 63 248 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 248 63 248 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 240 20 ] concat
%I
[
(SLink)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 250 105 ] concat
%I
[
(LinkIterator)
] Text
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
103 248 103 258 Line
%I 1
End

Begin %I Line
%I b 65535
1 0 0 [] 0 SetB
%I cfg DkGray
0.501961 0.501961 0.501961 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0 1 1 0 0 0 ] concat
%I
18 258 103 258 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 250 20 ] concat
%I
[
(SLinkIterator)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 260 20 ] concat
%I
[
(StringInputStream)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 270 20 ] concat
%I
[
(StringOutputStream)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 280 20 ] concat
%I
[
(UserClass)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f *-courier-medium-r-*-80-*
Helvetica 8 SetF
%I t
[ 0 1 -1 0 290 20 ] concat
%I
[
(_GPLIB_DataSink_)
] Text
End

End %I eop

showpage

%%Trailer

end

endTexFig
1687 2322 a
gsave currentpoint currentpoint translate 270 rotate neg exch neg exch translate

2167 2395 a fi(Figure)16 b(B.8)p fn(:)k(Classes)14 b(in)h(the)h fg(Lib)o(ra)o
(ries)e fn(directory)1769 2322 y currentpoint grestore moveto
941 2760 a fn(153)
g eop bop 37 405 a fc(APPENDIX)33 b(C)37 675 y fb(Class)39 b(Index)37 897 y fn
(All)12 b(w)o(ords)g(prin)o(ted)g(in)g(b)q(old)h(fon)o(t)e(refer)i(to)e(class)
h(names.)18 b(The)13 b(\014lename)e(app)q(earing)h(after)g(the)h(class)e(name)
37 954 y(indicates)k(the)g(\014le)h(that)e(de\014nes)i(the)g(class.)37 1022 y
fo(AddressFlushQueue)j fr(Memory/AddressFlush)o(Queue)o(.h)37 1087 y fo(Addre\
ssT)l(ranslation)i fr(Memory/AddressT)m(ran)o(slat)o(ion)o(.h)37 1152 y fo
(AddressT)l(ranslator)g fr(Memory/AddressT)m(ra)o(nsla)o(tor.)o(h)37 1218 y fo
(Allo)q(cator)j fr(Allo)q(cator.h)37 1275 y fo(Allo)q(cator)g fr(Libraries/Sy)
o(stem)o(In)n(terf)o(ace)o(/Allo)q(c)o(ato)o(r.h)37 1340 y fo(ApplicationDisp\
atc)o(her)c fr(Libraries/Dispatc)n(her)o(/Appli)o(cat)o(ion)o(Dispa)o(tc)o
(h)o(er.h)37 1405 y fo(ApplicationMessage)i fr(Libraries/System)o(In)n(ter)o
(fac)o(e/T)m(erm)o(ina)o(lSt)o(rea)o(mMessa)o(ge.)o(h)37 1470 y fo(Applicatio\
nPro)q(cess)g fr(Pro)q(cess.h)37 1536 y fo(Asso)q(cT)l(able)h fr(Libraries/Ge\
nera)o(lPur)o(p)q(os)o(e/Asso)q(c)o(T)m(able.)o(h)37 1601 y fo(Aw)o(aitedIn)o
(terruptException)c fr(Aw)o(aitedIn)o(terruptEx)o(ce)o(ptio)o(n.h)37 1666 y fo
(BinarySemaphore)h fr(Semaphore)o(.h)37 1731 y fo(BitArra)o(y)i fr(Libraries/\
Genera)o(lPur)o(p)q(os)o(e/Bit)o(Arra)o(y)l(.h)37 1796 y fo(BitArra)o(yRange)
g fr(Libraries/Gen)o(era)o(lPurpose)o(/BitArr)o(a)o(y)m(.h)37 1862 y fo(Blo)q
(c)o(kCharacterQueue)g fr(CharacterQueue.h)37 1926 y fo(Bo)o(x)h fr(Mac)o(hin\
eDep)q(end)o(en)o(t)o(/PC/Bo)o(x)o(.h)37 1992 y fo(Bo)o(xRef)f fr(Common/Bo)o
(xSta)o(r.h)37 2057 y fo(Bo)o(xStar)g fr(Common/Bo)o(xSt)o(ar.)o(h)37 2122 y
fo(Buc)o(k)o(etAllo)q(cator)g fr(Libraries/Syste)o(mIn)n(ter)o(fac)o(e/Alloca\
t)o(or.h)37 2187 y fo(Bu\013eredOutput)o(St)o(ream)d fr(Libraries/Sys)o(tem)o
(In)o(t)o(erfa)o(ce/)o(Bu\013)o(ere)o(dOutp)o(utS)o(tre)o(am.)o(h)37 2252 y fo
(CPU)k fr(CPU.h)37 2309 y fo(CPUCollection)g fr(CPUCollection.h)37 2366 y fo
(CPUSet)f fr(CPUSet.h)37 2422 y fo(CPUSetIterator)f fr(CPUSet.h)37 2479 y fo
(CharacterInputStream)d fr(IODevices/CharacterI)o(np)o(utS)o(trea)o(m.)o(h)37
2545 y fo(CharacterInputStream)o(Re)o(f)i fr(Common/Charac)o(terI)o(np)o(utS)
o(trea)o(mS)o(tar)o(.h)37 2610 y fo(CharacterInputStream)o(S)o(tar)f fr(Commo\
n/Characte)o(rInp)o(ut)o(Stre)o(am)o(Sta)o(r.h)941 2760 y fn(154)g eop bop 37
42 a fo(CharacterQueue)21 b fr(CharacterQueue.h)37 107 y fo(Class)j fr(Class.\
h)37 165 y fo(ClassConstructor)e fr(Common/ClassConstr)o(uct)o(or.)o(h)37 231
y fo(ClassConstructorRef)f fr(Common/ClassConstru)o(cto)o(rSt)o(ar.)o(h)37 297
y fo(ClassConstructorStar)g fr(Common/ClassConst)o(ruct)o(orS)o(tar)o(.h)37
363 y fo(ClassInstaller)i fr(Common/ClassInsta)o(ller)o(.h)37 430 y fo(ClassR\
ef)g fr(Common/ClassStar)o(.h)37 496 y fo(ClassStar)g fr(Common/ClassSta)o
(r.h)37 562 y fo(Co)q(deDataSegmen)o(tD)o(escript)o(or)d fr(Pro)q(cessorDep)q
(e)o(nde)o(n)o(t/)o(i38)o(6/i3)o(86)o(CPU.h)37 628 y fo(ConstructorDescriptor)
f fr(ConstructorDescri)o(pto)o(r.h)37 694 y fo(ConstructorDescriptor)o(Ref)g
fr(Common/Construct)o(orDe)o(scri)o(pto)o(rSt)o(ar.h)37 760 y fo(ConstructorD\
escriptor)o(St)o(ar)h fr(Common/Construc)o(tor)o(Descr)o(ipt)o(orS)o(tar.)o
(h)37 826 y fo(ConstructorInstaller)g fr(Common/Construc)o(torI)o(nsta)o(lle)
o(r.h)37 892 y fo(Coun)o(tingList)h fr(Libraries/Gen)o(eral)o(Purpose/)o(List\
.)o(h)37 958 y fo(DOSFile)i fr(Libraries/File/)o(DOSFile.)o(h)37 1024 y fo
(DOSFileSystemIn)o(te)o(rface)d fr(Libraries/File/)o(DOSFileS)o(yst)o(emI)o
(n)o(te)o(rfa)o(ce.h)37 1090 y fo(DataSink)i fr(Common/DataSi)o(nk.h)37 1156 y
fo(DeadlineSc)o(hedulerInfo)d fr(Sc)o(hedulers/S)o(c)o(he)o(du)o(lerUSS)o(.h)
37 1222 y fo(DeadlineSc)o(hedulerUSS)g fr(Sc)o(hedulers/)o(Sc)o(h)o(edu)o(ler)
o(USS.h)37 1288 y fo(DiskRef)j fr(Common/DiskSta)o(r.h)37 1355 y fo(DiskStar)
g fr(Common/DiskSt)o(ar.h)37 1421 y fo(Domain)f fr(Memory/Domain.)o(h)37 1487
y fo(DomainCleaner)g fr(Memory/Domain)o(.h)37 1553 y fo(DomainRef)g fr(Common\
/Doma)o(inS)o(tar)o(.h)37 1619 y fo(DomainStar)f fr(Common/Domain)o(Sta)o(r.h)
37 1685 y fo(Dumm)o(yMem)o(oryOb)r(j)o(ect)g fr(Memory/Dumm)n(yMem)o(ory)o
(Ob)r(jec)o(t.h)37 1751 y fo(Exception)j fr(Exception.h)37 1817 y fo(FIF)o
(OP)o(agedMemoryOb)s(j)o(ectCac)o(he)d fr(Memory/FIF)o(OP)o(agedMem)o(or)o
(yOb)r(je)o(ctCac)o(h)o(e.h)37 1883 y fo(FIF)o(OSc)o(heduler)h fr(Sc)o(hedule\
rs/)o(FIF)o(OSc)o(h)o(edu)o(ler)o(.h)37 1949 y fo(FIF)o(OSc)o(hedulerUSS)e fr
(Sc)o(hedulers/Sc)n(hed)o(ule)o(rUSS.)o(h)37 2015 y fo(F)l(aultHandler)j fr
(Memory/F)m(aultHand)o(ler.)o(h)37 2081 y fo(F)l(aultHandlerRef)g fr(Common/F)
m(aul)o(tHand)o(lerS)o(tar)o(.h)37 2147 y fo(F)l(aultHandlerStar)f fr(Common/\
F)m(aultHand)o(ler)o(Sta)o(r.h)37 2213 y fo(File)j fr(Libraries/File/)o(File.)
o(h)37 2280 y fo(FileStream)d fr(Libraries/File/Fil)o(eSt)o(ream)o(.h)37 2346
y fo(FileStreamRef)g fr(Common/FileS)o(tre)o(am)o(Sta)o(r.h)37 2412 y fo(File\
StreamStar)f fr(Common/FileStr)o(eam)o(St)o(ar.h)37 2478 y fo(FileSystemIn)o
(terface)g fr(Libraries/File/)o(FileS)o(yst)o(emI)o(n)o(te)o(rfa)o(ce.h)37
2544 y fo(FileSystemIn)o(terfaceRef)f fr(Common/FileSy)o(stem)o(In)n(terf)o
(ace)o(Sta)o(r.h)37 2610 y fo(FileSystemIn)o(terfaceSt)o(ar)h fr(Common/FileS)
o(yste)o(mI)o(n)o(te)o(rfac)o(eSt)o(ar.h)941 2760 y fn(155)g eop bop 37 42 a
fo(Flush)22 b fr(Common/F)m(ormat)o(Assists.h)37 106 y fo(F)l(reeRunningTimer)
e fr(F)m(reeRunningTim)o(er.)o(h)37 171 y fo(F)l(reeRunningTimerRe)o(f)g fr
(Common/F)m(reeRu)o(nni)o(ngTim)o(erS)o(tar)o(.h)37 236 y fo(F)l(reeRunningTi\
merS)o(tar)f fr(Common/F)m(reeRunn)o(ing)o(Timer)o(Sta)o(r.h)37 301 y fo(Gate)
j fr(Gate.h)37 357 y fo(GateDescriptor)e fr(Pro)q(cessorDep)q(ende)o(n)o(t/)o
(i38)o(6/i)o(386)o(CPU.h)37 422 y fo(GraciousSemaphore)f fr(Semaphore.h)37 487
y fo(HRNSc)o(hedulerInfo)h fr(Sc)o(hedulers/Sc)n(hed)o(ule)o(rUSS.h)37 552 y
fo(HRNSc)o(hedulerUSS)g fr(Sc)o(hedulers/S)o(c)o(he)o(dul)o(erUSS)o(.h)37 617
y fo(HashT)l(able)j fr(Libraries/Gener)o(alPu)o(rp)q(o)o(se/Hash)o(T)m(able)o
(.h)37 682 y fo(HeapMemoryOb)s(ject)d fr(Mac)o(hineDep)q(ende)o(n)o(t/)o(PC/H\
eapMem)o(ory)o(Ob)r(jec)o(t.h)37 747 y fo(Hin)o(tList)i fr(Libraries/Gene)o
(ral)o(Purpose/)o(List.h)37 812 y fo(Iden)o(tifyingMultiplexedOutp)o(ut)o(St)
o(ream)d fr(IODevices/Multip)o(lexe)o(dOutp)o(utS)o(tre)o(am)o(.h)37 877 y fo
(InitialApplicationCon)o(textStac)o(kDescription)g fr(Pro)q(cessorDep)q(en)o
(den)n(t/i3)o(86)o(/i38)o(6Con)o(t)o(ext)o(.h)37 941 y fo(InputStream)g fr
(Common/Inpu)o(tSt)o(ream)o(.h)37 1006 y fo(InputStream)o(Ref)g fr(Common/Inp\
ut)o(Str)o(eam)o(Sta)o(r.h)37 1071 y fo(InputStream)o(St)o(ar)h fr(Common/Inp\
u)o(tSt)o(rea)o(mS)o(tar.)o(h)37 1135 y fo(In)o(terruptPr)o(o)q(cess)g fr(Pro)
q(cess.h)37 1200 y fo(IretF)l(rame)h fr(Pro)q(cessorDep)q(en)o(den)n(t/i3)o
(86)o(/i38)o(6Con)o(t)o(ext)o(.h)37 1265 y fo(IteratingList)g fr(Libraries/Ge\
ne)o(ralPu)o(rp)q(o)o(se/I)o(ter)o(atin)o(gList)o(.h)37 1330 y fo(Kernel)i fr
(Kernel.h)37 1386 y fo(LIF)o(OSc)o(hedulerUSS)c fr(Sc)o(hedulers/S)o(c)o(he)o
(du)o(lerUSS)o(.h)37 1451 y fo(LOCK)24 b fr(Libraries/Sys)o(tem)o(In)o(t)o
(erfa)o(ce/)o(LOCK.h)37 1516 y fo(LazySemaphore)c fr(Semaphore.h)37 1580 y fo
(Ligh)o(tHashT)l(able)i fr(Libraries/Gen)o(eral)o(Purpose)o(/Ligh)n(tHashT)m
(ab)o(le.h)37 1645 y fo(Ligh)o(tList)f fr(Libraries/Gene)o(ralPu)o(rp)q(o)o
(se/)o(Ligh)o(t)o(List.h)37 1710 y fo(Ligh)o(tListVirtualiser)f fr(Libraries/\
Gener)o(alPu)o(rp)q(o)o(se/Lig)o(h)o(t)o(List.h)37 1775 y fo(LineBu\013eredEc)
o(hoingCharacterQu)o(eue)f fr(CharacterQueue.h)37 1840 y fo(Link)k fr(Librari\
es/Gene)o(ral)o(Purpose/)o(Link)o(.h)37 1905 y fo(LinkIterator)e fr(Libraries\
/Gener)o(alPu)o(rp)q(o)o(se/Lin)o(kI)o(tera)o(tor)o(.h)37 1970 y fo(LinkVirtu\
aliser)h fr(Libraries/Gene)o(ralPu)o(rp)q(o)o(se/)o(Link)o(.h)37 2035 y fo
(List)h fr(Libraries/Gen)o(era)o(lPur)o(p)q(ose)o(/List)o(.h)37 2100 y fo(Lo)
q(calBo)o(x)h fr(Mac)o(hineDep)q(en)o(den)n(t/PC/Bo)n(x.h)37 2165 y fo(Lo)q
(calBo)o(xRef)f fr(Common/Lo)q(cal)o(Bo)o(xS)o(tar)o(.h)37 2229 y fo(Lo)q(cal\
Bo)o(xStar)f fr(Common/Lo)q(calBo)o(x)o(Sta)o(r.h)37 2294 y fo(Lo)q(c)o(k)o
(edSinglePro)q(cessHolder)e fr(SinglePro)q(cessHolde)o(r.h)37 2359 y fo(LretF)
l(rame)h fr(Pro)q(cessorDep)q(e)o(nde)o(n)o(t/)o(i38)o(6/i3)o(86)o(Con)o(tex)
o(t.h)37 2424 y fo(MLFSc)o(hedulerUSS)f fr(Sc)o(hedulers/)o(Sc)o(h)o(ed)o(ule\
r)o(USS.h)37 2489 y fo(MadAllo)q(cator)k fr(MadAllo)q(cator.h)37 2545 y fo
(MemoryBlo)q(c)o(kAllo)q(cator)f fr(MemoryBlo)q(c)o(kAllo)q(c)o(ato)o(r.h)37
2610 y fo(MemoryOb)s(ject)d fr(Memory/MemoryOb)r(j)o(ect.)o(h)941 2760 y fn
(156)g eop bop 37 42 a fo(MemoryOb)s(jectCac)o(he)20 b fr(Memory/MemoryOb)r
(j)o(ectCac)n(he.)o(h)37 108 y fo(MemoryOb)s(jectCac)o(heRef)f fr(Common/Memo\
ryOb)r(j)o(ectCac)n(heS)o(tar)o(.h)37 174 y fo(MemoryOb)s(jectCac)o(heStar)g
fr(Common/Memory)o(Ob)r(ject)o(Cac)o(he)o(Sta)o(r.h)37 240 y fo(MemoryOb)s
(jectCon)o(taine)o(rRef)g fr(Common/Memory)o(Ob)r(jec)o(tCon)o(ta)o(ine)o(rSt)
o(ar.h)37 306 y fo(MemoryOb)s(jectCon)o(taine)o(rSt)o(ar)h fr(Common/Memor)o
(yOb)r(je)o(ctCon)o(t)o(ain)o(erS)o(tar.)o(h)37 372 y fo(MemoryOb)s(jectDicti\
onaryRef)f fr(Common/Memor)o(yOb)r(jec)o(tDic)o(tion)o(ary)o(St)o(ar.h)37 439
y fo(MemoryOb)s(jectDictionaryS)o(tar)h fr(Common/Memo)o(ryOb)r(je)o(ctDi)o
(ctio)o(na)o(ryS)o(tar.)o(h)37 505 y fo(MemoryOb)s(jectRef)f fr(Common/Memory\
Ob)r(j)o(ectS)o(tar)o(.h)37 571 y fo(MemoryOb)s(jectStar)g fr(Common/Memory)o
(Ob)r(ject)o(Sta)o(r.h)37 637 y fo(MemoryOb)s(jectView)i fr(Memory/Memory)o
(Ob)r(ject)o(View.h)37 703 y fo(MemoryRange)g fr(Memory/MemoryRa)o(nge)o(.h)
37 769 y fo(MemoryRangeRef)f fr(Common/MemoryRa)o(nge)o(Sta)o(r.h)37 835 y fo
(MemoryRangeStar)g fr(Common/Memory)o(Rang)o(eSt)o(ar.)o(h)37 901 y fo(Messag\
e)j fr(Common/Message.)o(h)37 967 y fo(MessageRef)f fr(Common/MessageSt)o(ar.)
o(h)37 1033 y fo(MessageStar)g fr(Common/MessageS)o(tar)o(.h)37 1099 y fo(Met\
ho)q(dT)l(ableEn)o(try)f fr(Common/Pro)o(xyT)m(abl)o(e.h)37 1165 y fo(Metho)q
(dT)l(ableEn)o(tryCop)o(y)g fr(Pro)o(xyT)m(ableCop)o(y)m(.h)37 1231 y fo(Mult\
iHashT)l(able)i fr(Libraries/Gene)o(ralPu)o(rp)q(o)o(se/)o(MultiHash)o(T)m
(able.)o(h)37 1297 y fo(MultiVSemaphore)d fr(Semaphore.)o(h)37 1363 y fo(Mult\
iplexedOutputSt)o(ream)f fr(IODevices/Multipl)o(exe)o(dOutp)o(utS)o(tre)o(am)
o(.h)37 1430 y fo(MutexSemaphore)h fr(Semaphor)o(e.h)37 1496 y fo(NVLink)j fr
(Libraries/Gener)o(alPu)o(rp)q(o)o(se/Li)o(nk.h)37 1562 y fo(NVLinkVirtualise\
r)g fr(Libraries/Gen)o(era)o(lPur)o(p)q(ose)o(/Lin)o(k.h)37 1628 y fo(NVList)
g fr(Libraries/Gene)o(ralPu)o(rpose/)o(NVList.h)37 1694 y fo(NVListVirtualise\
r)f fr(Libraries/Gener)o(alPu)o(rp)q(o)o(se/NVList.h)37 1760 y fo(NameServ)o
(er)f fr(NameServ)o(er.h)37 1818 y fo(NameServ)o(erRef)f fr(Common/NameSe)o
(rv)o(er)o(Sta)o(r.h)37 1884 y fo(NameServ)o(erStar)g fr(Common/NameS)o(erv)o
(e)o(rSt)o(ar.)o(h)37 1950 y fo(NonLo)q(c)o(k)o(edFIF)o(OSc)o(heduler)f fr
(Sc)o(hedulers/FIF)o(OSc)n(hed)o(ule)o(r.h)37 2016 y fo(NullInputStream)g fr
(IODevices/NullStream)o(s.h)37 2082 y fo(NullOutputStream)g fr(IODevices/Null\
Stre)o(am)o(s.h)37 2148 y fo(NullPro)q(cessCon)o(tainer)j fr(Pro)q(cessCon)o
(taine)o(r.h)37 2206 y fo(Ob)s(ject)g fr(Common/Ob)r(jec)o(t.h)37 2272 y fo
(Ob)s(jectPro)o(xy)f fr(Ob)r(jectPro)o(xy)m(.h)37 2338 y fo(Ob)s(jectPro)o
(xyKey)g fr(Ob)r(jectPro)o(xy)m(.h)37 2404 y fo(Ob)s(jectPro)o(xyManager)f fr
(Ob)r(jectPro)o(xyManage)o(r.h)37 2470 y fo(Ob)s(jectPro)o(xyManagerRef)g fr
(Common/Ob)r(ject)o(Pro)o(x)o(yMana)o(ger)o(Sta)o(r.h)37 2537 y fo(Ob)s(jectP\
ro)o(xyManagerStar)f fr(Common/Ob)r(jectPro)n(xyMan)o(age)o(rSt)o(ar.)o(h)37
2602 y fo(OutputStream)f fr(Common/OutputSt)o(rea)o(m.h)941 2760 y fn(157)g
eop bop 37 42 a fo(OutputStream)o(R)o(ef)20 b fr(Common/Outpu)o(tStr)o(eam)o
(St)o(ar.h)37 106 y fo(OutputStream)o(S)o(tar)f fr(Common/OutputS)o(trea)o
(mS)o(tar)o(.h)37 172 y fo(PCBusyW)l(ait)k fr(Mac)o(hineDep)q(ende)o(n)o(t/)o
(PC/PCLo)q(c)o(k.h)37 237 y fo(PCConsole)g fr(Mac)o(hineDep)q(end)o(en)o(t/)o
(PC/PCConsole.)o(h)37 302 y fo(PCConsoleInputStream)c fr(Libraries/Syst)o(em)
o(In)o(te)o(rfa)o(ce/)o(PCConsoleI)o(npu)o(tS)o(trea)o(m.)o(h)37 368 y fo(PCF)
l(reeRunningTimer)h fr(Mac)o(hineDep)q(en)o(den)n(t/PC/PCF)m(reeR)o(unn)o(ing)
o(Timer)o(.h)37 433 y fo(PCKernel)j fr(Mac)o(hineDep)q(end)o(en)o(t)o(/PC/PCK\
ernel.)o(h)37 498 y fo(PCLo)q(c)o(k)g fr(Mac)o(hineDep)q(ende)o(n)o(t/)o(PC/P\
CLo)q(c)o(k.h)37 564 y fo(PCReferenceCoun)o(t)d fr(Mac)o(hineDep)q(ende)o(n)o
(t/)o(PC/PCReferen)o(ce)o(Coun)o(t.)o(h)37 629 y fo(PCTimerManager)i fr(Mac)o
(hineDep)q(end)o(en)n(t/PC/PCTimerMan)o(ag)o(er.h)37 694 y fo(PCTimesliceTime\
r)g fr(Mac)o(hineDep)q(end)o(en)n(t/PC/PCTimesl)o(iceTim)o(er.h)37 760 y fo
(PCi386CPU)h fr(Mac)o(hineDep)q(end)o(en)o(t)o(/PC/PCi386)o(CPU.h)37 825 y fo
(P)o(agedMemoryOb)s(je)o(ctCac)o(he)d fr(Memory/P)o(agedMem)o(or)o(yOb)r(je)o
(ctCac)o(h)o(e.h)37 890 y fo(P)o(artition)h fr(Libraries/Gener)o(alPur)o(p)q
(o)o(se/P)o(a)o(rtit)o(ion)o(.h)37 955 y fo(P)o(erCPUIdlePro)q(cess)g fr(Pro)
q(cess.h)37 1012 y fo(P)o(erio)q(dicTimer)g fr(P)o(erio)q(dicTimer.h)37 1069 y
fo(P)o(ersisten)o(tMem)o(oryOb)r(ject)e fr(Mac)o(hineDep)q(ende)o(n)o(t/)o
(PC/P)o(ersis)o(ten)n(tMemo)o(ryOb)r(j)o(ect.)o(h)37 1135 y fo(P)o(ersisten)o
(tMem)o(oryOb)r(ject)o(Ref)g fr(Common/P)o(ersisten)n(tMem)o(oryOb)r(j)o(ect)
o(Sta)o(r.h)37 1200 y fo(P)o(ersisten)o(tMem)o(oryOb)r(ject)o(Star)g fr(Commo\
n/P)o(ersiste)o(n)o(tMem)o(ory)o(Ob)r(jec)o(tSt)o(ar.h)37 1265 y fo(Ph)o(ysic\
alMemoryChain)j fr(Memory/Ph)o(ysic)o(alMem)o(ory)o(Chain)o(.h)37 1331 y fo
(Ph)o(ysicalMemoryChainCon)o(tiguousBlo)q(c)o(kIterat)o(or)e fr(Memory/Ph)o
(ysic)o(alMem)o(ory)o(Chain)o(.h)37 1396 y fo(Ph)o(ysicalMemoryChainIterator)
g fr(Memory/Ph)o(ysical)o(Memo)o(ryCha)o(in.h)37 1461 y fo(Ph)o(ysicalMemoryM\
anager)h fr(Memory/Ph)o(ysicalMem)o(or)o(yMan)o(age)o(r.h)37 1527 y fo(Ph)o
(ysicalMemoryOb)s(ject)f fr(Memory/Ph)o(ysica)o(lMemo)o(ryOb)r(j)o(ect)o(.h)
37 1592 y fo(Ph)o(ysicalMemoryRange)h fr(Memory/Ph)o(ysica)o(lMemo)o(ryRa)o
(ng)o(e.h)37 1657 y fo(Ph)o(ysicalMemoryRangeRef)f fr(Common/Ph)o(ysica)o(lMe\
mo)o(ryRa)o(ng)o(eSt)o(ar.h)37 1723 y fo(Ph)o(ysicalMemoryRangeStar)g fr(Comm\
on/Ph)o(ysic)o(alMem)o(ory)o(Ran)o(geS)o(tar.)o(h)37 1788 y fo(Ph)o(ysicallyA\
ddressableUnit)h fr(Memory/Ph)o(ysic)o(ally)o(Addre)o(ssab)o(leUnit)o(.h)37
1853 y fo(Ph)o(ysicallyResiden)o(tMemoryOb)r(ject)e fr(Memory/Dumm)o(y)o(Memo)
o(ryOb)r(je)o(ct.h)37 1918 y fo(PreemptableSyst)o(em)o(Pr)o(o)q(cess)h fr(Pro)
q(cess.h)37 1984 y fo(Premapp)q(edMem)o(oryOb)r(ject)o(Cac)o(he)g fr(Memory/P\
remap)o(p)q(ed)o(Memo)o(ryOb)r(j)o(ect)o(Cac)o(he.)o(h)37 2049 y fo(Pro)q(ces\
s)i fr(Pro)q(cess.h)37 2106 y fo(Pro)q(cessCon)o(tainer)f fr(Pro)q(cessCon)o
(tainer.)o(h)37 2162 y fo(Pro)q(cessInputStream)d fr(IODevices/Pro)q(cessIn)o
(put)o(Str)o(eam)o(.h)37 2227 y fo(Pro)q(cessOutputSt)o(ream)h fr(IODevices/P\
ro)q(ce)o(ssOutpu)o(tSt)o(rea)o(m.h)37 2292 y fo(Pro)q(cessRef)j fr(Common/Pr\
o)q(ce)o(ssSt)o(ar.h)37 2357 y fo(Pro)q(cessStar)f fr(Common/Pro)q(cessS)o
(tar.)o(h)37 2422 y fo(Pro)q(cessorCon)o(text)g fr(Pro)q(cessorCon)o(tex)o
(t.h)37 2479 y fo(Pro)o(videdV)l(ersionInstaller)f fr(Common/V)m(ersionI)o
(nsta)o(lle)o(r.h)37 2545 y fo(Pro)o(xiableOb)s(ject)h fr(Common/Pro)o(xi)o
(abl)o(eOb)r(jec)o(t.h)37 2610 y fo(Pro)o(xiableOb)s(jectRef)f fr(Common/Pro)
o(xia)o(ble)o(Ob)r(jec)o(tSta)o(r.h)941 2760 y fn(158)g eop bop 37 42 a fo
(Pro)o(xiableOb)s(jectStar)20 b fr(Common/Pro)o(x)o(iabl)o(eOb)r(je)o(ctS)o
(tar.)o(h)37 108 y fo(Pro)o(xyReturnFlags)h fr(Ob)r(jectPro)o(xy)m(.h)37 174 y
fo(Pro)o(xyT)l(able)i fr(Common/Pro)o(x)o(yT)m(able)o(.h)37 240 y fo(Pro)o
(xyT)l(ableCop)o(y)f fr(Pro)o(xyT)m(ableCop)o(y)m(.h)37 305 y fo(Pro)o(xyT)l
(ableCop)o(yRef)g fr(Common/Pro)o(x)o(yT)m(able)o(Cop)o(yS)o(tar)o(.h)37 372 y
fo(Pro)o(xyT)l(ableCop)o(yStar)f fr(Common/Pro)o(xyT)m(ab)o(leCop)o(y)o(Sta)o
(r.h)37 438 y fo(Pro)o(xyT)l(ableInstaller)h fr(Common/Pro)o(xy)o(T)m(able.)o
(h)37 503 y fo(REFERENCE)s 15 2 v 17 w(COUNT)h fr(Libraries/Syst)o(emI)o(n)o
(te)o(rfa)o(ce/)o(REFERENCE)r 11 2 v 9 w(COUNT.h)37 570 y fo(RRSc)o(heduler)d
fr(Sc)o(hedulers/RRSc)n(hed)o(ule)o(r.h)37 636 y fo(RRSc)o(hedulerUSS)f fr
(Sc)o(hedulers/S)o(c)o(he)o(dul)o(erUSS.)o(h)37 702 y fo(RandomP)o(agedMem)o
(or)o(yOb)s(j)o(ectCac)o(he)h fr(Memory/Rando)o(mP)o(a)o(ged)o(Memo)o(ryOb)r
(j)o(ect)o(Cac)o(he.)o(h)37 768 y fo(Ra)o(wCharacterQueue)h fr(CharacterQueue\
.h)37 834 y fo(ReadFileStream)g fr(Libraries/File/)o(Read)o(File)o(Stre)o(am)
o(.h)37 900 y fo(ReadFileStreamRef)f fr(Common/ReadFi)o(leSt)o(rea)o(mS)o(tar)
o(.h)37 966 y fo(ReadFileStreamStar)g fr(Common/Read)o(FileS)o(tre)o(am)o(Sta)
o(r.h)37 1032 y fo(RequiredV)l(ersionInstaller)g fr(Common/V)m(ersionIn)o(sta\
l)o(ler.)o(h)37 1098 y fo(Ro)q(otMemoryOb)s(ject)g fr(Memory/Dumm)n(yMem)o
(or)o(yOb)r(jec)o(t.h)37 1164 y fo(Ro)q(otMemoryOb)s(jectCac)o(he)g fr(Memory\
/Ro)q(otMem)o(or)o(yOb)r(je)o(ctCac)o(h)o(e.h)37 1230 y fo(SLink)i fr(Librari\
es/Gener)o(alPur)o(p)q(o)o(se/Lin)o(k.h)37 1297 y fo(SLinkIterator)f fr(Libra\
ries/Gene)o(ral)o(Purpose/)o(Link)o(Ite)o(rato)o(r.h)37 1363 y fo(SR)l(TSc)o
(hedulerInfo)f fr(Sc)o(hedulers)o(/Sc)n(hed)o(ule)o(rUSS.h)37 1429 y fo(SR)l
(TSc)o(hedulerUSS)f fr(Sc)o(hedulers/S)o(c)o(he)o(dul)o(erUSS)o(.h)37 1495 y
fo(Sc)o(hedF)l(eedbac)o(kQueues)g fr(Sc)o(hedulers/S)o(c)o(he)o(dList)o(.h)37
1561 y fo(Sc)o(hedList)i fr(Sc)o(hedulers/S)o(c)o(h)o(edLis)o(t.h)37 1627 y fo
(Sc)o(hedPriorit)o(yList)f fr(Sc)o(hedulers/)o(Sc)o(h)o(ed)o(List.h)37 1693 y
fo(Sc)o(hedQueue)g fr(Sc)o(hedulers/S)o(c)o(he)o(dList)o(.h)37 1759 y fo(Sc)o
(hedSearc)o(hList)g fr(Sc)o(hedulers/)o(Sc)n(hed)o(List.h)37 1825 y fo(Sc)o
(hedStac)o(k)h fr(Sc)o(hedulers/S)o(c)o(h)o(edLis)o(t.h)37 1892 y fo(Sc)o(hed\
ulerInfo)f fr(Pro)q(cess.h)37 1949 y fo(Sc)o(hedulerUSS)g fr(Sc)o(hedulers/)o
(Sc)o(h)o(ed)o(uler)o(USS.h)37 2015 y fo(Segmen)o(tDescr)o(iptor)f fr(Pro)q
(cessorDep)q(en)o(den)n(t/i3)o(86)o(/Se)o(gm)o(en)o(t)o(Descr)o(ipto)o(r.h)37
2082 y fo(Semaphore)h fr(Semaphore.)o(h)37 2147 y fo(SemaphoreRef)f fr(Common\
/Sema)o(pho)o(reS)o(tar)o(.h)37 2214 y fo(SemaphoreRegu)o(latedFIF)o(OS)o(c)o
(h)o(edu)o(ler)h fr(Sc)o(hedulers/S)o(em)o(ap)o(hor)o(eReg)o(ula)o(ted)o(FIF)
o(OSc)o(he)o(du)o(ler.h)37 2280 y fo(SemaphoreSt)o(ar)g fr(Common/Sema)o(ph)o
(ore)o(Sta)o(r.h)37 2346 y fo(SerialLine)i fr(IODevices/SerialLin)o(e.h)37
2412 y fo(SharedAllo)q(cator)g fr(Libraries/Syst)o(em)o(In)o(t)o(erfa)o(ce/)o
(Allo)q(ca)o(tor)o(.h)37 2478 y fo(SinglePro)q(cessHolder)f fr(SinglePro)q
(cessHolde)o(r.h)37 2544 y fo(StaticAllo)q(cator)i fr(Libraries/Syst)o(em)o
(In)o(te)o(rfa)o(ce/)o(Allo)q(ca)o(tor)o(.h)37 2610 y fo(Statistics)f fr(Stat\
istics.h)941 2760 y fn(159)g eop bop 37 42 a fo(Statistics)22 b fr(Statistics\
.h)37 98 y fo(Store)g fr(Memory/Stor)o(e.h)37 163 y fo(StoredOb)s(ject)e fr
(Libraries/File)o(/St)o(ore)o(dOb)r(jec)o(t.h)37 228 y fo(StoredOb)s(jectRe)o
(f)g fr(Common/Stor)o(edOb)r(j)o(ect)o(Sta)o(r.h)37 292 y fo(StoredOb)s(jectS)
o(tar)f fr(Common/Stored)o(Ob)r(jec)o(tSt)o(ar.h)37 357 y fo(Stra)o(yExceptio\
n)i fr(Pro)q(cessorDep)q(end)o(en)o(t/)o(i38)o(6/i)o(386)o(Exce)o(pti)o(ons.)
o(h)37 422 y fo(StringInputSt)o(ream)d fr(Libraries/Gener)o(alPur)o(p)q(os)o
(e/S)o(trin)o(gIn)o(pu)o(tSt)o(ream)o(.h)37 487 y fo(StringOutput)o(Str)o(eam)
h fr(Libraries/Gen)o(era)o(lPurpose)o(/St)o(ring)o(Outpu)o(tS)o(trea)o(m.)o
(h)37 552 y fo(StupidAllo)q(cator)i fr(StupidAllo)q(cator)o(.h)37 617 y fo
(SystemIn)o(terf)o(ace)f fr(SystemIn)o(terfa)o(ce.)o(h)37 681 y fo(SystemIn)o
(terf)o(aceRef)g fr(Common/Syst)o(em)o(In)o(t)o(erfa)o(ceS)o(tar)o(.h)37 746 y
fo(SystemIn)o(terf)o(aceStar)f fr(Common/System)o(In)n(ter)o(face)o(Sta)o(r.h)
37 811 y fo(SystemPro)q(cess)h fr(Pro)q(cess.h)37 876 y fo(SystemSc)o(hedu)o
(ler)g fr(Sc)o(hedulers/)o(Sy)o(stem)o(Sc)n(hed)o(ule)o(r.h)37 941 y fo(T)l
(askStateSegmen)o(t)f fr(Pro)q(cessorDep)q(end)o(en)n(t/i3)o(86/)o(T)m(askSt)
o(ate)o(Seg)o(me)o(n)o(t.)o(h)37 1005 y fo(T)l(erminalInputStr)o(eam)r 15 2 v
11 w(read)s 15 2 v 14 w(Message)j fr(Libraries/Syste)o(mIn)n(ter)o(fac)o(e/T)
m(erm)o(ina)o(lSt)o(rea)o(mMessa)o(ge.)o(h)37 1070 y fo(T)l(erminalInputStr)o
(eam)r 15 2 v 11 w(read)s 15 2 v 14 w(replyMessage)g fr(Libraries/Syst)o(em)o
(In)o(t)o(erfa)o(ce/)o(T)m(ermin)o(alS)o(tre)o(am)o(Messag)o(e.h)37 1135 y fo
(T)l(erminalOutputS)o(tre)o(am)r 15 2 v 12 w(write)s 15 2 v 14 w(Message)g fr
(Libraries/Syste)o(mI)o(n)o(ter)o(fac)o(e/T)m(erm)o(in)o(alSt)o(rea)o(mMessa)
o(ge.)o(h)37 1200 y fo(TimeSliceException)g fr(TimeSliceExcep)o(tion)o(.h)37
1265 y fo(TimeoutTimer)e fr(TimeoutTimer.h)37 1321 y fo(TimeoutTimerRef)f fr
(Common/TimeoutTim)o(erS)o(tar)o(.h)37 1386 y fo(TimeoutTimerSt)o(ar)h fr(Com\
mon/Timeou)o(tTimer)o(Sta)o(r.h)37 1451 y fo(Timer)i fr(Timer.h)37 1508 y fo
(TimerManager)g fr(TimerManager.h)37 1573 y fo(TimerManagerException)f fr(Tim\
erManager.h)37 1637 y fo(TimerRef)g fr(Common/TimerSta)o(r.h)37 1702 y fo(Tim\
erStar)g fr(Common/TimerSt)o(ar.)o(h)37 1767 y fo(TimingIn)o(terface)f fr(Tim\
ingIn)o(terface)o(.h)37 1832 y fo(TimingIn)o(terfaceRef)g fr(Common/Timing)o
(In)o(t)o(erfa)o(ceS)o(ta)o(r.h)37 1897 y fo(TimingIn)o(terfaceStar)f fr(Comm\
on/TimingIn)n(ter)o(face)o(Sta)o(r.h)37 1962 y fo(Tw)o(oLev)o(elP)o(ageT)l
(able)j fr(Tw)o(oLev)o(elP)o(ageT)m(able.h)37 2026 y fo(UNIXSc)o(hedulerInfo)
e fr(Sc)o(hedulers/S)o(c)o(he)o(dul)o(erUSS)o(.h)37 2091 y fo(UNIXSc)o(hedule\
rUSS)g fr(Sc)o(hedulers/S)o(c)o(h)o(edu)o(lerUSS)o(.h)37 2156 y fo(USSSc)o
(hedulerInf)o(o)g fr(Sc)o(hedulers/)o(Sc)o(h)o(edu)o(ler)o(USS.h)37 2221 y fo
(UserClass)j fr(Libraries/Syst)o(emI)o(n)o(te)o(rfa)o(ce/)o(UserClass.h)37
2286 y fo(UserPro)o(xyStac)o(k)e fr(Pro)q(cessorDep)q(en)o(den)n(t/i)o(386)o
(/i3)o(86Con)n(text)o(.h)37 2350 y fo(UserPro)o(xyState)f fr(Pro)q(cessorDep)
q(end)o(en)o(t)o(/i3)o(86/)o(i38)o(6Con)o(te)o(xt.)o(h)37 2415 y fo(VMSSc)o
(hedulerInfo)g fr(Sc)o(hedulers/)o(Sc)o(h)o(edu)o(lerUSS)o(.h)37 2480 y fo
(VMSSc)o(hedulerUSS)g fr(Sc)o(hedulers/)o(Sc)n(hed)o(ule)o(rUSS.h)37 2545 y fo
(V)l(ersionInstaller)i fr(Common/V)m(ersion)o(Inst)o(alle)o(r.h)37 2610 y fo
(V)l(ersionOb)s(ject)f fr(V)m(ersionOb)r(ject.h)941 2760 y fn(160)g eop bop 37
42 a fo(V)l(ersionOb)s(jectRef)20 b fr(Common/V)m(ersionOb)r(j)o(ect)o(Sta)o
(r.h)37 108 y fo(V)l(ersionOb)s(jectStar)g fr(Common/V)m(ersion)o(Ob)r(jec)o
(tSt)o(ar.h)37 174 y fo(VirtualMemoryRange)h fr(Memory/VirtualMem)o(or)o(yRan)
o(ge.)o(h)37 240 y fo(VirtualPC)i fr(Mac)o(hineDep)q(end)o(en)o(t)o(/PC/Virtu)
o(alPC.h)37 306 y fo(VirtualPCArgs)f fr(Common/VirtualPCArgs.h)37 372 y fo
(VirtualPCIn)o(terface)f fr(Mac)o(hineDep)q(ende)o(n)o(t/)o(PC/Virtua)o(lPCIn)
o(te)o(rfac)o(e.h)37 439 y fo(VirtualPCIn)o(terfaceRef)f fr(Common/VirtualPCI\
n)o(te)o(rfa)o(ceS)o(tar.)o(h)37 505 y fo(VirtualPCIn)o(terfaceStar)g fr(Comm\
on/VirtualPCIn)o(t)o(erf)o(ace)o(Sta)o(r.h)37 571 y fo(VirtualPCRegisterQueue)
g fr(Mac)o(hineDep)q(ende)o(n)o(t/)o(PC/Virtua)o(lPCRegist)o(erQueu)o(e.h)37
637 y fo(VirtualPCRegisterQueueRef)g fr(Common/Virtua)o(lPCRegist)o(erQueu)o
(eS)o(tar.)o(h)37 703 y fo(VirtualPCRegisterQueueStar)f fr(Common/VirtualPCRe\
gi)o(ster)o(Queue)o(Sta)o(r.h)37 770 y fo(VirtualPCStac)o(k)j fr(Mac)o(hineDe\
p)q(ende)o(n)o(t/)o(PC/Virtua)o(lPCStac)n(k.h)37 836 y fo(VirtualPCT)l(ask)h
fr(Mac)o(hineDep)q(ende)o(n)o(t/)o(PC/Virtual)o(PCT)m(ask.h)37 902 y fo(Virtu\
alPCV)l(ectors)f fr(Mac)o(hineDep)q(end)o(en)o(t)o(/PC/Virtua)o(lPCV)m(ector)
o(s.h)37 968 y fo(W)l(riteFileStream)f fr(Libraries/File/W)m(ri)o(teFil)o(eSt)
o(ream)o(.h)37 1034 y fo(W)l(riteFileStreamRef)f fr(Common/W)m(riteFileS)o
(tre)o(am)o(Sta)o(r.h)37 1101 y fo(W)l(riteFileStreamStar)g fr(Common/W)m(rit\
eFile)o(Str)o(eam)o(St)o(ar.h)40 1167 y 15 2 v 15 w fo(GPLIB)s 15 2 v 13 w
(DataSink)s 15 2 v 36 w fr(Libraries/Gen)o(era)o(lPurpose)o(/GPI)o(nclu)o(de)
o(.h)40 1233 y 15 2 v 15 w fo(statistics)i fr(Statistics.h)37 1291 y fo(asAdd\
ress)g fr(Common/F)m(orm)o(atAssist)o(s.h)37 1357 y fo(asBits)h fr(Common/F)m
(orma)o(tAssists.)o(h)37 1423 y fo(asHex)h fr(Common/F)m(orm)o(atAssist)o(s.h)
37 1489 y fo(asOctal)f fr(Common/F)m(ormat)o(Assists.h)37 1555 y fo(asP)l(A)o
(U)f fr(Memory/Ph)o(ysicall)o(yAddr)o(essab)o(leUni)o(t.h)37 1621 y fo(i386Ap\
plicationCon)o(text)f fr(Pro)q(cessorDep)q(end)o(en)n(t/i3)o(86/)o(i38)o(6Con)
o(t)o(ext)o(.h)37 1687 y fo(i386CPU)i fr(Pro)q(cessorDep)q(en)o(den)n(t/i)o
(386)o(/i3)o(86CPU.h)37 1753 y fo(i386GeneralProtectionException)c fr(Pro)q
(cessorDep)q(ende)o(n)o(t/)o(i38)o(6/i)o(386)o(Exce)o(pti)o(ons.)o(h)37 1820 y
fo(i386GenericCon)o(text)i fr(Pro)q(cessorDep)q(en)o(den)n(t/i)o(386)o(/i3)o
(86Con)n(tex)o(t.h)37 1886 y fo(i386MMU)i fr(Pro)q(cessorDep)q(ende)o(n)o(t/)
o(i38)o(6/i)o(386)o(MMU.h)37 1952 y fo(i386P)o(ageF)l(aultException)e fr(Pro)
q(cessorDep)q(end)o(en)o(t)o(/i38)o(6/)o(i386)o(Exc)o(ept)o(ions)o(.h)37 2018
y fo(i386P)o(ageT)l(ableEn)o(try)g fr(Pro)q(cessorDep)q(end)o(en)o(t/)o(i38)o
(6/i)o(386)o(P)o(age)o(T)m(ableE)o(n)o(try)l(.h)37 2084 y fo(i386Ph)o(ysicalM\
emoryOb)s(ject)f fr(Pro)q(cessorDep)q(en)o(den)n(t/i)o(386)o(/i3)o(86Ph)n(ysi\
c)o(alMem)o(ory)o(Ob)r(jec)o(t.h)37 2151 y fo(i386P)o(oin)o(terT)l(ableEn)o
(try)g fr(Pro)q(cessorDep)q(en)o(den)n(t/i)o(386)o(/i3)o(86P)o(a)o(geT)m(ab)o
(leEn)o(t)o(ry)m(.h)37 2217 y fo(i386SourceOfZerosMemor)o(yOb)s(j)o(ect)g fr
(Pro)q(cessorDep)q(e)o(nde)o(n)o(t/)o(i38)o(6/i)o(386)o(Sou)o(rce)o(OfZero)o
(sMemo)o(ryOb)r(j)o(ect)o(.h)37 2283 y fo(i386SystemCon)o(text)g fr(Pro)q(ces\
sorDep)q(e)o(nde)o(n)o(t/)o(i38)o(6/i3)o(86)o(Con)o(tex)o(t.h)37 2349 y fo
(i386Unin)o(terrupt)o(ableSyst)o(em)o(Con)o(t)o(ext)g fr(Pro)q(cessorDep)q
(e)o(nde)o(n)o(t/)o(i38)o(6/i)o(386)o(Con)o(tex)o(t.h)37 2415 y fo(stac)o(kF)
l(rame)h fr(Pro)q(cessorDep)q(ende)o(n)o(t/)o(i38)o(6/i)o(386)o(Con)o(te)o
(xt.h)941 2760 y fn(161)g eop bop 37 405 a fc(APPENDIX)33 b(D)37 675 y fb(Fil\
e)40 b(Index)37 897 y fn(All)17 b(w)o(ords)f(prin)o(ted)h(in)f(b)q(old)h(fon)
o(t)f(are)h(\014lenames.)24 b(The)17 b(class)f(names)g(follo)o(wing)f(the)i
(\014lename)f(indicate)37 954 y(the)g(classes)e(that)h(are)g(de\014ned)h(in)f
(that)g(\014le.)37 1024 y fo(Allo)q(cator.h)23 b fr(Allo)q(cator)37 1082 y fo
(Aw)o(aitedIn)o(terruptException)o(.h)d fr(Aw)o(aitedIn)o(terrupt)o(Exce)o
(pti)o(on)37 1148 y fo(CPU.h)j fr(CPU)37 1206 y fo(CPUCollection.h)g fr(CPUCo\
llection)37 1263 y fo(CPUSet.h)f fr(CPUSet)11 b(CPUSetIterator)37 1321 y fo
(CharacterQueue.h)21 b fr(Blo)q(c)o(kCharacterQue)o(ue)9 b(CharacterQueue)f
(LineBu\013eredEc)o(ho)o(ing)o(Chara)o(cte)o(rQueue)151 1357 y(Ra)o(wCharacte\
rQueue)37 1421 y fo(Class.h)24 b fr(Class)37 1481 y fo(Common/Bo)o(xSt)o(ar.h)
c fr(Bo)o(xRef)10 b(Bo)o(xStar)37 1552 y fo(Common/CharacterInp)o(ut)o(St)o
(ream)o(S)o(tar.h)19 b fr(CharacterInputS)o(tre)o(am)o(Ref)9 b(CharacterInp)o
(utS)o(tre)o(amS)o(tar)37 1622 y fo(Common/ClassConstruct)o(or.h)20 b fr(Clas\
sConstructor)37 1693 y fo(Common/ClassConstruct)o(orSt)o(ar.h)f fr(ClassConst\
ructorRef)9 b(ClassConstructorSta)o(r)37 1763 y fo(Common/ClassInstaller.h)20
b fr(ClassInstaller)37 1834 y fo(Common/ClassStar.h)g fr(ClassRef)11 b(ClassS\
tar)37 1904 y fo(Common/Constru)o(ctor)o(Descrip)o(tor)o(Star)o(.h)20 b fr
(ConstructorDescr)o(ipto)o(rRef)8 b(ConstructorDescri)o(pto)o(rSt)o(ar)37 1975
y fo(Common/Constru)o(ctor)o(Inst)o(aller.h)20 b fr(ConstructorInsta)o(ller)
37 2046 y fo(Common/DataSink.h)f fr(DataSink)37 2116 y fo(Common/DiskStar.h)g
fr(DiskRef)10 b(DiskStar)37 2187 y fo(Common/Dom)o(ainS)o(tar.h)19 b fr(Domai\
nRef)10 b(DomainStar)37 2257 y fo(Common/F)l(aultHandlerS)o(tar.h)19 b fr(F)m
(aultHandlerRef)9 b(F)m(aultHandlerSt)o(ar)37 2328 y fo(Common/FileStream)o
(S)o(tar.h)19 b fr(FileStreamRef)8 b(FileStreamStar)37 2398 y fo(Common/FileS\
ystem)o(In)n(ter)o(faceSt)o(ar.h)20 b fr(FileSystemIn)n(ter)o(fac)o(eRef)8 b
(FileSystemIn)o(te)o(rfa)o(ceS)o(tar)37 2469 y fo(Common/F)l(orm)o(atAssist)o
(s.h)20 b fr(Flush)10 b(asAddress)g(asBits)h(asHex)g(asOctal)37 2539 y fo(Com\
mon/F)l(reeRu)o(nnin)o(gTim)o(erS)o(tar.h)19 b fr(F)m(reeRunningTimerR)o(ef)9
b(F)m(reeRunningTim)o(erS)o(tar)37 2610 y fo(Common/Inpu)o(tS)o(tream)o(.h)19
b fr(InputStream)941 2760 y fn(162)g eop bop 37 42 a fo(Common/Inpu)o(tS)o
(tream)o(S)o(tar)o(.h)20 b fr(InputStream)o(Ref)8 b(InputStream)o(Sta)o(r)37
111 y fo(Common/Lo)q(calBo)o(xStar.h)19 b fr(Lo)q(calBo)o(xRef)10 b(Lo)q(calB\
o)o(xStar)37 181 y fo(Common/Memor)o(yOb)r(jectCac)o(heS)o(tar.h)19 b fr(Memo\
ryOb)r(jectCac)o(he)o(Ref)9 b(MemoryOb)r(jectCac)o(h)o(eSt)o(ar)37 251 y fo
(Common/Memor)o(yOb)r(jectCon)n(tainer)o(St)o(ar.h)20 b fr(MemoryOb)r(jectCon)
o(t)o(aine)o(rRef)8 b(MemoryOb)r(jectCon)o(tai)o(ner)o(Sta)o(r)37 321 y fo
(Common/Memor)o(yOb)r(jectD)o(ictionarySt)o(ar.h)19 b fr(MemoryOb)r(jectDicti\
o)o(nar)o(yRef)8 b(MemoryOb)r(jectDicti)o(ona)o(ryS)o(tar)37 391 y fo(Common/\
Memor)o(yOb)r(jectS)o(tar.h)19 b fr(MemoryOb)r(jectRef)9 b(MemoryOb)r(jectS)o
(tar)37 461 y fo(Common/Memor)o(yRangeS)o(tar.h)19 b fr(MemoryRangeRef)8 b
(MemoryRangeSt)o(ar)37 530 y fo(Common/Message.h)20 b fr(Message)37 600 y fo
(Common/MessageStar)o(.h)g fr(MessageRef)10 b(MessageStar)37 670 y fo(Common/\
NameS)o(erv)o(er)o(St)o(ar.h)20 b fr(NameServ)o(erRef)8 b(NameServ)o(erStar)
37 740 y fo(Common/Ob)s(j)o(ect.h)19 b fr(Ob)r(ject)37 810 y fo(Common/Ob)s
(j)o(ectPr)o(o)o(xyManagerS)o(tar.h)g fr(Ob)r(jectPro)o(xyManage)o(rRef)8 b
(Ob)r(jectPro)o(xyManage)o(rSt)o(ar)37 880 y fo(Common/Outp)o(ut)o(St)o(ream)
o(.h)19 b fr(OutputStream)37 950 y fo(Common/Outp)o(ut)o(St)o(ream)o(S)o(tar.\
h)g fr(OutputStreamRe)o(f)9 b(OutputStream)o(Sta)o(r)37 1019 y fo(Common/P)o
(ers)o(isten)n(tMem)o(o)o(ryOb)r(jectS)o(tar.h)19 b fr(P)o(ersisten)o(tMemory)
o(Ob)r(jec)o(tRef)8 b(P)o(ersisten)o(tMemoryOb)r(j)o(ect)o(Sta)o(r)37 1089 y
fo(Common/Ph)n(ysicalMemoryRange)o(Star)o(.h)20 b fr(Ph)o(ysicalMemory)o(Rang)
o(eRef)8 b(Ph)o(ysicalMemoryRa)o(ng)o(eSt)o(ar)37 1159 y fo(Common/Pro)q(cess\
S)o(tar.h)19 b fr(Pro)q(cessRef)10 b(Pro)q(cessStar)37 1229 y fo(Common/Pro)o
(xiableOb)r(j)o(ect.h)20 b fr(Pro)o(xiableOb)r(jec)o(t)37 1299 y fo(Common/Pr\
o)o(xiableOb)r(j)o(ectSt)o(ar.h)g fr(Pro)o(xiableOb)r(jec)o(tRef)8 b(Pro)o
(xiableOb)r(jectS)o(tar)37 1369 y fo(Common/Pro)o(xyT)l(able.h)19 b fr(Metho)
q(dT)m(ableEn)o(try)9 b(Pro)o(xyT)m(able)g(Pro)o(xyT)m(ableInstalle)o(r)37
1439 y fo(Common/Pro)o(xyT)l(ableCop)o(yS)o(tar.h)19 b fr(Pro)o(xyT)m(ableCop)
o(yRef)9 b(Pro)o(xyT)m(ableCop)o(ySt)o(ar)37 1508 y fo(Common/ReadFileStr)o
(eam)o(St)o(ar.h)20 b fr(ReadFileStrea)o(mRe)o(f)9 b(ReadFileStrea)o(mS)o(tar)
37 1578 y fo(Common/Sem)o(aph)o(oreS)o(tar)o(.h)20 b fr(SemaphoreRe)o(f)9 b
(Semaphore)o(Sta)o(r)37 1648 y fo(Common/Stor)o(edOb)r(j)o(ectS)o(tar.h)19 b
fr(StoredOb)r(jectRef)8 b(StoredOb)r(jectSta)o(r)37 1718 y fo(Common/System)n
(In)o(t)o(erf)o(aceStar.h)19 b fr(SystemIn)o(terf)o(ace)o(Ref)9 b(SystemIn)o
(te)o(rfa)o(ceS)o(tar)37 1788 y fo(Common/Timeou)o(tTim)o(erS)o(tar)o(.h)20 b
fr(TimeoutTimerRef)9 b(TimeoutTimerSt)o(ar)37 1858 y fo(Common/Timer)o(Star)o
(.h)20 b fr(TimerRef)10 b(TimerStar)37 1928 y fo(Common/TimingIn)n(t)o(erface\
S)o(tar.h)19 b fr(TimingIn)o(terface)o(Ref)9 b(TimingIn)o(terfa)o(ceS)o(ta)o
(r)37 1997 y fo(Common/V)l(ersionIn)o(staller.h)20 b fr(Pro)o(videdV)m(ersion)
o(Ins)o(tall)o(er)9 b(RequiredV)m(ersion)o(In)o(stall)o(er)g(V)m(ersionInstal\
le)o(r)37 2067 y fo(Common/V)l(ersionOb)r(j)o(ectSt)o(ar.h)20 b fr(V)m(ersion\
Ob)r(jectRef)8 b(V)m(ersionOb)r(jectStar)37 2137 y fo(Common/VirtualPCArgs.h)
19 b fr(VirtualPCArgs)37 2207 y fo(Common/VirtualPCIn)o(t)o(erf)o(aceStar.h)g
fr(VirtualPCIn)o(terfaceRe)o(f)9 b(VirtualPCIn)o(terface)o(Sta)o(r)37 2277 y
fo(Common/VirtualPCRegiste)o(rQu)o(eueS)o(tar.h)19 b fr(VirtualPCRegisterQueu\
eRe)o(f)9 b(VirtualPCRegisterQueu)o(eSta)o(r)37 2347 y fo(Common/W)l(riteFile\
Stre)o(am)o(Star)o(.h)20 b fr(W)m(riteFileStream)o(Ref)8 b(W)m(riteFileStream\
S)o(tar)37 2414 y fo(ConstructorDescriptor)o(.h)20 b fr(ConstructorDescr)o
(ipt)o(or)37 2480 y fo(Exception.h)i fr(Exception)37 2545 y fo(F)l(reeRunning\
Timer.h)d fr(F)m(reeRunningTimer)37 2610 y fo(Gate.h)j fr(Gate)941 2760 y fn
(163)g eop bop 37 42 a fo(IODevices/CharacterInputStre)o(am)o(.h)20 b fr(Char\
acterInpu)o(tSt)o(ream)37 111 y fo(IODevices/MultiplexedOutputS)o(tream)o(.h)
f fr(Iden)o(tifyingMul)o(tip)o(lexe)o(dOutp)o(utS)o(tre)o(am)8 b(MultiplexedO\
utpu)o(tSt)o(rea)o(m)37 181 y fo(IODevices/NullStreams.h)21 b fr(NullInputStr\
e)o(am)8 b(NullOutputStream)37 251 y fo(IODevices/Pro)q(cessInputStr)o(eam)o
(.h)20 b fr(Pro)q(cessInputS)o(tre)o(am)37 320 y fo(IODevices/Pro)q(cessOutpu\
tSt)o(ream)o(.h)f fr(Pro)q(cessOutputStr)o(eam)37 390 y fo(IODevices/SerialLi\
ne.h)j fr(SerialLine)37 458 y fo(Kernel.h)h fr(Kernel)37 517 y fo(Libraries/D\
ispatc)o(her/App)o(licationDispat)o(c)o(her)o(.h)d fr(ApplicationDisp)o(atc)o
(h)o(er)37 587 y fo(Libraries/File/DOSFile.h)i fr(DOSFile)37 656 y fo(Librari\
es/File/DOSFileSystemIn)n(ter)o(face.h)e fr(DOSFileSystemIn)n(ter)o(fac)o(e)
37 726 y fo(Libraries/File/File.h)j fr(File)37 796 y fo(Libraries/File/FileSt\
ream.h)d fr(FileStream)37 865 y fo(Libraries/File/FileSystemIn)o(ter)o(face.h)
g fr(FileSystemIn)n(ter)o(face)37 935 y fo(Libraries/File/ReadFileStream.h)g
fr(ReadFileStrea)o(m)37 1005 y fo(Libraries/File/StoredOb)s(j)o(ect.h)f fr
(StoredOb)r(ject)37 1075 y fo(Libraries/File/W)l(riteFileStream.h)h fr(W)m
(riteFileStream)37 1144 y fo(Libraries/GeneralPurp)q(ose/)o(Asso)q(cT)l(able.\
h)g fr(Asso)q(cT)m(able)37 1214 y fo(Libraries/GeneralPurp)q(ose/)o(BitArra)n
(y)l(.h)g fr(BitArra)o(y)11 b(BitArra)o(yRange)37 1284 y fo(Libraries/General\
Purp)q(ose/)o(GPIn)o(clude.h)21 b 11 2 v 11 w fr(GPLIB)r 11 2 v 10 w(DataSink)
r 11 2 v 37 1354 a fo(Libraries/GeneralPurp)q(ose/)o(HashT)l(able.h)f fr(Hash\
T)m(able)37 1423 y fo(Libraries/GeneralPurp)q(ose/)o(Iterat)o(ingList)o(.h)g
fr(IteratingList)37 1493 y fo(Libraries/GeneralPurp)q(ose/)o(Ligh)n(tHashT)l
(able.h)g fr(Ligh)o(tHashT)m(able)37 1563 y fo(Libraries/GeneralPurp)q(ose/)o
(Ligh)n(tList)o(.h)g fr(Ligh)o(tList)10 b(Ligh)o(tListVirtualise)o(r)37 1632 y
fo(Libraries/GeneralPurp)q(ose/)o(Link.h)20 b fr(Link)10 b(LinkVirtualiser)f
(NVLink)j(NVLinkVirtualiser)d(SLink)37 1702 y fo(Libraries/GeneralPurp)q(ose/)
o(LinkIter)o(ator.h)19 b fr(LinkIterator)9 b(SLinkIterat)o(or)37 1772 y fo
(Libraries/GeneralPurp)q(ose/)o(List.h)19 b fr(Coun)o(tingList)10 b(Hin)o(tLi\
st)g(List)37 1842 y fo(Libraries/GeneralPurp)q(ose/)o(MultiHashT)l(able.h)20 b
fr(MultiHashT)m(able)37 1911 y fo(Libraries/GeneralPurp)q(ose/)o(NVList.h)g fr
(NVList)12 b(NVListVirtualiser)37 1981 y fo(Libraries/GeneralPurp)q(ose/)o
(P)o(art)o(ition.h)19 b fr(P)o(artition)37 2051 y fo(Libraries/GeneralPurp)q
(ose/)o(St)o(ringIn)o(pu)o(tSt)o(ream)o(.h)g fr(StringInputS)o(tre)o(am)37
2120 y fo(Libraries/GeneralPurp)q(ose/)o(St)o(ringOu)o(tp)o(ut)o(St)o(ream)o
(.h)g fr(StringOutputStr)o(eam)37 2190 y fo(Libraries/SystemIn)n(terf)o(ace/A\
llo)q(cator.h)h fr(Allo)q(cator)10 b(Buc)o(k)o(etAllo)q(cator)e(SharedAllo)q
(cato)o(r)h(StaticAllo)q(cato)o(r)37 2260 y fo(Libraries/SystemIn)n(terf)o
(ace/Bu\013e)o(redO)o(ut)o(put)o(St)o(ream)o(.h)19 b fr(Bu\013eredOutputS)o
(trea)o(m)37 2330 y fo(Libraries/SystemIn)n(terf)o(ace/LOCK.h)h fr(LOCK)37
2399 y fo(Libraries/SystemIn)n(terf)o(ace/PCConsoleInp)o(ut)o(St)o(ream)o(.h)
f fr(PCConsoleInputStrea)o(m)37 2469 y fo(Libraries/SystemIn)n(terf)o(ace/REF\
ERENCE)s 15 2 v 13 w(COUNT.h)24 b fr(REFERENCE)r 11 2 v 11 w(COUNT)37 2539 y
fo(Libraries/SystemIn)n(terf)o(ace/T)l(erm)o(inalSt)o(ream)o(Message.h)19 b fr
(ApplicationMessag)o(e)151 2576 y(T)m(erminalInputS)o(tre)o(am)q 11 2 v 8 w
(read)r 11 2 v 9 w(Message)11 b(T)m(erminalInputS)o(tre)o(am)q 11 2 v 8 w(rea\
d)r 11 2 v 9 w(replyMessage)151 2610 y(T)m(erminalOutputSt)o(rea)o(m)r 11 2 v
8 w(write)r 11 2 v 10 w(Message)941 2760 y fn(164)g eop bop 37 42 a fo(Librar\
ies/SystemIn)n(terf)o(ace/User)o(Class.h)20 b fr(UserClass)37 111 y fo(Mac)o
(hineDep)q(enden)o(t/P)o(C/Bo)o(x.h)g fr(Bo)o(x)11 b(Lo)q(calBo)o(x)37 181 y
fo(Mac)o(hineDep)q(enden)o(t/P)o(C/HeapMemor)o(yOb)s(j)o(ect.h)19 b fr(HeapMe\
moryOb)r(ject)37 251 y fo(Mac)o(hineDep)q(enden)o(t/P)o(C/PCConsole.h)h fr
(PCConsole)37 321 y fo(Mac)o(hineDep)q(enden)o(t/P)o(C/PCF)l(reeRun)o(ning)o
(Timer)o(.h)g fr(PCF)m(reeRunningTimer)37 391 y fo(Mac)o(hineDep)q(enden)o
(t/P)o(C/PCKernel.h)g fr(PCKernel)37 460 y fo(Mac)o(hineDep)q(enden)o(t/P)o
(C/PCLo)q(c)o(k.h)g fr(PCBusyW)m(ait)11 b(PCLo)q(c)o(k)37 530 y fo(Mac)o(hine\
Dep)q(enden)o(t/P)o(C/PCReferen)o(ceCoun)n(t.h)19 b fr(PCReferenceCoun)o(t)37
600 y fo(Mac)o(hineDep)q(enden)o(t/P)o(C/PCTimerManager)o(.h)h fr(PCTimerMana\
ger)37 670 y fo(Mac)o(hineDep)q(enden)o(t/P)o(C/PCTimesliceTimer)o(.h)g fr
(PCTimesliceTimer)37 740 y fo(Mac)o(hineDep)q(enden)o(t/P)o(C/PCi386CPU.h)g fr
(PCi386CPU)37 810 y fo(Mac)o(hineDep)q(enden)o(t/P)o(C/P)o(ersist)o(en)n(tMem)
o(or)o(yOb)s(j)o(ect.h)f fr(P)o(ersisten)o(tMemoryOb)r(j)o(ect)37 879 y fo
(Mac)o(hineDep)q(enden)o(t/P)o(C/VirtualPC.h)h fr(VirtualPC)37 949 y fo(Mac)o
(hineDep)q(enden)o(t/P)o(C/VirtualPCIn)o(t)o(erf)o(ace.h)g fr(VirtualPCIn)o
(terface)37 1019 y fo(Mac)o(hineDep)q(enden)o(t/P)o(C/VirtualPCRegister)o(Que\
u)o(e.h)f fr(VirtualPCRegisterQueue)37 1089 y fo(Mac)o(hineDep)q(enden)o(t/P)
o(C/VirtualPCStac)o(k.h)g fr(VirtualPCStac)o(k)37 1159 y fo(Mac)o(hineDep)q
(enden)o(t/P)o(C/VirtualPCT)l(ask.h)h fr(VirtualPCT)m(ask)37 1229 y fo(Mac)o
(hineDep)q(enden)o(t/P)o(C/VirtualPCV)l(ectors.h)f fr(VirtualPCV)m(ectors)37
1296 y fo(MadAllo)q(cator.h)k fr(MadAllo)q(cator)37 1356 y fo(Memory/AddressF\
lushQ)o(ueu)o(e.h)d fr(AddressFlushQueue)37 1425 y fo(Memory/AddressT)l(ransl\
ation.h)f fr(AddressT)m(ranslation)37 1495 y fo(Memory/AddressT)l(ranslator)o
(.h)h fr(AddressT)m(ranslator)37 1565 y fo(Memory/Domain.h)g fr(Domain)10 b
(DomainCleaner)37 1635 y fo(Memory/Dumm)m(yMemo)o(ryOb)r(ject.h)19 b fr(Dumm)
o(yMemoryOb)r(j)o(ect)8 b(Ph)o(ysicallyReside)o(n)o(tMem)o(or)o(yOb)r(jec)o
(t)151 1672 y(Ro)q(otMemoryOb)r(ject)37 1738 y fo(Memory/FIF)o(OP)o(agedMemo)
o(ryOb)r(jectCac)o(he.h)19 b fr(FIF)o(OP)o(agedMemoryOb)r(jec)o(tCac)o(he)37
1808 y fo(Memory/F)l(aultHandler.h)i fr(F)m(aultHandler)37 1878 y fo(Memory/M\
emoryOb)s(j)o(ect.h)f fr(MemoryOb)r(ject)37 1948 y fo(Memory/MemoryOb)s(j)o
(ectCac)o(he.h)g fr(MemoryOb)r(jectCac)o(h)o(e)37 2018 y fo(Memory/MemoryOb)s
(j)o(ectView.h)g fr(MemoryOb)r(jectView)37 2088 y fo(Memory/MemoryRange.h)g fr
(MemoryRange)37 2157 y fo(Memory/P)o(agedMemor)o(yOb)s(j)o(ectCac)o(he.h)f fr
(P)o(agedMemoryOb)r(jec)o(tCac)o(he)37 2227 y fo(Memory/Ph)o(ysicalMemoryChai\
n.h)h fr(Ph)o(ysicalMemoryCha)o(in)8 b(Ph)o(ysicalMemoryChai)o(nCon)o(ti)o
(guo)o(usBloc)o(k)o(Iter)o(ato)o(r)151 2265 y(Ph)o(ysicalMemoryCha)o(inI)o
(tera)o(tor)37 2331 y fo(Memory/Ph)o(ysicalMemoryManager.h)20 b fr(Ph)o(ysica\
lMemory)o(Mana)o(ger)37 2401 y fo(Memory/Ph)o(ysicalMemoryOb)s(j)o(ect.h)f fr
(Ph)o(ysicalMemoryOb)r(je)o(ct)37 2470 y fo(Memory/Ph)o(ysicalMemoryRange.h)g
fr(Ph)o(ysicalMemoryRa)o(nge)37 2540 y fo(Memory/Ph)o(ysicallyAddressableUnit\
.h)g fr(Ph)o(ysicallyAddressa)o(ble)o(Unit)9 b(asP)m(A)o(U)37 2610 y fo(Memor\
y/PremappedMem)o(oryOb)r(j)o(ectCac)o(he.h)19 b fr(Premapp)q(edMemo)o(ryOb)r
(je)o(ctCac)n(he)941 2760 y fn(165)g eop bop 37 42 a fo(Memory/RandomP)n(aged\
Mem)o(o)o(ryOb)r(jectCac)o(he.h)19 b fr(RandomP)o(aged)o(Memo)o(ryOb)r(je)o
(ctCac)o(h)o(e)37 112 y fo(Memory/Ro)q(otMemoryOb)r(ject)o(Cac)o(he.h)h fr
(Ro)q(otMemoryOb)r(jec)o(tCac)o(he)37 183 y fo(Memory/Store.h)g fr(Store)37
253 y fo(Memory/VirtualMemoryRange.h)f fr(VirtualMemoryRan)o(ge)37 321 y fo
(MemoryBlo)q(c)o(kAllo)q(cator.h)k fr(MemoryBlo)q(c)o(kAllocat)o(or)37 387 y
fo(NameServ)o(er.h)e fr(NameServ)o(er)37 445 y fo(Ob)s(jectPro)o(xy)l(.h)g fr
(Ob)r(jectPro)o(xy)9 b(Ob)r(jectPro)o(xyKey)g(Pro)o(xyReturnFla)o(gs)37 511 y
fo(Ob)s(jectPro)o(xyManager.h)20 b fr(Ob)r(jectPro)o(xyManage)o(r)37 577 y fo
(P)o(erio)q(dicTimer.h)h fr(P)o(erio)q(dicTimer)37 635 y fo(Pro)q(cess.h)h fr
(ApplicationPro)q(ce)o(ss)8 b(In)o(terruptPro)q(c)o(ess)g(P)o(erCPUIdlePro)q
(cess)h(Preemptable)o(Syst)o(em)o(Pro)q(c)o(ess)f(Pro)q(cess)i(Sc)o(hedulerI)
o(nfo)151 668 y(SystemPro)q(cess)37 733 y fo(Pro)q(cessCon)o(tainer.h)21 b fr
(NullPro)q(cessCon)o(taine)o(r)9 b(Pro)q(cessCon)o(tainer)37 791 y fo(Pro)q
(cessorCon)o(text.h)21 b fr(Pro)q(cessorCon)o(tex)o(t)37 851 y fo(Pro)q(cesso\
rDep)q(enden)o(t)o(/i386/S)o(egm)o(en)n(t)o(Descrip)o(tor.h)e fr(Segmen)o(tDe\
scr)o(ipt)o(or)37 921 y fo(Pro)q(cessorDep)q(enden)o(t)o(/i386/T)l(askSt)o
(ateS)o(egm)o(en)n(t.h)g fr(T)m(askStateSegme)o(n)o(t)37 992 y fo(Pro)q(cesso\
rDep)q(enden)o(t)o(/i386/i386CPU)o(.h)h fr(Co)q(deDataSegme)o(n)o(tDe)o(scri)
o(pto)o(r)9 b(GateDescripto)o(r)g(i386CPU)37 1063 y fo(Pro)q(cessorDep)q(ende\
n)o(t)o(/i386/i386Con)n(text)o(.h)20 b fr(InitialApplicat)o(ion)o(Con)o(te)o
(xtS)o(tac)n(kDesc)o(rip)o(tion)8 b(IretF)m(rame)h(LretF)m(rame)151 1100 y
(UserPro)o(xyStac)o(k)g(UserPro)o(xyState)f(i386Application)o(Con)o(te)o(xt)h
(i386Generi)o(cCon)o(te)o(xt)f(i386SystemCon)o(te)o(xt)151 1134 y(i386Unin)o
(terrup)o(tab)o(leS)o(yste)o(mCon)o(t)o(ext)g(stac)o(kF)m(rame)37 1200 y fo
(Pro)q(cessorDep)q(enden)o(t)o(/i386/i386Except)o(ions.h)19 b fr(Stra)o(yExce\
ptio)o(n)9 b(i386General)o(Prote)o(cti)o(onEx)o(cep)o(tio)o(n)151 1238 y(i386\
P)o(ageF)m(aultEx)o(cep)o(tio)o(n)37 1305 y fo(Pro)q(cessorDep)q(enden)o(t)o
(/i386/i386MMU.h)20 b fr(i386MMU)37 1375 y fo(Pro)q(cessorDep)q(enden)o(t)o
(/i386/i386P)n(ageT)l(ableEn)o(t)o(ry)l(.h)g fr(i386P)o(ageT)m(able)o(En)o
(try)8 b(i386P)o(oin)o(terT)m(able)o(En)o(tr)o(y)37 1446 y fo(Pro)q(cessorDep)
q(enden)o(t)o(/i386/i386P)o(h)n(ysicalMemoryOb)r(ject)o(.h)20 b fr(i386Ph)o
(ysicalMem)o(ory)o(Ob)r(jec)o(t)37 1516 y fo(Pro)q(cessorDep)q(enden)o(t)o
(/i386/i386S)o(our)o(ceOfZer)o(osMem)o(oryOb)r(j)o(ect.h)g fr(i386Source)o
(OfZero)o(sMemo)o(ryOb)r(j)o(ect)37 1585 y fo(Pro)o(xyT)l(ableCop)o(y)l(.h)i
fr(Metho)q(dT)m(ableEn)o(tryCop)n(y)9 b(Pro)o(xyT)m(ableCop)o(y)37 1653 y fo
(Sc)o(hedulers/FIF)o(OSc)o(h)o(edu)o(ler.h)20 b fr(FIF)o(OSc)o(heduler)9 b
(NonLo)q(c)o(k)o(edFIF)o(OSc)o(he)o(dul)o(er)37 1723 y fo(Sc)o(hedulers/RRSc)
o(h)o(edu)o(ler.h)20 b fr(RRSc)o(heduler)37 1794 y fo(Sc)o(hedulers/Sc)o(hed)
o(List.h)f fr(Sc)o(hedF)m(eedbac)n(kQueu)o(es)9 b(Sc)o(hedList)g(Sc)o(hedPrio\
rit)o(y)o(List)g(Sc)o(hedQueue)f(Sc)o(hedSearc)o(hLis)o(t)151 1832 y(Sc)o(hed\
Stac)o(k)37 1892 y fo(Sc)o(hedulers/Sc)o(hed)o(ulerU)o(SS)o(.h)20 b fr(Deadli\
neSc)o(h)o(edu)o(lerI)o(nfo)8 b(DeadlineSc)o(he)o(dul)o(erUSS)g(FIF)o(OSc)o
(hedulerUSS)151 1929 y(HRNSc)o(hedulerInfo)g(HRNSc)o(hedulerUSS)i(LIF)o(OSc)o
(hedulerUSS)e(MLFSc)o(hedulerUSS)h(RRSc)o(hedulerUSS)151 1957 y(SR)m(TSc)o
(hedulerInf)o(o)g(SR)m(TSc)o(hedulerUSS)f(Sc)o(hedulerUSS)h(UNIXSc)o(hedulerI\
nfo)f(UNIXSc)o(hedulerUSS)i(USSSc)o(heduler)o(Inf)o(o)151 1984 y(VMSSc)o(hedu\
lerInfo)e(VMSSc)o(hedulerUSS)37 2044 y fo(Sc)o(hedulers/Sem)o(aph)o(oreR)o
(egulated)o(FIF)o(OS)o(c)o(hed)o(uler.h)19 b fr(SemaphoreRe)o(gul)o(ate)o(dFI\
F)o(OSc)o(h)o(ed)o(ule)o(r)37 2115 y fo(Sc)o(hedulers/System)o(S)o(c)o(he)o
(du)o(ler.h)h fr(SystemSc)o(he)o(dul)o(er)37 2183 y fo(Semaphore.h)g fr(Binar\
ySemap)o(ho)o(re)9 b(GraciousSem)o(ap)o(hor)o(e)g(LazySemaph)o(ore)f(MultiVSe\
maphore)g(MutexSemapho)o(re)151 2218 y(Semaphore)37 2283 y fo(SinglePro)q(ces\
sHolder.h)21 b fr(Lo)q(c)o(k)o(edSinglePr)o(o)q(ce)o(ssHolde)o(r)9 b(SinglePr\
o)q(cess)o(Holder)37 2348 y fo(Statistics.h)22 b fr(Statistics)9 b(Statistics)
j 11 2 v 10 w(statistics)37 2406 y fo(StupidAllo)q(cator.h)21 b fr(StupidAllo)
q(cator)37 2472 y fo(SystemIn)o(terf)o(ace.h)f fr(SystemIn)o(terf)o(ace)37
2538 y fo(TimeSliceException.h)i fr(TimeSliceExcep)o(tio)o(n)37 2604 y fo(Tim\
eoutTimer.h)e fr(TimeoutTimer)941 2760 y fn(166)g eop bop 37 42 a fo(Timer.h)
22 b fr(Timer)37 99 y fo(TimerManager.h)f fr(TimerManager)10 b(TimerManagerEx\
c)o(ept)o(ion)37 165 y fo(TimingIn)o(terface.h)20 b fr(TimingIn)o(terface)37
231 y fo(Tw)o(oLev)o(elP)o(ageT)l(able.h)i fr(Tw)o(oLev)o(elP)o(ageT)m(able)
37 297 y fo(V)l(ersionOb)s(ject.h)e fr(V)m(ersionOb)r(ject)941 2760 y fn(167)
g eop bop 37 405 a fc(APPENDIX)33 b(E)37 675 y fb(V)-10 b(ariable)40 b(and)f
(F)-10 b(unction)40 b(Index)37 897 y fn(All)12 b(w)o(ords)f(in)g(b)q(old)h
(fon)o(t)f(are)h(names)f(of)g(global)g(v)m(ariables)g(or)g(functions.)19 b
(The)12 b(list)e(of)i(\014lenames)f(app)q(earing)37 954 y(after)k(a)g(v)m(ari\
able)f(or)h(function)g(name)f(sp)q(ecify)i(the)f(\014les)g(that)g(declare)g
(the)g(v)m(ariable)g(or)f(function.)37 1035 y fo(Assert\(\))21 b fr(Common/As\
sert.h)37 1106 y fo(Console\(\))h fr(Common/OutputS)o(tre)o(am)o(.h)37 1174 y
fo(ReadFileStreamClass)f fr(Libraries/File/Re)o(adFil)o(eSt)o(rea)o(m.h)37
1240 y fo(StandardFileSystem)o(In)o(t)o(erf)o(ace)f fr(Libraries/File/File)o
(Sys)o(tem)o(In)o(t)o(erfa)o(ce.)o(h)37 1306 y fo(StandardInput)f fr(Common/I\
nput)o(Str)o(eam)o(.h)37 1372 y fo(StandardOutpu)o(t)g fr(Common/OutputSt)o
(rea)o(m.h)37 1439 y fo(StandardNameServ)n(er)h fr(NameServ)o(er.h)37 1496 y
fo(StandardSystem)o(In)n(ter)o(face)g fr(SystemIn)o(ter)o(face)o(.h)37 1562 y
fo(SystemTimer)g fr(F)m(reeRunningTim)o(er.h)37 1628 y fo(TheKernel)i fr(Kern\
el.h)37 1686 y fo(TheVirtualPC)h fr(Mac)o(hineDep)q(en)o(den)n(t/PC/Virt)o
(ual)o(PC.h)37 1755 y fo(ThisPro)q(cess\(\))e fr(ThisPro)q(cess.h,)10 b(Libra\
ries/Syst)o(em)o(In)o(t)o(erfa)o(ceThi)o(sPro)q(c)o(ess.h)37 1823 y fo(W)l
(riteFileStreamClass)22 b fr(Libraries/File/)o(W)m(rite)o(FileS)o(tre)o(am.)o
(h)37 1892 y fo(thisCPU\(\))f fr(CPUCollection.h)941 2760 y fn(168)g eop bop
756 436 a fe(BIBLIOGRAPHY)60 687 y fn([1])22 b(M.)15 b(Accetta,)g(R.)h(Baron,)
f(W.)g(Bolosky)l(,)g(D.)g(Golub,)g(R.)g(Rashid,)h(A.)f(T)l(ev)m(anian,)h(and)
g(M.)f(Y)l(oung.)21 b(A)131 771 y(new)11 b(k)o(ernel)f(foundation)g(for)g(Uni\
x)h(dev)o(elopmen)o(t.)g(In)g fk(Pr)n(o)n(c)n(e)n(e)n(dings)f(of)i(the)g(1986)
h(Usenix)e(Confer)n(enc)n(e)p fn(,)131 856 y(pages)k(93{112.)e(Usenix)i(Asso)
q(ciation,)f(1986.)60 978 y([2])22 b(Maurice)16 b(J.)h(Bac)o(h.)26 b fk(The)
18 b(Design)f(of)h(the)g(UNIX)f(Op)n(er)n(ating)g(System)p fn(.)25 b(Pren)o
(tice)17 b(Hall,)f(Englew)o(o)q(o)q(d)131 1063 y(Cli\013s,)d(New)j(Jersey)l
(,)f(1986.)60 1185 y([3])22 b(Grady)d(Bo)q(o)q(c)o(h.)32 b fk(Obje)n(ct-Orien\
te)n(d)19 b(Design:)28 b(With)20 b(Applic)n(ations)p fn(.)31 b(Benjamin/Cummi\
ngs,)16 b(Red-)131 1269 y(w)o(o)q(o)q(d)f(Cit)o(y)l(,)f(CA,)g(1991.)60 1391 y
([4])22 b(S.)15 b(R.)g(Bourne.)20 b fk(The)c(UNIX)f(System)p fn(.)20 b(Addiso\
n-W)l(esley)l(,)15 b(Reading,)g(MA,)f(1983.)60 1513 y([5])22 b(Ralf)13 b(Bro)
o(wn)h(and)g(Jim)f(Kyle.)k fk(PC)e(Interrupts:)20 b(A)15 b(Pr)n(o)n(gr)n(amme\
r's)f(R)n(efer)n(enc)n(e)g(to)h(BIOS,)f(DOS,)g(and)131 1598 y(Thir)n(d-Party)
j(Cal)r(ls)p fn(.)h(Addison-W)l(esley)l(,)d(Reading,)g(MA,)g(1991.)60 1720 y
([6])22 b(Ro)o(y)14 b(H.)h(Campb)q(ell)e(and)h(Na)o(y)o(eem)g(Islam.)j(A)d
(T)l(ec)o(hnique)i(for)e(Do)q(cumen)o(ting)f(the)h(F)l(ramew)o(ork)e(of)j(an)
131 1805 y(Ob)s(ject-Orien)o(ted)f(System.)j(In)e fk(Pr)n(o)n(c)n(e)n(e)n(din\
gs)d(of)k(International)d(Workshop)k(on)d(Obje)n(ct)h(Orientation)131 1890 y
(in)h(Op)n(er)n(ating)f(Systems)p fn(.)f(IEEE)h(Computer)f(So)q(ciet)o(y)h
(Press,)g(Septem)o(b)q(er)f(1992.)60 2012 y([7])22 b(Ro)o(y)k(H.)f(Campb)q
(ell,)i(Na)o(y)o(eem)d(Islam,)j(Ralph)f(Johnson,)i(P)o(anagiotis)c(Kougiouris\
,)j(and)f(P)o(eter)131 2096 y(Madan)o(y)l(.)14 b fk(Choic)n(es,)d fn(F)l(rame\
w)o(orks)e(and)j(Re\014nemen)o(t.)i(In)f(Luis-F)l(elip)q(e)f(Cabrera)f(and)h
(Vincen)o(t)g(Russo,)131 2181 y(and)18 b(Marc)g(Shapiro,)g(editor,)g fk(Pr)n
(o)n(c)n(e)n(e)n(dings)f(of)i(International)f(Workshop)i(on)f(Obje)n(ct)f(Ori\
entation)131 2266 y(in)g(Op)n(er)n(ating)g(Systems)p fn(,)f(pages)g(9{15,)g
(P)o(alo)f(Alto,)h(California,)f(Octob)q(er)i(1991.)e(IEEE)i(Computer)131 2350
y(So)q(ciet)o(y)d(Press.)60 2472 y([8])22 b(Da)o(vid)12 b(Cheriton.)k(The)d
(V)g(Distributed)f(System.)j fk(Communic)n(ations)f(of)g(the)g(A)o(CM)p fn
(,)e(pages)h(314{334,)131 2557 y(1988.)941 2760 y(169)g eop bop 60 42 a fn
([9])22 b(Mic)o(hael)13 b(W.)g(Condry)l(,)h(Sw)o(ee)g(Bo)q(on)g(Lim,)f(and)h
(Lup)h(Y)l(uen)g(Lee.)j(The)c(Ob)s(ject-Orien)o(ted)h(Adv)m(an)o(tage)131 126
y(in)e(Protot)o(yping)e(a)h(Remote)g(File)g(System.)j(In)f fk(Pr)n(o)n(c)n
(e)n(e)n(dings)e(of)i(International)f(Workshop)i(on)f(Obje)n(ct)131 211 y(Ori\
entation)i(in)g(Op)n(er)n(ating)f(Systems)p fn(.)f(IEEE)h(Computer)f(So)q(cie\
t)o(y)h(Press,)f(Septem)o(b)q(er)h(1992.)37 333 y([10])22 b(L.)11 b(P)o(eter)
g(Deutsc)o(h.)i(Design)d(Reuse)i(and)f(F)l(ramew)o(orks)e(in)i(the)g(Smalltal\
k-80)d(Programm)o(ing)g(System.)131 418 y(In)19 b(T)l(ed)h(J.)e(Biggersta\013)
f(and)i(Alan)g(J.)g(P)o(erlis,)f(editors,)g fk(Softwar)n(e)i(R)n(eusability)p
fn(,)f(v)o(olume)e(I)q(I,)j(pages)131 502 y(55{71.)13 b(A)o(CM)i(Press,)f(198\
9.)37 624 y([11])22 b(Edsger)15 b(W.)g(Dijkstra.)j(The)e(Structure)g(of)e(the)
i(\\THE"-Multiprogram)o(m)o(ing)c(System.)19 b fk(Communi-)131 709 y(c)n(atio\
ns)c(of)i(the)f(A)o(CM)p fn(,)e(11\(5\):341{346)o(,)e(Ma)o(y)i(1968.)37 831 y
([12])22 b(Da)o(vid)g(Dykstra.)42 b(Ob)s(ject-orien)o(ted)22 b(Hierarc)o(hies)
g(Across)h(Protection)f(Boundaries.)43 b(T)l(ec)o(hnical)131 916 y(Rep)q(ort)
18 b(UIUCDCS-R-92-1741,)f(Departmen)o(t)f(of)i(Computer)e(Science,)j(Univ)o
(ersit)o(y)d(of)i(Illinois)e(at)131 1000 y(Urbana-Champaign,)d(Ma)o(y)h(1992.)
37 1122 y([13])22 b(Margaret)9 b(A.)h(Ellis)f(and)h(Bjarne)h(Stroustrup.)g fk
(The)h(A)o(nnotate)n(d)f(C++)g(R)n(efer)n(enc)n(e)f(Manual)p fn(.)i(Addison-)
131 1207 y(W)l(esley)l(,)j(Reading,)g(MA,)f(1990.)37 1329 y([14])22 b(FTP)15 b
(Soft)o(w)o(are,)e(Inc.,)i(W)l(ak)o(e\014eld,)g(MA.)k fk(PC/TCP)c(Packet)h
(Driver,)h(Revision)e(1.09)p fn(,)h(1989.)37 1451 y([15])22 b(Bjorn)d(Andrew)
g(Helgaas.)29 b(P)o(orting)17 b(The)i(Choices)g(Ob)s(ject-Orien)o(ted)g(Op)q
(erating)g(System)e(to)h(the)131 1536 y(Motorola)c(68030.)24 b(Master's)15 b
(thesis,)i(Departmen)o(t)e(of)h(Computer)g(Science,)i(Univ)o(ersit)o(y)d(of)i
(Illinois)131 1621 y(at)d(Urbana-Champaign,)g(1991.)37 1743 y([16])22 b(Ric)o
(hard)e(Helm,)g(Ian)g(Holland,)h(and)f(Dipa)o(y)o(an)f(Gangopadha)o(y)l(.)34 b
(Con)o(tracts:)28 b(Sp)q(ecifying)20 b(Beha)o(v-)131 1827 y(ioral)11 b(Comp)q
(ositions)f(in)i(Ob)s(ject-Orien)o(ted)h(Systems.)i(In)e fk(ECOOP/OOPSLA)e
('90)p fn(,)i(pages)g(169{180.)131 1912 y(A)o(CM,)h(1990.)37 2034 y([17])22 b
(In)o(tel)15 b(Corp)q(oration,)e(Mt.)h(Prosp)q(ect,)h(IL.)21 b fk(386D)o(X)c
(Pr)n(o)n(gr)n(ammer's)e(R)n(efer)n(enc)n(e)g(Manual)p fn(,)g(1989.)37 2156 y
([18])22 b(In)o(ternational)10 b(Business)i(Mac)o(hines)f(Corp)q(oration.)h fk
(IBM)g(Personal)g(System/2)h(and)f(Personal)g(Com-)131 2241 y(puter)17 b(BIOS)
e(Interfac)n(e)g(T)m(e)n(chnic)n(al)f(R)n(efer)n(enc)n(e)p fn(,)f(1988.)37
2363 y([19])22 b(In)o(ternational)11 b(Business)h(Mac)o(hines)f(Corp)q(oratio\
n.)i fk(IBM)g(Personal)f(System/2)h(Har)n(dwar)n(e)h(Interfac)n(e)131 2447 y
(T)m(e)n(chnic)n(al)g(R)n(efer)n(enc)n(e)p fn(,)f(1988.)941 2760 y(170)g eop
bop 37 42 a fn([20])22 b(Na)o(y)o(eem)15 b(Islam)h(and)h(Ro)o(y)g(Campb)q(ell\
.)24 b(Ob)s(ject-Orien)o(ted)17 b(F)l(ramew)o(ork)e(Design)h(and)i(Implemen)o
(ta-)131 126 y(tion.)12 b(T)l(ec)o(hnical)f(Rep)q(ort)h(UIUCDCS-R-92-1737,)f
(Departmen)o(t)e(of)i(Computer)e(Science,)k(Univ)o(ersit)o(y)131 211 y(of)i
(Illinois)f(at)g(Urbana-Champaign,)f(No)o(v)o(em)o(b)q(er)h(1991.)37 333 y
([21])22 b(Na)o(y)o(eem)11 b(Islam)g(and)i(Ro)o(y)g(Campb)q(ell.)h(Design)e
(Considerations)f(for)h(Shared)h(Memory)e(Multipro)q(ces-)131 418 y(sor)33 b
(Message)17 b(Systems.)24 b(In)17 b fk(Pr)n(o)n(c)n(e)n(e)n(dings)f(of)i(the)
g(Symp)n(osium)g(on)g(Exp)n(erienc)n(es)e(with)i(Distribute)n(d)131 502 y(and)
e(Multipr)n(o)n(c)n(essor)f(Systems)p fn(,)f(Newp)q(ort)h(Beac)o(h,)g(Califor\
nia,)e(Marc)o(h)h(1992.)37 624 y([22])22 b(Ralph)15 b(E.)g(Johnson.)20 b(Do)q
(cumen)o(ting)14 b(F)l(ramew)o(orks)f(Using)i(P)o(atterns,)e(1992.)37 746 y
([23])22 b(Ralph)11 b(E.)f(Johnson)h(and)g(Brian)f(F)l(o)q(ote.)h(Designing)f
(Reusable)h(Classes.)g fk(Journal)h(of)h(Obje)n(ct-Oriente)n(d)131 831 y(Pr)n
(o)n(gr)n(amming)p fn(,)h(1\(2\):22{25,)e(June)k(1988.)37 953 y([24])22 b(Ral\
ph)e(E.)f(Johnson)h(and)g(Vincen)o(t)g(F.)f(Russo.)34 b(Reusing)20 b(Ob)s(jec\
t-Orien)o(ted)g(Designs.)33 b(T)l(ec)o(hnical)131 1038 y(Rep)q(ort)15 b(UIUCD\
CS-R-91-1696,)e(TTR91-34,)h(Departmen)o(t)e(of)j(Computer)e(Science,)i(Univ)o
(ersit)o(y)e(of)131 1122 y(Illinois)h(at)g(Urbana-Champaign,)g(Ma)o(y)g(1991.)
37 1245 y([25])22 b(G.)12 b(M.)h(Johnston)g(and)g(R.)g(H.)g(Campb)q(ell.)i
(\\An)e(Ob)s(ject-Orien)o(ted)h(Implemen)o(tation)c(of)i(Distributed)131 1329
y(Virtual)17 b(Memory".)26 b(In)19 b fk(Workshop)h(on)f(Exp)n(erienc)n(es)e
(with)i(Building)g(Distribute)n(d)g(and)g(Multipr)n(o-)131 1414 y(c)n(essor)c
(Systems)p fn(,)f(pages)h(39{57.)e(Usenix,)i(1989.)37 1536 y([26])22 b(P)o
(anagiotis)15 b(Kougiouris.)25 b(A)17 b(Device)h(Managemen)o(t)d(F)l(ramew)o
(ork)g(for)i(an)g(Ob)s(ject-Orien)o(ted)g(Op)q(er-)131 1621 y(ating)e(System.)
23 b(Master's)14 b(thesis,)i(Departmen)o(t)f(of)h(Computer)f(Science,)i(Univ)
o(ersit)o(y)e(of)h(Illinois)f(at)131 1705 y(Urbana-Champaign,)e(1991.)37 1827
y([27])22 b(Sam)o(uel)15 b(J.)i(Le\017er,)g(Marshall)e(Kirk)i(McKusic)o(k,)g
(Mic)o(hael)e(J.)i(Karels,)f(and)h(John)h(S.)e(Quarterman.)131 1912 y fk(The)
e(Design)h(and)f(Implementation)h(of)g(the)g(4.3BSD)g(UNIX)f(Op)n(er)n(ating)
g(System)p fn(.)i(Addison-W)l(esley)l(,)131 1997 y(Reading,)f(MA,)f(1989.)37
2119 y([28])22 b(Douglas)14 b(E.)h(Ley)o(ens.)21 b(A)16 b(Choices)f(Implemen)
o(tation)e(of)i(the)g(Univ)o(ersal)g(Sc)o(heduling)g(System.)20 b(Mas-)131
2203 y(ter's)11 b(thesis,)i(Departmen)o(t)d(of)i(Computer)f(Science,)i(Univ)o
(ersit)o(y)e(of)h(Illinois)f(at)h(Urbana-Champaign,)131 2288 y(1988.)37 2410 y
([29])22 b(P)o(eter)d(W.)g(Madan)o(y)l(.)33 b(An)20 b(Ob)s(ject-orien)o(ted)f
(Framew)o(ork)f(for)h(File)f(Systems.)33 b(T)l(ec)o(hnical)19 b(Rep)q(ort)131
2495 y(UIUCDCS-R-92-1751,)14 b(Departmen)o(t)f(of)i(Computer)f(Science,)i(Uni\
v)o(ersit)o(y)d(of)i(Illinois)f(at)g(Urbana-)131 2579 y(Champaign,)f(June)j
(1992.)941 2760 y(171)g eop bop 37 42 a fn([30])22 b(P)o(eter)15 b(W.)h(Madan)
o(y)l(,)f(Ro)o(y)h(H.)g(Campb)q(ell,)e(Vincen)o(t)i(F.)g(Russo,)g(and)g(Dougl\
as)f(E.)g(Ley)o(ens.)23 b(A)16 b(Class)131 126 y(Hierarc)o(h)o(y)21 b(for)f
(Building)h(Stream-Orien)o(ted)g(File)f(Systems.)37 b(T)l(ec)o(hnical)22 b
(Rep)q(ort)g(UIUCDCS-R-)131 211 y(89-1507,)c(TTR89-12,)h(Departmen)o(t)e(of)h
(Computer)g(Science,)i(Univ)o(ersit)o(y)e(of)g(Illinois)g(at)g(Urbana-)131 296
y(Champaign,)13 b(April)i(1988.)37 418 y([31])22 b(Henry)11 b(Massalin.)g fk
(E\016cient)g(Implementation)h(of)g(F)m(undamental)g(Op)n(er)n(ating)f(System)
h(Servic)n(es)p fn(.)f(PhD)131 502 y(thesis,)j(Colum)o(bia)f(Univ)o(ersit)o
(y)l(,)h(1992.)37 624 y([32])22 b(M.)14 b(K.)h(McKusic)o(k,)f(W.)h(N.)f(Jo)o
(y)l(,)h(S.)f(J.)h(Le\017er,)g(and)g(R.)g(S.)g(F)l(abry)l(.)k(A)c(F)l(ast)f
(File)g(System)g(for)g(UNIX.)131 709 y fk(A)o(CM)h(T)m(r)n(ansactions)f(on)i
(Computer)h(Systems)p fn(,)d(2\(3\):181{197,)d(August)k(1984.)37 831 y([33])
22 b(Donald)f(A.)h(Norman.)38 b(Some)21 b(Observ)m(ations)h(on)f(Men)o(tal)g
(Mo)q(dels.)39 b(In)23 b(Gen)o(tner)f(and)g(Stev)o(ens,)131 916 y(editors,)14
b fk(Mental)h(Mo)n(dels)p fn(,)f(pages)h(7{14.)f(Erlbaum,)f(Hillsdale,)h(NJ,)
h(1983.)37 1038 y([34])22 b(Donald)16 b(A.)g(Norman.)22 b fk(The)17 b(Design)
g(of)g(Everyday)h(Things)p fn(,)d(pages)i(13{14,)e(190.)22 b(Doubleda)o(y)l
(,)16 b(New)131 1122 y(Y)l(ork,)f(1990.)37 1245 y([35])22 b(P)o(eter)d(Norton)
g(and)h(Ric)o(hard)g(Wilton.)32 b fk(The)20 b(New)g(Peter)h(Norton)f(Pr)n(o)n
(gr)n(ammer's)g(Guide)h(to)g(the)131 1329 y(IBM)15 b(PC)h(&)g(PC/2)p fn(.)k
(Microsoft)13 b(Press,)i(Redmond,)g(W)l(ashington,)e(1988.)37 1451 y([36])22 b
(James)f(L.)h(P)o(eterson)g(and)g(Abraham)f(Silb)q(ersc)o(hatz.)40 b fk(Op)n
(er)n(ating)22 b(System)g(Conc)n(epts)p fn(.)39 b(Addison-)131 1536 y(W)l(esl\
ey)l(,)15 b(Reading,)g(MA,)f(1985.)37 1658 y([37])22 b(Roger)14 b(S.)g(Pressm\
an.)i fk(Softwar)n(e)g(Engine)n(ering:)i(A)d(Pr)n(actitioner's)f(Appr)n(o)n
(ach)p fn(.)19 b(McGra)o(w-Hill,)11 b(New)131 1743 y(Y)l(ork,)k(1982.)37 1865
y([38])22 b(Da)o(vid)13 b(K.)h(Raila.)j(The)d(Choices)f(Ob)s(ject-Orien)o(ted)
i(Op)q(erating)e(System)g(on)h(the)g(SP)l(AR)o(C)h(Arc)o(hitec-)131 1949 y
(ture.)23 b(Master's)15 b(thesis,)h(Departmen)o(t)e(of)i(Computer)f(Science,)
j(Univ)o(ersit)o(y)d(of)h(Illinois)f(at)g(Urbana-)131 2034 y(Champaign,)e(199\
2.)37 2156 y([39])22 b(V.)e(Russo,)i(G.)e(M.)f(Johnston,)j(and)f(R.)f(H.)h
(Campb)q(ell.)34 b(Pro)q(cess)20 b(Managemen)o(t)f(and)i(Exception)131 2241 y
(Handling)13 b(in)g(Multipro)q(cessor)f(Op)q(erating)h(Systems)g(Using)g(Ob)s
(ject-Orien)o(ted)g(Design)g(T)l(ec)o(hniques.)131 2325 y(T)l(ec)o(hnical)g
(Rep)q(ort)g(UIUCDCS-R-88-1415,)g(TTR88-4,)f(Departmen)o(t)f(of)i(Computer)e
(Science,)j(Uni-)131 2410 y(v)o(ersit)o(y)g(of)h(Illinois)f(at)g(Urbana-Champ\
aign,)f(Septem)o(b)q(er)i(1988.)941 2760 y(172)g eop bop 37 42 a fn([40])22 b
(Vincen)o(t)15 b(Russo)f(and)h(Ro)o(y)g(H.)f(Campb)q(ell.)k(Virtual)13 b(Memo\
ry)g(and)i(Bac)o(king)f(Storage)f(Managemen)o(t)131 126 y(in)18 b(Multipro)q
(cessor)e(Op)q(erating)i(Systems)f(using)h(Class)f(Hierarc)o(hical)g(Design.)
27 b(In)19 b fk(Pr)n(o)n(c)n(e)n(e)n(dings)d(of)131 211 y(OOPSLA)f('89)p fn
(,)g(pages)g(267{278,)e(New)i(Orleans,)g(Louisiana,)f(Septem)o(b)q(er)g(1989.)
37 333 y([41])22 b(Vincen)o(t)f(F.)g(Russo.)38 b fk(A)o(n)22 b(Obje)n(ct-Orie\
nte)n(d)e(Op)n(er)n(ating)i(System)p fn(.)37 b(PhD)21 b(thesis,)h(Departmen)o
(t)e(of)131 418 y(Computer)14 b(Science,)h(Univ)o(ersit)o(y)f(of)h(Illinois)f
(at)h(Urbana-Champaign,)e(Jan)o(uary)i(1991.)37 540 y([42])22 b(Andrew)c(S.)g
(T)l(anen)o(baum)f(and)i(Sap)q(e)f(J.)g(Mullender.)28 b(An)18 b(o)o(v)o(ervie\
w)f(of)h(the)g(Amo)q(eba)f(distributed)131 624 y(op)q(erating)d(system.)19 b
fk(A)o(CM)c(Op)n(er)n(ating)g(Systems)h(R)n(eview)p fn(,)e(15\(3\):51{64,)e
(July)j(1981.)37 746 y([43])22 b(Stephen)d(A.)e(Uhler.)27 b fk(MGR)19 b(-)g
(C)f(L)n(anguage)f(Applic)n(ation)h(Interfac)n(e)p fn(.)26 b(Bell)18 b(Comm)o
(unicati)o(ons)d(Re-)131 831 y(searc)o(h,)g(1988.)37 953 y([44])22 b(Al)16 b
(Williams.)k(Roll)c(Y)l(our)g(Own)h(DOS)g(Extender.)24 b fk(Dr.)18 b(Dobb's)f
(Journal)p fn(,)f(15\(10\):16{24,)d(Octob)q(er)131 1038 y(1990.)941 2760 y
(173)g eop eos @end


  3 Responses to “Category : Alternate Operating Systems - Quarterdeck DesqView, CP/M, etc
Archive   : PCCTHES.ZIP
Filename : PCCTHES.PS

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/