Attached is the postscript for the update section on generalized
requests. It is somewhat different from before and I welcome
comments.
Steve
----------------------------------------------------------------------
%!PS-Adobe-2.0
%%Creator: dvips 5.54 Copyright 1986, 1994 Radical Eye Software
%%Title: temp.dvi
%%CreationDate: Tue Jul 11 11:43:23 1995
%%Pages: 11
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%EndComments
%DVIPSCommandLine: dvips -o temp.ps temp
%DVIPSParameters: dpi=300, comments removed
%DVIPSSource: TeX output 1995.07.11:1143
%%BeginProcSet: tex.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
TR matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get
round 5 exch put setmatrix}N /@landscape{/isls true N}B /@manualfeed{
statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0
0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn
begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X
array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo
setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx
FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{
pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}
B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ch-data dup
length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B
/ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type
/stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp
0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2
index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff
ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice
ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{
ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn
/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1
sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{cc 1 add D
}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0
moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add
.99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley
false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley
scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath
transform round exch round exch itransform moveto rulex 0 rlineto 0
ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta
0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}
B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{
3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p
-1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{
3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end
%%EndProcSet
TeXDict begin 40258431 52099146 1000 300 300
(/tmp_mnt/net/u01/src/lederman/mpi2-std/interface/temp.dvi)
@start /Fa 4 113 df<00F1800389C00707800E03801C03803C03803807007807007807
00780700F00E00F00E00F00E00F00E10F01C20F01C20703C20705C40308C400F07801414
7E9318>97 D<00E001E001E000C000000000000000000000000000000E00130023804380
438043808700070007000E000E001C001C001C20384038403840388019000E000B1F7E9E
10>105 D<0000C00001E00001E00001C000000000000000000000000000000000000000
0000001E00006300004380008380010380010380020700000700000700000700000E0000
0E00000E00000E00001C00001C00001C00001C0000380000380000380000380000700000
700030700078E000F1C0006380003E00001328819E13>I<03C1E004621804741C08781C
08701E08701E10E01E00E01E00E01E00E01E01C03C01C03C01C03C01C038038078038070
0380E003C1C0072380071E000700000700000E00000E00000E00000E00001C00001C0000
FFC000171D819317>112 D E /Fb 64 126 df<70F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
F870000000000070F8F8F870051C779B18>33 D<3803007C07807C0780EE0F80EE0F00EE
0F00EE1F00EE1E00EE1E00EE3E007C3C007C3C00387C0000780000780000F80000F00001
F00001E00001E00003E00003C00003C00007C0000783800787C00F87C00F0EE00F0EE01F
0EE01E0EE01E0EE03E0EE03C07C03C07C018038013247E9F18>37
D<01C00007E0000FF0000E70001C38001C38001C38001C38001C73F01C73F01CE3F00FE3
800FC7000F87000F07001F0E003F0E007B8E0073DC00E1DC00E0F800E0F800E07070E078
7070FC707FFFE03FCFE00F03C0141C7F9B18>I<387C7C7E3E0E0E0E1C1C38F8F0C0070E
789B18>I<007000F001E003C007800F001E001C00380038007000700070007000E000E0
00E000E000E000E000E000E0007000700070007000380038001C001E000F00078003C001
F000F000700C24799F18>I<6000F00078003C001E000F000780038001C001C000E000E0
00E000E00070007000700070007000700070007000E000E000E000E001C001C003800780
0F001E003C007800F00060000C247C9F18>I<01C00001C00001C00001C000C1C180F1C7
80F9CF807FFF001FFC0007F00007F0001FFC007FFF00F9CF80F1C780C1C18001C00001C0
0001C00001C00011147D9718>I<00600000F00000F00000F00000F00000F00000F00000
F0007FFFC0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F00000F00000F00000
600013147E9718>I<1C3E7E7F3F1F070E1E7CF860080C788518>I<7FFF00FFFF80FFFF80
7FFF0011047D8F18>I<3078FCFC78300606778518>I<000300000780000780000F80000F
00001F00001E00001E00003E00003C00007C0000780000780000F80000F00001F00001E0
0003E00003C00003C00007C0000780000F80000F00000F00001F00001E00003E00003C00
003C00007C0000780000F80000F00000F0000060000011247D9F18>I<01F00007FC000F
FE001F1F001C07003803807803C07001C07001C0E000E0E000E0E000E0E000E0E000E0E0
00E0E000E0E000E0E000E0F001E07001C07001C07803C03803801C07001F1F000FFE0007
FC0001F000131C7E9B18>I<01800380038007800F803F80FF80FB804380038003800380
03800380038003800380038003800380038003800380038003807FFCFFFE7FFC0F1C7B9B
18>I<07F8001FFE003FFF007807807803C07801C03001C00001C00003C0000380000F00
03FF0003FE0003FF000007800003C00001C00000E00000E00000E0F000E0F000E0F001C0
F003C07C07803FFF001FFE0003F800131C7E9B18>51 D<183C7E7E3C1800000000000000
00183C7E7E3E1E0E1C3C78F060071A789318>59 D<000300000780001F80003F00007E00
01FC0003F00007E0001FC0003F00007E0000FC0000FC00007E00003F00001FC00007E000
03F00001FC00007E00003F00001F8000078000030011187D9918>I<7FFFC0FFFFE0FFFF
E0FFFFE0000000000000000000000000FFFFE0FFFFE0FFFFE07FFFC0130C7E9318>I<FF
FC00FFFF00FFFF801C03C01C01C01C00E01C00E01C00E01C00E01C01E01C01C01C07C01F
FF801FFF001FFFC01C03C01C00E01C00F01C00701C00701C00701C00701C00F01C00E01C
03E0FFFFC0FFFF80FFFE00141C7F9B18>66 D<00F8E003FEE007FFE00F07E01E03E03C01
E03800E07000E07000E0700000E00000E00000E00000E00000E00000E00000E00000E000
007000007000E07000E03800E03C00E01E01C00F07C007FF8003FE0000F800131C7E9B18
>I<7FF800FFFE007FFF001C0F801C03C01C03C01C01E01C00E01C00E01C00F01C00701C
00701C00701C00701C00701C00701C00701C00701C00F01C00E01C00E01C01E01C01C01C
03C01C0F807FFF00FFFE007FF800141C7F9B18>I<FFFFF0FFFFF0FFFFF01C00701C0070
1C00701C00701C00001C00001C0E001C0E001C0E001FFE001FFE001FFE001C0E001C0E00
1C0E001C00001C00001C00381C00381C00381C00381C0038FFFFF8FFFFF8FFFFF8151C7F
9B18>I<7FFF00FFFF807FFF0001C00001C00001C00001C00001C00001C00001C00001C0
0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
0001C00001C0007FFF00FFFF807FFF00111C7D9B18>73 D<7FE000FFE0007FE0000E0000
0E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0000
0E00000E00000E00000E00000E00700E00700E00700E00700E00707FFFF0FFFFF07FFFF0
141C7F9B18>76 D<FC01F8FE03F8FE03F83B06E03B06E03B06E03B06E03B8EE03B8EE039
8CE0398CE039DCE039DCE039DCE038D8E038D8E038F8E03870E03870E03800E03800E038
00E03800E03800E03800E0FE03F8FE03F8FE03F8151C7F9B18>I<7E07F0FF0FF87F07F0
1D81C01D81C01D81C01DC1C01CC1C01CC1C01CE1C01CE1C01CE1C01C61C01C71C01C71C0
1C31C01C39C01C39C01C39C01C19C01C19C01C1DC01C0DC01C0DC01C0DC07F07C0FF87C0
7F03C0151C7F9B18>I<0FF8003FFE007FFF00780F00700700F00780E00380E00380E003
80E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E003
80E00380F00780700700780F007FFF003FFE000FF800111C7D9B18>I<FFFE00FFFF80FF
FFC01C03C01C01E01C00E01C00701C00701C00701C00701C00701C00E01C01E01C03C01F
FFC01FFF801FFE001C00001C00001C00001C00001C00001C00001C00001C0000FF8000FF
8000FF8000141C7F9B18>I<7FF800FFFE007FFF001C0F801C03801C03C01C01C01C01C0
1C01C01C03C01C03801C0F801FFF001FFE001FFE001C0F001C07001C03801C03801C0380
1C03801C03801C039C1C039C1C039C7F01F8FF81F87F00F0161C7F9B18>82
D<03F3801FFF803FFF807C0F80700780E00380E00380E00380E000007000007800003F00
001FF00007FE0000FF00000F800003C00001C00000E00000E06000E0E000E0E001E0F001
C0F80780FFFF80FFFE00E7F800131C7E9B18>I<7FFFF8FFFFF8FFFFF8E07038E07038E0
7038E0703800700000700000700000700000700000700000700000700000700000700000
700000700000700000700000700000700000700000700007FF0007FF0007FF00151C7F9B
18>I<FF83FEFF83FEFF83FE1C00701C00701C00701C00701C00701C00701C00701C0070
1C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00700E00E0
0F01E00783C003FF8001FF00007C00171C809B18>I<FF07F8FF07F8FF07F81C01C01C01
C01C01C01C01C00E03800E03800E03800E03800F0780070700070700070700070700038E
00038E00038E00038E00018C0001DC0001DC0001DC0000D80000F80000F800007000151C
7F9B18>I<FE03F8FE03F8FE03F87000707000707000703800E03800E03800E03800E038
00E038F8E038F8E039DCE039DCE019DCC019DCC019DCC0198CC01D8DC01D8DC01D8DC01D
8DC00D8D800D05800F07800F07800E0380151C7F9B18>I<FFF8FFF8FFF8E000E000E000
E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000
E000E000E000E000E000E000E000E000E000FFF8FFF8FFF80D24779F18>91
D<FFF8FFF8FFF80038003800380038003800380038003800380038003800380038003800
38003800380038003800380038003800380038003800380038003800380038FFF8FFF8FF
F80D247F9F18>93 D<7FFF00FFFF80FFFF807FFF0011047D7F18>95
D<1FE0003FF8007FFC00781E00300E0000070000070000FF0007FF001FFF007F07007807
00E00700E00700E00700F00F00781F003FFFF01FFBF007E1F014147D9318>97
D<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E000EFF800FFFC00FC1
E00F80E00F00700E00700E00380E00380E00380E00380E00380E00380F00700F00700F80
E00FC1E00FFFC00EFF80063E00151C809B18>I<01FE0007FF001FFF803E078038030070
0000700000E00000E00000E00000E00000E00000E000007000007001C03801C03E03C01F
FF8007FF0001FC0012147D9318>I<001F80003F80001F80000380000380000380000380
00038003E3800FFB801FFF803C1F80380F80700780700380E00380E00380E00380E00380
E00380E00380700780700780380F803C1F801FFFF00FFBF803E3F0151C7E9B18>I<01F0
0007FC001FFE003E0F00380780700380700380E001C0E001C0FFFFC0FFFFC0FFFFC0E000
007000007001C03801C03E03C01FFF8007FF0001FC0012147D9318>I<001F80007FC000
FFE000E1E001C0C001C00001C00001C0007FFFC0FFFFC0FFFFC001C00001C00001C00001
C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0007FFF007F
FF007FFF00131C7F9B18>I<01E1F007FFF80FFFF81E1E301C0E00380700380700380700
3807003807001C0E001E1E001FFC001FF80039E0003800001C00001FFE001FFFC03FFFE0
7801F0700070E00038E00038E00038E000387800F07E03F01FFFC00FFF8001FC00151F7F
9318>I<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E000EFF800FFF
C00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00
E00E00E00E00E07FC3FCFFE7FE7FC3FC171C809B18>I<03800007C00007C00007C00003
80000000000000000000000000007FC000FFC0007FC00001C00001C00001C00001C00001
C00001C00001C00001C00001C00001C00001C00001C00001C00001C000FFFF00FFFF80FF
FF00111D7C9C18>I<FE0000FE0000FE00000E00000E00000E00000E00000E00000E3FF0
0E7FF00E3FF00E07800E0F000E1E000E3C000E78000EF0000FF8000FFC000F9C000F0E00
0E0F000E07000E03800E03C0FFC7F8FFC7F8FFC7F8151C7F9B18>107
D<7FE000FFE0007FE00000E00000E00000E00000E00000E00000E00000E00000E00000E0
0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0
0000E0007FFFC0FFFFE07FFFC0131C7E9B18>I<7CE0E000FFFBF8007FFFF8001F1F1C00
1E1E1C001E1E1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C00
1C1C1C001C1C1C001C1C1C001C1C1C007F1F1F00FFBFBF807F1F1F001914819318>I<7E
3E00FEFF807FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E
00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC1714809318>I<01F0000FFE00
1FFF003E0F803803807001C07001C0E000E0E000E0E000E0E000E0E000E0F001E07001C0
7803C03C07803E0F801FFF000FFE0001F00013147E9318>I<7E3E00FEFF807FFFC00FC1
E00F80E00F00700E00700E00380E00380E00380E00380E00380E00380F00700F00700F80
E00FC1E00FFFC00EFF800E3E000E00000E00000E00000E00000E00000E00000E00007FC0
00FFE0007FC000151E809318>I<01E38007FB801FFF803E1F80380F80700780700780E0
0380E00380E00380E00380E00380E00380700780700780380F803C1F801FFF800FFB8003
E380000380000380000380000380000380000380000380003FF8003FF8003FF8151E7E93
18>I<7F87E0FF9FF07FBFF803F87803F03003E00003C00003C000038000038000038000
0380000380000380000380000380000380007FFE00FFFF007FFE0015147F9318>I<07F7
003FFF007FFF00780F00E00700E00700E007007C00007FE0001FFC0003FE00001F006007
80E00380E00380F00380F80F00FFFF00FFFC00E7F00011147D9318>I<01800003800003
80000380000380007FFFC0FFFFC0FFFFC003800003800003800003800003800003800003
80000380000380000380400380E00380E00380E001C1C001FFC000FF80003E0013197F98
18>I<7E07E0FE0FE07E07E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E0
0E00E00E00E00E00E00E00E00E01E00F03E007FFFC03FFFE01FCFC1714809318>I<7F8F
F0FF8FF87F8FF01E03C00E03800E03800E0380070700070700070700038E00038E00038E
00038E0001DC0001DC0001DC0000F80000F80000700015147F9318>I<FF8FF8FF8FF8FF
8FF83800E03800E03800E01C01C01C01C01C71C01CF9C01CF9C01CD9C01CD9C00DDD800D
DD800DDD800D8D800F8F800F8F8007070015147F9318>I<7F8FF07F9FF07F8FF0070700
078E00039E0001DC0001F80000F80000700000F00000F80001DC00039E00038E00070700
0F07807F8FF0FF8FF87F8FF015147F9318>I<7F8FF0FF8FF87F8FF00E01C00E03800E03
80070380070700070700038700038600038E0001CE0001CE0000CC0000CC0000DC000078
0000780000780000700000700000700000F00000E00079E0007BC0007F80003F00001E00
00151E7F9318>I<3FFFF07FFFF07FFFF07001E07003C0700780000F00001E00003C0000
F80001F00003C0000780000F00701E00703C0070780070FFFFF0FFFFF0FFFFF014147F93
18>I<0007E0001FE0007FE000780000E00000E00000E00000E00000E00000E00000E000
00E00000E00000E00000E00001E0007FC000FF8000FF80007FC00001E00000E00000E000
00E00000E00000E00000E00000E00000E00000E00000E00000E000007800007FE0001FE0
0007E013247E9F18>I<7C0000FF0000FFC00003C00000E00000E00000E00000E00000E0
0000E00000E00000E00000E00000E00000E00000F000007FC0003FE0003FE0007FC000F0
0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00003C0
00FFC000FF00007C000013247E9F18>125 D E /Fc 10 58 df<1F00318060C04040C060
C060C060C060C060C060C060C060404060C031801F000B107F8F0F>48
D<0C003C00CC000C000C000C000C000C000C000C000C000C000C000C000C00FF8009107E
8F0F>I<1F00618040C08060C0600060006000C00180030006000C00102020207FC0FFC0
0B107F8F0F>I<1F00218060C060C000C0008001800F00008000400060C060C060804060
801F000B107F8F0F>I<0300030007000F000B001300330023004300C300FFE003000300
030003001FE00B107F8F0F>I<20803F002C002000200020002F00308020400060006000
60C06080C061801F000B107F8F0F>I<0780184030C060C06000C000CF00F080E040C060
C060C060406060C030801F000B107F8F0F>I<40007FE07FC08080808001000200040004
000C0008000800180018001800180018000B117E900F>I<1F0020804040404040407080
3F000F00338061C0C060C060C060404060801F000B107F8F0F>I<1F00318060C0C040C0
60C060C06040E021E01E600060004060C0608043003E000B107F8F0F>I
E /Fd 4 107 df<FFFFFFC0FFFFFFC01A027C8B23>0 D<000F0038006000E001C001C001
C001C001C001C001C001C001C001C001C001C001C001C001C0038007001E00F8001E0007
00038001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C000E000
600038000F102D7DA117>102 D<F8001E000700038001C001C001C001C001C001C001C0
01C001C001C001C001C001C001C001C000E000600038000F0038006000E001C001C001C0
01C001C001C001C001C001C001C001C001C001C001C001C0038007001E00F800102D7DA1
17>I<C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
C0C0C0C0C0C0C0C0C0C0C0C0022D7BA10D>106 D E /Fe 37 122
df<F0F0F0F004047B830E>46 D<00C001C007C0FFC0FFC0FBC003C003C003C003C003C0
03C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C0
03C003C0FFFFFFFFFFFF10227CA118>49 D<03F0000FFC001FFE003C1F003007807007C0
6003C0E003E0C001E04001E04001E00001E00001E00001E00003C00003C0000780000780
000F00001E00003C0000780000F00001E00001C0000380000700000E00001C0000380000
700000FFFFE0FFFFE0FFFFE013227EA118>I<01F00007FC001FFF003E0F003807807003
C02003C02003C00003C00003C00003C0000780000780000F00001E0003FC0003F80003FE
00000F000007800003C00003C00001E00001E00001E00001E00001E08001E0C003C0E003
C07007803C0F801FFF000FFC0003F00013237EA118>I<001F00001F00002F00002F0000
6F0000EF0000CF0001CF0001CF00038F00038F00078F00070F000F0F000E0F001E0F003C
0F003C0F00780F00780F00F00F00FFFFF8FFFFF8FFFFF8000F00000F00000F00000F0000
0F00000F00000F00000F00000F0015217FA018>I<001F0000001F0000003F8000003F80
00003B8000007BC0000073C0000071C00000F1E00000F1E00000E0E00001E0F00001E0F0
0001C0F00003C0780003C078000380780007803C0007803C0007003C000F001E000F001E
000FFFFE001FFFFF001FFFFF001C000F003C0007803C00078038000780780003C0780003
C0700003C0F00001E0F00001E0E00001E01B237EA220>65 D<000FF000007FFC0000FFFF
0001F01F0003C00700078000000F0000001E0000003E0000003C0000003C000000780000
007800000078000000F0000000F0000000F0000000F0000000F0000000F0000000F00000
00F0000000F00000007800000078000000780000003C0000003C0000003E0000001E0000
000F0000000780008003C0038001F00F8000FFFF00007FFC00000FF00019257DA31F>67
D<FFFFF0FFFFF0FFFFF0F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000FFFFE0FFFFE0FFFFE0F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000FFFFF8FFFFF8FFFFF81523
7BA21D>69 D<FFFFF0FFFFF0FFFFF0F00000F00000F00000F00000F00000F00000F00000
F00000F00000F00000F00000F00000F00000FFFFC0FFFFC0FFFFC0F00000F00000F00000
F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000
F0000014237BA21C>I<000FF000003FFE0000FFFF8001F80F8003E00380078000000F00
00001E0000001E0000003C0000003C000000780000007800000078000000F0000000F000
0000F0000000F0000000F0000000F0000000F000FFC0F000FFC0F000FFC0780003C07800
03C0780003C03C0003C03C0003C01E0003C01E0003C00F0003C0078003C003E003C001F8
07C000FFFFC0003FFF00000FF8001A257DA321>I<F0001EF0001EF0001EF0001EF0001E
F0001EF0001EF0001EF0001EF0001EF0001EF0001EF0001EF0001EF0001EFFFFFEFFFFFE
FFFFFEF0001EF0001EF0001EF0001EF0001EF0001EF0001EF0001EF0001EF0001EF0001E
F0001EF0001EF0001EF0001EF0001EF0001E17237BA222>I<F0F0F0F0F0F0F0F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004237CA20D>I<F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000F00000FFFFC0FFFFC0FFFFC012237BA21A>76
D<FC00007EFE0000FEFE0000FEFE0000FEF70001DEF70001DEF70001DEF78003DEF38003
9EF380039EF3C0079EF3C0079EF1C0071EF1C0071EF1E00F1EF0E00E1EF0E00E1EF0F01E
1EF0F01E1EF0701C1EF0783C1EF0783C1EF038381EF03C781EF03C781EF01C701EF01C70
1EF01EF01EF00EE01EF00EE01EF00FE01EF007C01EF007C01EF007C01EF000001E1F237B
A22A>I<FFFE00FFFF80FFFFC0F003E0F000F0F00078F00078F0003CF0003CF0003CF000
3CF0003CF0003CF00078F00078F000F0F003E0FFFFC0FFFF80FFFE00F00000F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
0016237BA21F>80 D<FFFC00FFFF80FFFFC0F003E0F000F0F00078F00038F0003CF0003C
F0003CF0003CF0003CF00038F00078F000F0F003E0FFFFC0FFFF80FFFE00F01E00F00F00
F00700F00780F00380F003C0F001E0F001E0F000F0F000F0F00078F00038F0003CF0001E
F0001EF0000F18237BA21F>82 D<FFFFFFF0FFFFFFF0FFFFFFF0000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F00001C237EA221>84 D<F0003CF0003CF0003CF0003CF0003CF0003C
F0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003C
F0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003C780078780078780078
3C00F01E01E01F87E00FFFC003FF0000FC0016247BA221>I<07E01FF83FFC381E201E00
0F000F000F000F00FF07FF1FFF3E0F780FF00FF00FF00FF00FF83F7FFF3FEF1F8F10167E
9517>97 D<01FC0007FF000FFF801F03803C0180780000780000700000F00000F00000F0
0000F00000F00000F000007800007800007800003C00401F03C00FFFC007FF8001FC0012
167E9516>99 D<0003C00003C00003C00003C00003C00003C00003C00003C00003C00003
C00003C00003C00003C003E3C00FFBC01FFFC03F0FC03C07C07803C07803C0F003C0F003
C0F003C0F003C0F003C0F003C0F003C0F003C07803C07803C03C07C03E0FC01FFFC00FFB
C003E3C012237EA219>I<03F00007FC001FFE003E0F003C0780780380780380F001C0FF
FFC0FFFFC0FFFFC0F00000F00000F000007000007800007800003C00801F07800FFF8007
FF0001F80012167E9516>I<003F00FF01FF03C003800780078007800780078007800780
0780FFF8FFF8FFF807800780078007800780078007800780078007800780078007800780
07800780078007800780102380A20F>I<01F07807FFF80FFFF81F1F001E0F003C07803C
07803C07803C07803C07801E0F001F1F000FFE001FFC0019F0003800003800003C00001F
FE001FFFC01FFFE03FFFF07801F07800F8F00078F00078F00078F000787800F03E03E01F
FFC00FFF8001FC0015217F9518>I<F0F0F0F0000000000000000000F0F0F0F0F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F004237DA20B>105 D<F0F0F0F0F0F0F0F0F0F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004237DA20B>108
D<F0F807C0F3FE1FF0F7FF3FF8FE0F7078FC0FE07CF807C03CF807C03CF007803CF00780
3CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF00780
3CF007803CF007803CF007803CF007803C1E167C9527>I<F1F8F3FCF7FEFE1EF80FF80F
F00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F10167C95
19>I<01FC0007FF000FFF801F07C03C01E07800F07800F0700070F00078F00078F00078
F00078F00078F000787800F07800F07C01F03E03E01F07C00FFF8007FF0001FC0015167F
9518>I<F1F000F7FC00FFFE00FC3F00F80F00F00780F00780F007C0F003C0F003C0F003
C0F003C0F003C0F003C0F007C0F00780F00F80F80F00FC3E00FFFE00F7F800F1F000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F0000012207C9519>I<03
E3C007FBC00FFFC01F0FC03C07C07C03C07803C0F803C0F003C0F003C0F003C0F003C0F0
03C0F003C0F803C07803C07803C03C07C03F0FC01FFFC00FFBC003E3C00003C00003C000
03C00003C00003C00003C00003C00003C00003C00003C012207E9519>I<F0E0F3E0F7E0
FF00FE00FC00F800F800F000F000F000F000F000F000F000F000F000F000F000F000F000
F0000B167C9511>I<07F01FFC3FFE3C0E7806780078007C003F003FF01FF80FFC01FE00
1F000F000F000FC00FF81EFFFE3FFC0FF010167F9513>I<0F000F000F000F000F000F00
FFF8FFF8FFF80F000F000F000F000F000F000F000F000F000F000F000F000F000F000F08
0F1C07FC07F803E00E1C7F9B12>I<F00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0
0FF00FF00FF00FF00FF00FF00FF01FF83F7FFF7FCF1F0F10167C9519>I<7801F07C01E0
3E03C01E07C00F0780078F0007DE0003FC0001FC0000F80000700000F80001FC0003DC00
039E00078F000F07801E07801E03C03C01E07800F0F800F81516809516>120
D<F001E0F001E07803C07803C07C03C03C07803C07801E07801E07001E0F000F0F000F0E
00070E00079E00039C00039C00039C0001980001D80000F80000F00000F00000F00000E0
0000E00001E00001C00001C0000380007F80007F00007E000013207F9516>I
E /Ff 21 91 df<3078F8787005057C840D>46 D<003F8000C1E00100F0020078040078
0400780F007C0F807C0F807C0F00780600780000F80000F00001E00001C0000380000700
000E00001C0000380000600000C0000180000300200600200800401000403FFFC07FFF80
FFFF80161E7E9D17>50 D<007F000183C00201E00400F00700F00F00F00F01F00F01F000
01E00001E00003C0000380000700000E0000F800000E000007000007800007C00003C000
07C03007C07807C0F807C0F807C0F00780800F00400E00201C0018780007E000141F7D9D
17>I<0000100000001800000038000000380000007800000078000000FC000001BC0000
013C0000033C0000023C0000063C0000043E0000081E0000081E0000101E0000101E0000
201E0000200F0000400F0000400F0000FFFF0000800F0001000F80010007800200078002
00078004000780040007800C0007C03E0007C0FF807FFC1E207E9F22>65
D<0001F808000E061800380138007000F801E0007803C0007007800030078000300F0000
301F0000301E0000303E0000203C0000007C0000007C0000007C0000007C000000F80000
00F8000000F8000000F8000000F80000007800004078000080780000803C0000803C0001
001C0002000E00020006000C000300100001C0E000003F00001D217B9F21>67
D<07FFFF00007C01E0003C00F0003C00780078003C0078003C0078001E0078001E007800
1E0078001F00F0001F00F0001F00F0001F00F0001F00F0001F00F0001F01E0001E01E000
3E01E0003E01E0003E01E0003C01E0007C03C0007803C000F003C000F003C001E003C003
C003C0078007800F0007803C00FFFFE000201F7E9E23>I<07FFFFF8007C0078003C0038
003C001800780018007800080078000800780008007800080078080800F0100000F01000
00F0100000F0300000FFF00000F0700001E0200001E0200001E0200001E0200001E00008
01E0001003C0001003C0001003C0002003C0002003C0006003C000C0078001C0078007C0
FFFFFF801D1F7E9E1F>I<07FFFFF8007C0078003C0038003C0018007800180078000800
78000800780008007800080078000800F0100000F0100000F0100000F0300000F0700000
FFF00001E0600001E0200001E0200001E0200001E0200001E0000003C0000003C0000003
C0000003C0000003C0000003C000000780000007C00000FFFE00001D1F7E9E1E>I<0001
FC04000F030C003C009C0070007C00E0003C01C0003803800018078000180F0000181F00
00181E0000183E0000103C0000007C0000007C0000007C0000007C000000F8000000F800
0000F8007FFCF80003E0780001E0780001E0780003C0780003C03C0003C03C0003C01C00
03C00E0007C007000B800380118001E06080003F80001E217B9F24>I<07FFC7FFC0007C
00F800003C007800003C007800007800F000007800F000007800F000007800F000007800
F000007800F00000F001E00000F001E00000F001E00000F001E00000FFFFE00000F001E0
0001E003C00001E003C00001E003C00001E003C00001E003C00001E003C00003C0078000
03C007800003C007800003C007800003C007800003C007800007800F000007C00F8000FF
F8FFF800221F7E9E22>I<07FFE0007C00003C00003C0000780000780000780000780000
780000780000F00000F00000F00000F00000F00000F00001E00001E00001E00001E00001
E00001E00003C00003C00003C00003C00003C00003C00007800007C000FFFC00131F7F9E
10>I<07FFF000007E0000003C0000003C00000078000000780000007800000078000000
7800000078000000F0000000F0000000F0000000F0000000F0000000F0000001E0000001
E0000001E0000001E0000001E0008001E0010003C0010003C0010003C0030003C0020003
C0060003C0060007801E0007807C00FFFFFC00191F7E9E1C>76 D<07FC01FFC0003E003E
00003E001800003E001800004F001000004F001000004780100000478010000043C01000
0043C010000083C020000081E020000081E020000080F020000080F02000008078200001
0078400001007C400001003C400001003C400001001E400001001E400002000F80000200
0F800002000F800002000780000200078000060003800006000300000F00010000FFE001
0000221F7E9E22>78 D<07FFFF00007C03C0003C01E0003C00F0007800F0007800F80078
00F8007800F8007800F8007800F000F001F000F001E000F003C000F0078000F00F0000FF
F80001E0000001E0000001E0000001E0000001E0000001E0000003C0000003C0000003C0
000003C0000003C0000003C000000780000007C00000FFFC00001D1F7E9E1F>80
D<0003F800001E0E000038070000F0038001E001C003C001E0078001E00F0000F00F0000
F01F0000F01E0000F83E0000F83C0000F87C0000F87C0000F87C0000F87C0000F8F80001
F0F80001F0F80001F0F80001F0F80003E0780003E0780003C0780007C0781E07803C210F
003C409E001E409C000E80B8000740F00003C1C04000FEC0400000C0400000C0800000E1
800000FF800000FF000000FF0000007E0000003C001D297B9F23>I<07FFFC00007C0700
003C03C0003C01E0007801E0007801F0007801F0007801F0007801F0007801E000F003E0
00F003C000F0078000F00F0000F03C0000FFF00001E0300001E0380001E01C0001E01C00
01E01C0001E01E0003C03E0003C03E0003C03E0003C03E0003C03E0003C03E0207803E04
07C01F04FFFC0F18000003E01F207E9E21>I<003F040060CC01803C03801C03001C0700
180600080E00080E00080E00080E00000F00000F80000FE00007FE0003FF8001FFC0007F
E00007E00001E00000E00000F00000F04000E04000E04000E04000E06000C0600180E003
80F80300C60C0081F80016217D9F19>I<3FFFFFF03C0780F03007803060078030400F00
10400F0010C00F0010800F0010800F0010800F0010001E0000001E0000001E0000001E00
00001E0000001E0000003C0000003C0000003C0000003C0000003C0000003C0000007800
00007800000078000000780000007800000078000000F0000001F800007FFFE0001C1F7A
9E21>I<FFFC3FF80F8007C007800300078003000F0002000F0002000F0002000F000200
0F0002000F0002001E0004001E0004001E0004001E0004001E0004001E0004003C000800
3C0008003C0008003C0008003C0008003C00080038001000380010003800100038002000
3C0040001C0040001C0080000E0100000706000001F800001D20799E22>I<03FFC0FFC0
007F007E00003E003800001E003000001E002000000F004000000F008000000F81000000
078200000007C600000003C400000003E800000001F000000001F000000000F000000000
F800000000F8000000017C000000023C000000043C0000000C1E000000081E000000101F
000000200F000000400F800000C0078000008007C000010003C000070003E0001F8007E0
00FFE01FFE00221F7F9E22>88 D<03FFFFC003E007800380078007000F0006001E000400
3C000C003C00080078000800F0000801F0000001E0000003C0000007800000078000000F
0000001E0000003C0000003C00000078000000F0010001E0010001E0020003C002000780
02000F8006000F0004001E000C003C001C007C003C007800F800FFFFF8001A1F7D9E1C>
90 D E /Fg 1 16 df<07E01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFFFFFFFFFF7FFE7FFE
3FFC1FF807E010107E9115>15 D E /Fh 31 118 df<E0E0E060404040C003087C820C>
44 D<001C0000003E0000003E0000002E0000006700000067000000E7800000C7800000
C3800001C3C0000183C0000181C0000381E0000381E0000700F0000700F0000600F0000E
0078000FFFF8000FFFF8001C003C001C003C0018003C0038001E0038001E0070001F0070
000F0070000F00E0000780191D7F9C1C>65 D<003FC000FFF003C0F00780300F00001E00
003C00003C0000780000780000780000F00000F00000F00000F00000F00000F00000F000
00F00000F000007800007800007800003C00003C00001E00000F000807801803C07800FF
F0003F80151F7D9D1B>67 D<FFFC00FFFF00F00F80F003E0F001F0F000F0F00078F00038
F0003CF0003CF0001CF0001EF0001EF0001EF0001EF0001EF0001EF0001EF0001EF0003C
F0003CF0003CF00078F000F0F000F0F003E0F00FC0FFFF00FFFC00171D7C9C1E>I<FFFF
C0FFFFC0F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00FFFF80FFFF80F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000FFFFC0FFFFC0121D7C9C19>I<FFFF80FFFF80F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000FFFF00FFFF00F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000011
1D7C9C18>I<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004
1D7C9C0C>73 D<F000F000F000F000F000F000F000F000F000F000F000F000F000F000F0
00F000F000F000F000F000F000F000F000F000F000F000F000FFFEFFFE0F1D7C9C16>76
D<FC0007E0FC0007E0FC0007E0EE000DE0EE000DE0EE000DE0E70019E0E70019E0E70019
E0E78039E0E38031E0E3C071E0E3C071E0E1C061E0E1C061E0E1E0E1E0E1E0E1E0E0E0C1
E0E0F1C1E0E07181E0E07181E0E07181E0E03B01E0E03B01E0E03B01E0E01E01E0E01E01
E0E01E01E0E00001E01B1D7C9C24>I<FC0070FC0070FE0070EE0070EF0070E70070E700
70E78070E38070E3C070E3C070E1E070E1E070E0E070E0F070E07070E07870E07870E03C
70E03C70E01C70E01E70E00E70E00E70E00F70E00770E007F0E003F0E003F0141D7C9C1D
>I<FFFC00FFFF00F00F80F003C0F001E0F000F0F000F0F000F0F000F0F000F0F000F0F0
01E0F003E0F00FC0FFFF80FFFE00F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000141D7C9C1B>80 D<003F000001FFE00003FFF0
0007C0F8000F807C001F003E003E001F003C000F00780007807800078078000780F00003
C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0780007
8078000780780E07803C0F0F003E079F001E03DE000F83FC0007C1F80003FFF00001FFF8
00003F780000003C0000003E0000001F0000000F801A237E9D1F>I<FFF800FFFF00F00F
80F003C0F001E0F000F0F000F0F000F0F000F0F000F0F001E0F003E0F00FC0FFFF80FFFF
00FFF800F03C00F01C00F01E00F00F00F00F00F00780F00780F003C0F003C0F001E0F000
F0F000F0F00078151D7C9C1B>I<03F8000FFE001C0F00380700700300600000E00000E0
0000E00000E00000F000007800007F00003FE0001FFC0007FE0001FF00001F8000078000
03C00003C00001C00001C00001C00001C0C00180E00380F007007C0E001FFC0007F00012
1F7E9D17>I<FFFFFF80FFFFFF80001E0000001E0000001E0000001E0000001E0000001E
0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E
0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E
0000001E0000001E0000001E0000191D7F9C1C>I<F00070F00070F00070F00070F00070
F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070
F00070F00070F00070F00070F00070F000707800E07800E03C01C01E03800F078007FE00
01F800141E7C9C1D>I<F000F00070F000F80070F000F800707800B8006078019C00E078
019C00E078019C00E03C039C01C03C031E01C03C030E01C01E030E01801E070F03801E07
0F03801E060703800F060703000F0E0787000F0C078700070C038600070C038600078C03
8E00079803CE00039801CC00039801CC00039801CC0001D001C80001D000D80001F000F8
0001E000F80000E0007000241D7F9C27>87 D<0FC03FF07FF87038401C001C001C00FC0F
FC3FFC781CE01CE01CE01CF07C7FFC7FDC3F1C0E127E9114>97 D<E000E000E000E000E0
00E000E000E000E000E000E000E3E0EFF0FFF8F87CF01CE01EE00EE00EE00EE00EE00EE0
0EE01CF01CF87CFFF8EFF0E3C00F1D7D9C15>I<07E00FF81FFC3C1C70047000E000E000
E000E000E000E000700070043C1C1FFC0FF807E00E127E9112>I<07C01FE03FF0787870
18601CFFFCFFFCFFFCE000E000E000700070043C1C3FFC1FF807E00E127E9112>101
D<00FC01FC03FC07000E000E000E000E000E000E000E00FFE0FFE00E000E000E000E000E
000E000E000E000E000E000E000E000E000E000E000E000E1D809C0D>I<F0F0F0F00000
0000000000707070707070707070707070707070707070041D7E9C0A>105
D<E3F03F00EFF8FF80FFFDFFC0F81F81E0F00F00E0E00E00E0E00E00E0E00E00E0E00E00
E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00
E01B127D9122>109 D<E3E0EFF0FFF8F83CF01CE01CE01CE01CE01CE01CE01CE01CE01C
E01CE01CE01CE01CE01C0E127D9115>I<03F0000FFC001FFE003C0F00780780700380E0
01C0E001C0E001C0E001C0E001C0F003C07003807807803C0F001FFE000FFC0003F00012
127F9115>I<078E1FEE3FFE7C3E781E700EE00EE00EE00EE00EE00EE00EF00E701E7C3E
3FFE1FEE0F8E000E000E000E000E000E000E000E000E0F1A7E9115>113
D<E380E780EF80FC00F800F000F000E000E000E000E000E000E000E000E000E000E000E0
0009127D910E>I<1FC03FF07FF0F030E000E000F0007F003FC01FE000F0003800388038
F078FFF07FE01FC00D127F9110>I<1C001C001C001C001C001C00FFE0FFE01C001C001C
001C001C001C001C001C001C001C001C001C001C201FF00FF007C00C187F970F>I<E01C
E01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE07CFFFC7FDC3F1C0E12
7D9115>I E /Fi 56 123 df<007E1F0001C1B1800303E3C00703C3C00E03C1800E01C0
000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC000E01C0000E01C0000E01C0
000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0
000E01C0000E01C0000E01C0000E01C0007F87FC001A1D809C18>11
D<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E00000E0000FFFF
C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
C00E01C00E01C00E01C00E01C07F87F8151D809C17>I<003F07E00001C09C18000380F0
18000701F03C000E01E03C000E00E018000E00E000000E00E000000E00E000000E00E000
000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C00
0E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E
00E01C000E00E01C000E00E01C000E00E01C007FC7FCFF80211D809C23>14
D<004000800100020006000C000C0018001800300030007000600060006000E000E000E0
00E000E000E000E000E000E000E000E000E000600060006000700030003000180018000C
000C00060002000100008000400A2A7D9E10>40 D<800040002000100018000C000C0006
00060003000300038001800180018001C001C001C001C001C001C001C001C001C001C001
C001C0018001800180038003000300060006000C000C00180010002000400080000A2A7E
9E10>I<60F0F0701010101020204080040C7C830C>44 D<FFE0FFE00B0280890E>I<60F0
F06004047C830C>I<00030003000700060006000E000C001C0018001800380030003000
700060006000E000C000C001C001800380030003000700060006000E000C000C001C0018
00180038003000700060006000E000C000C00010297E9E15>I<60F0F060000000000000
0000000060F0F06004127C910C>58 D<60F0F0600000000000000000000060F0F0701010
101020204080041A7C910C>I<0FE03038401CE00EF00EF00EF00E000C001C0030006000
C0008001800100010001000100010001000000000000000000000003000780078003000F
1D7E9C14>63 D<000600000006000000060000000F0000000F0000000F00000017800000
178000001780000023C0000023C0000023C0000041E0000041E0000041E0000080F00000
80F0000180F8000100780001FFF80003007C0002003C0002003C0006003E0004001E0004
001E000C001F001E001F00FF80FFF01C1D7F9C1F>65 D<FFFFC00F00F00F00380F003C0F
001C0F001E0F001E0F001E0F001E0F001C0F003C0F00780F01F00FFFE00F00780F003C0F
001E0F000E0F000F0F000F0F000F0F000F0F000F0F001E0F001E0F003C0F0078FFFFE018
1C7E9B1D>I<001F808000E0618001801980070007800E0003801C0003801C0001803800
0180780000807800008070000080F0000000F0000000F0000000F0000000F0000000F000
0000F0000000F0000000700000807800008078000080380000801C0001001C0001000E00
0200070004000180080000E03000001FC000191E7E9C1E>I<FFFFFC0F003C0F000C0F00
040F00040F00060F00020F00020F02020F02000F02000F02000F06000FFE000F06000F02
000F02000F02000F02010F00010F00020F00020F00020F00060F00060F000C0F003CFFFF
FC181C7E9B1C>69 D<FFFFF80F00780F00180F00080F00080F000C0F00040F00040F0204
0F02000F02000F02000F06000FFE000F06000F02000F02000F02000F02000F00000F0000
0F00000F00000F00000F00000F00000F8000FFF800161C7E9B1B>I<FFF3FFC00F003C00
0F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C00
0F003C000F003C000FFFFC000F003C000F003C000F003C000F003C000F003C000F003C00
0F003C000F003C000F003C000F003C000F003C000F003C000F003C00FFF3FFC01A1C7E9B
1F>72 D<FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00
0F000F000F000F000F000F000F000F000F000F000F00FFF00C1C7F9B0F>I<FF8000FF80
0F8000F8000F8000F8000BC00178000BC00178000BC001780009E002780009E002780008
F004780008F004780008F0047800087808780008780878000878087800083C107800083C
107800083C107800081E207800081E207800081E207800080F407800080F407800080780
78000807807800080780780008030078001C03007800FF8307FF80211C7E9B26>77
D<FF007FC00F800E000F8004000BC0040009E0040009E0040008F0040008F80400087804
00083C0400083C0400081E0400080F0400080F0400080784000807C4000803C4000801E4
000801E4000800F40008007C0008007C0008003C0008003C0008001C0008000C001C000C
00FF8004001A1C7E9B1F>I<003F800000E0E0000380380007001C000E000E001C000700
3C00078038000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0
F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0380003803C000780
1C0007000E000E0007001C000380380000E0E000003F80001B1E7E9C20>I<FFFF800F00
E00F00780F003C0F001C0F001E0F001E0F001E0F001E0F001E0F001C0F003C0F00780F00
E00FFF800F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00
000F0000FFF000171C7E9B1C>I<003F800000E0E0000380380007001C000E000E001C00
07003C00078038000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F000
01E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0380003803C0E
07801C1107000E208E0007205C0003A0780000F0E020003FE02000006020000030600000
38E000003FC000003FC000001F8000000F001B257E9C20>I<FFFF00000F01E0000F0078
000F003C000F001C000F001E000F001E000F001E000F001E000F001C000F003C000F0078
000F01E0000FFF00000F03C0000F00E0000F00F0000F0078000F0078000F0078000F0078
000F0078000F0078000F0078100F0078100F0038100F003C20FFF01C20000007C01C1D7E
9B1F>I<07E0801C1980300580700380600180E00180E00080E00080E00080F00000F800
007C00007FC0003FF8001FFE0007FF0000FF80000F800007C00003C00001C08001C08001
C08001C0C00180C00180E00300D00200CC0C0083F800121E7E9C17>I<7FFFFFC0700F01
C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F0020000F0000000F00
00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00
00000F0000000F0000000F0000000F0000000F0000000F0000001F800003FFFC001B1C7F
9B1E>I<FFF07FC00F000E000F0004000F0004000F0004000F0004000F0004000F000400
0F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F000400
0F0004000F0004000F0004000F0004000F00040007000800078008000380100001801000
00C020000070C000001F00001A1D7E9B1F>I<FFE0FFE0FF1F001F003C1E001E00180F00
1F00100F001F00100F001F001007801F00200780278020078027802003C027804003C043
C04003C043C04003E043C04001E081E08001E081E08001E081E08000F100F10000F100F1
0000F100F100007900FA00007A007A00007A007A00003E007C00003C003C00003C003C00
003C003C00001800180000180018000018001800281D7F9B2B>87
D<FFF007FC0F8001E00780008007C0018003C0010003E0020001F0020000F0040000F804
0000780800007C1800003C1000001E2000001F2000000F4000000FC00000078000000780
000007800000078000000780000007800000078000000780000007800000078000000780
00007FF8001E1C809B1F>89 D<1FC000307000783800781C00301C00001C00001C0001FC
000F1C00381C00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115
>97 D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0000
1C7C001D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E0
1C00C01C01C01C01801E030019060010F800131D7F9C17>I<07E00C3018783078703060
00E000E000E000E000E000E00060007004300418080C3007C00E127E9112>I<003F0000
070000070000070000070000070000070000070000070000070000070003E7000C170018
0F00300700700700600700E00700E00700E00700E00700E00700E0070060070070070030
0700180F000C370007C7E0131D7E9C17>I<03E00C301818300C700E6006E006FFFEE000
E000E000E00060007002300218040C1803E00F127F9112>I<00F8018C071E061E0E0C0E
000E000E000E000E000E00FFE00E000E000E000E000E000E000E000E000E000E000E000E
000E000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C3880181800381C00
381C00381C00381C001818001C38000C300013C0001000003000001800001FF8001FFF00
1FFF803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215>
I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C
001C87001D03001E03801C03801C03801C03801C03801C03801C03801C03801C03801C03
801C03801C03801C03801C0380FF9FF0141D7F9C17>I<18003C003C0018000000000000
000000000000000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C
001C001C001C00FF80091D7F9C0C>I<00C001E001E000C0000000000000000000000000
00000FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E060E0F0C0F1C061803E000B25839C0D>I<FC00001C00001C00001C00
001C00001C00001C00001C00001C00001C00001C00001C3FC01C0F001C0C001C08001C10
001C20001C40001CE0001DE0001E70001C78001C38001C3C001C1C001C0E001C0F001C0F
80FF9FE0131D7F9C16>I<FC001C001C001C001C001C001C001C001C001C001C001C001C
001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D7F
9C0C>I<FC7E07E0001C838838001D019018001E01E01C001C01C01C001C01C01C001C01
C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C0
1C001C01C01C001C01C01C001C01C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D
03001E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
03801C03801C0380FF9FF014127F9117>I<03F0000E1C00180600300300700380600180
E001C0E001C0E001C0E001C0E001C0E001C06001807003803003001806000E1C0003F000
12127F9115>I<FC7C001D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00
E01C00E01C00E01C01C01C01C01C01801E03001D06001CF8001C00001C00001C00001C00
001C00001C00001C0000FF8000131A7F9117>I<03C1000C3300180B00300F0070070070
0700E00700E00700E00700E00700E00700E00700600700700700300F00180F000C370007
C700000700000700000700000700000700000700000700003FE0131A7E9116>I<FCE01D
301E781E781C301C001C001C001C001C001C001C001C001C001C001C001C00FFC00D127F
9110>I<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018C018E010
D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C001C
001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>I<FC1F
801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03
801C03801C07800C07800E1B8003E3F014127F9117>I<FF07E03C03801C01001C01000E
02000E020007040007040007040003880003880003D80001D00001D00000E00000E00000
E00000400013127F9116>I<FF3FCFE03C0F03801C0701801C0701001C0B01000E0B8200
0E0B82000E1182000711C4000711C4000720C40003A0E80003A0E80003C0680001C07000
01C0700001803000008020001B127F911E>I<7F8FF00F03800F030007020003840001C8
0001D80000F00000700000780000F800009C00010E00020E000607000403801E07C0FF0F
F81512809116>I<FF07E03C03801C01001C01000E02000E020007040007040007040003
880003880003D80001D00001D00000E00000E00000E000004000004000008000008000F0
8000F10000F300006600003C0000131A7F9116>I<7FFC70386038407040F040E041C003
C0038007000F040E041C043C0C380870087038FFF80E127F9112>I
E /Fj 10 118 df<78FCFCFCFC7800000000000078FCFCFCFC7806127D910D>58
D<FFFFF800FFFFFF000FC01FC00FC007E00FC001F00FC001F80FC000F80FC000FC0FC000
7C0FC0007C0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC000
7E0FC0007C0FC0007C0FC0007C0FC000F80FC000F80FC001F00FC007E00FC01FC0FFFFFF
00FFFFF8001F1C7E9B25>68 D<FFC00003FFFFE00007FF0FE00007F00DF0000DF00DF000
0DF00DF0000DF00CF80019F00CF80019F00C7C0031F00C7C0031F00C3E0061F00C3E0061
F00C1F00C1F00C1F00C1F00C1F00C1F00C0F8181F00C0F8181F00C07C301F00C07C301F0
0C03E601F00C03E601F00C01FC01F00C01FC01F00C01FC01F00C00F801F00C00F801F0FF
C0701FFFFFC0701FFF281C7E9B2D>77 D<03FC000E0E001C1F003C1F00781F00780E00F8
0000F80000F80000F80000F80000F800007800007801803C01801C03000E0E0003F80011
127E9115>99 D<03F8F00E0F381E0F381C07303C07803C07803C07803C07801C07001E0F
000E0E001BF8001000001800001800001FFF001FFFC00FFFE01FFFF07801F8F00078F000
78F000787000707800F01E03C007FF00151B7F9118>103 D<1E003F003F003F003F001E
00000000000000000000000000FF00FF001F001F001F001F001F001F001F001F001F001F
001F001F001F001F00FFE0FFE00B1E7F9D0E>105 D<FF0FC0FF31E01F40F01F80F81F80
F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8FFE7
FFFFE7FF18127F911B>110 D<01FC000F07801C01C03C01E07800F07800F0F800F8F800
F8F800F8F800F8F800F8F800F87800F07800F03C01E01E03C00F078001FC0015127F9118
>I<1FD830786018E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830
CFC00E127E9113>115 D<FF07F8FF07F81F00F81F00F81F00F81F00F81F00F81F00F81F
00F81F00F81F00F81F00F81F00F81F00F81F01F80F01F80786FF01F8FF18127F911B>
117 D E /Fk 43 122 df<007000E001C00380078007000E001E001E003C003C003C0078
007800780078007000F000F000F000F000F000F000F000F000F000F000F000F000700078
007800780078003C003C003C001E001E000E0007000780038001C000E000700C2E7EA112
>40 D<E000700038001C001E000E0007000780078003C003C003C001E001E001E001E000
E000F000F000F000F000F000F000F000F000F000F000F000F000E001E001E001E001E003
C003C003C00780078007000E001E001C0038007000E0000C2E7DA112>I<787878781830
306060E0050A7D830D>44 D<FFC0FFC0FFC00A037F8B0F>I<07F0000FFC001FFE00383F
00700F00600780E00780E003C04003C04003C00003C00003C00003C0000780000780000F
00000E00001C00003C0000780000E00001C0000380000700000E00001C00003800007000
00FFFFC0FFFFC0FFFFC0121F7E9E17>50 D<001F0000001F0000003F8000003B8000003B
8000007BC0000073C0000071C00000F1E00000E1E00000E0E00001E0F00001E0F00001C0
F00003C0780003C078000380780007803C0007803C0007003C000FFFFE000FFFFE000FFF
FE001E000F001E000F003C000F803C0007803C000780780007C0780003C0780003C0F000
03E01B207F9F1E>65 D<001FC000FFF801FFFC03E03C07800C0F00001E00003E00003C00
007C0000780000780000780000F00000F00000F00000F00000F00000F00000F00000F000
007800007800007800007C00003C00003E00001E00000F000207800E03E03E01FFFC00FF
F0001FC017227DA01D>67 D<FFFFC0FFFFC0FFFFC0F00000F00000F00000F00000F00000
F00000F00000F00000F00000F00000F00000FFFF80FFFF80FFFF80F00000F00000F00000
F00000F00000F00000F00000F00000F00000F00000F00000F00000FFFFE0FFFFE0FFFFE0
13207B9F1B>69 D<FFFFC0FFFFC0FFFFC0F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000FFFF00FFFF00FFFF00F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000012207B9F
1A>I<001FE000FFF801FFFE03E03E07800E0F00001E00003E00003C00007C0000780000
780000780000F00000F00000F00000F00000F00000F00000F003FEF003FE7803FE78001E
78001E7C001E3C001E3E001E1E001E0F001E07801E03E03E01FFFE00FFF8001FC017227D
A01E>I<F00078F00078F00078F00078F00078F00078F00078F00078F00078F00078F000
78F00078F00078F00078FFFFF8FFFFF8FFFFF8F00078F00078F00078F00078F00078F000
78F00078F00078F00078F00078F00078F00078F00078F00078F0007815207B9F20>I<F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004207C9F0D
>I<F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000FFFF80FFFF80FFFF8011207B9F19>76
D<F80001F8FC0003F8FC0003F8F4000378F6000778F6000778F6000778F3000E78F3000E
78F3000E78F3801E78F3801E78F1801C78F1C03C78F1C03C78F0C03878F0C03878F0E078
78F0E07878F0607078F070F078F070F078F030E078F039E078F039E078F019C078F019C0
78F019C078F00F8078F00F8078F00F8078F00000781D207B9F28>I<FC0078FE0078FE00
78F60078F70078F70078F38078F38078F38078F3C078F1C078F1E078F1E078F0E078F0F0
78F07078F07078F07878F03878F03C78F03C78F01C78F01E78F00E78F00E78F00E78F007
78F00778F00378F003F8F003F8F001F815207B9F20>I<003F000000FFC00003FFF00007
E1F8000F807C001F003E001E001E003C000F003C000F00780007807800078078000780F0
0003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F8
0007C07800078078000780780007803C000F003C000F001E001E001F003E000F807C0007
E1F80003FFF00000FFC000003F00001A227DA021>I<FFF800FFFF00FFFF80F00FC0F003
E0F001E0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F001E0F003E0F00FC0FFFF
80FFFF00FFF800F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F0000014207B9F1D>I<003F000000FFC00003FFF00007E1F8000F807C
001F003E001E001E003C000F003C000F00780007807800078078000780F00003C0F00003
C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0780007
8078000780781E07803C0F0F003C0F8F001E079E001F03FE000F83FC0007E1F80003FFF0
0000FFF800003F780000007C0000003E0000001E0000001F0000000F801A277DA021>I<
FFF800FFFF00FFFF80F007C0F003E0F001E0F000F0F000F0F000F0F000F0F000F0F001E0
F003E0F007C0FFFF80FFFF00FFF800F03C00F01E00F01E00F00F00F00F00F00780F00780
F003C0F001C0F001E0F000F0F000F0F00078F00078F0003C16207B9F1D>I<01FC0007FF
800FFFC01F03C03C00C03C00007800007800007800007800007800007C00003C00003F00
001FE0000FFC0007FE0001FF00003F800007C00003C00003E00001E00001E00001E00001
E00001E00001C0C003C0F007C0FC0F807FFF001FFE0003F80013227EA019>I<FFFFFFC0
FFFFFFC0FFFFFFC0001E0000001E0000001E0000001E0000001E0000001E0000001E0000
001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000
001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000
001E0000001E0000001E0000001E00001A207E9F1F>I<F000F0F000F0F000F0F000F0F0
00F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F0
00F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F07801E07801E03C03C03C
03C01F0F800FFF0007FE0001F80014217B9F1F>I<F00001E0F00001E0780003C0780003
C0780003C03C0007803C0007803C0007801E000F001E000F001F000F000F001E000F001E
0007801C0007803C0007803C0003C0380003C0780003C0780001E0700001E0F00001E0F0
0000F0E00000F1E00000F1E0000071C000007BC000003B8000003B8000003F8000001F00
00001F00001B207F9F1E>I<F0007C000FF0007E000FF0007E000F78006E000E7800EE00
1E7800E7001E7800E7001E3C00E7003C3C01E7803C3C01C7803C3C01C3803C1E01C38078
1E03C3C0781E0383C0780E0381C0700F0381C0F00F0781E0F00F0701E0F0070700E0E007
8700E1E0078F00E1E0078E00F1E0038E0071C0038E0071C003CE0073C001DC00738001DC
003B8001DC003B8001DC003B8000F8003F0000F8001F0000F8001F0028207F9F2B>I<F8
0000F87C0001F03C0001E03E0003E01F0003C00F0007800F800F8007C00F0003C01F0003
E01E0001F03C0000F07C00007878000078F000003CF000001CE000001FE000000FC00000
078000000780000007800000078000000780000007800000078000000780000007800000
078000000780000007800000078000000780001D20809F1E>89 D<07E03FF87FFC701E40
1F000F000F000F003F07FF1FFF7E0FF80FF00FF00FF00FF83F7FFF3FEF1F8F10147E9316
>97 D<03F00FFC1FFE3E0E3C0278007800F000F000F000F000F000F000780078003C013E
0F1FFF0FFE03F010147E9314>99 D<000780000780000780000780000780000780000780
00078000078000078000078000078007C7800FF7801FFF803E1F807C0780780780F80780
F00780F00780F00780F00780F00780F00780F00780780780780F803E1F801FFF800FF780
07C78011207E9F17>I<03F0000FFC001FFE003E1F003C0700780700700380FFFF80FFFF
80FFFF80F00000F00000F000007000007800003C01003E07001FFF0007FE0001F8001114
7F9314>I<007E01FE03FE078007000F000F000F000F000F000F000F00FFF0FFF0FFF00F
000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F2080
9F0E>I<F0F0F0F00000000000000000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
04207D9F0B>105 D<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
F0F0F0F0F004207D9F0B>108 D<F0FC07E0F3FE1FF0F7FF3FF8FE0FF07CF807C03CF807
C03CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007
803CF007803CF007803CF007803CF007803CF007803C1E147D9325>I<F1F8F3FCF7FEFC
1FF80FF80FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F10147D
9317>I<01F80007FE001FFF803F0FC03C03C07801E07801E0F000F0F000F0F000F0F000
F0F000F0F000F07801E07801E03C03C03F0FC01FFF8007FE0001F80014147F9317>I<F1
F000F7FC00FFFE00FC3E00F81F00F00F00F00F80F00780F00780F00780F00780F00780F0
0780F00F00F00F00F81F00FC3E00FFFC00F7F800F1E000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000111D7D9317>I<03C7800FF7801FFF803E1F807C0F80
780780780780F00780F00780F00780F00780F00780F00780F807807807807C0F803E1F80
1FFF800FF78007C780000780000780000780000780000780000780000780000780000780
111D7E9317>I<F0E0F3E0F7E0FF00FC00FC00F800F800F000F000F000F000F000F000F0
00F000F000F000F000F0000B147D9310>I<07F01FFC3FFC780C7800780078007C003FC0
1FF00FF803F8007C003C003CC03CF07CFFF87FF00FC00E147F9311>I<1E001E001E001E
001E001E00FFF0FFF0FFF01E001E001E001E001E001E001E001E001E001E001E001E001E
001E201FF00FF007C00C1A7F9910>I<F00FF00FF00FF00FF00FF00FF00FF00FF00FF00F
F00FF00FF00FF00FF00FF01FF03FFFFF7FEF3F0F10147D9317>I<7801E07C03C03E0780
1E0F000F0F00079E0003FC0003F80001F80000F00001F00001F80003FC00079E000F0F00
0E0F001E07803C03C07801E0F801F01414809315>120 D<F003C0F003C0780780780780
7C07803C0F003C0F001E0F001E1E000E1E000F1C000F1C00073C0007380003B80003B800
03B00001B00001F00000E00000E00001C00001C00001C0000380000780007F00007E0000
7C0000121D7F9315>I E /Fl 21 123 df<F8F8F8F8F805057A8411>46
D<00180000380000F80007F800FFF800FFF800F8F80000F80000F80000F80000F80000F8
0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8
0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8
0000F8007FFFF07FFFF07FFFF014287BA71E>49 D<00FE0003FFC007FFE00FFFF01F03F8
3C00FC38007E78003E70003EF0001FF0001F60001F20001F00001F00001F00001F00003E
00003E00007C00007C0000F80001F00001E00003C0000780000F00001E00003C00007800
00F00001E00003C0000780000F00001E00003C00007FFFFF7FFFFF7FFFFF7FFFFF18287E
A71E>I<007F000001FFC00007FFF0000FFFF8001FC1F8003E007C003C003E0078003E00
38003E0010003E0000003E0000003E0000003C0000007C000000FC000001F8000007F000
00FFE00000FFC00000FFE00000FFF0000001FC0000007C0000003E0000001F0000001F00
00000F8000000F8000000F8000000F8000000F8040000F8060001F00F0001F00F8003F00
7E007E003F81FC001FFFF8000FFFF00003FFE000007F000019297EA71E>I<0001FF0000
0FFFE0003FFFFC007FFFFE00FF01FE01F8003E03F0000C07C000000FC000001F8000001F
0000003F0000003E0000007E0000007C0000007C0000007C000000F8000000F8000000F8
000000F8000000F8000000F8000000F8000000F8001FFEF8001FFEF8001FFE7C001FFE7C
00003E7C00003E7E00003E3E00003E3F00003E1F00003E1F80003E0FC0003E07C0003E03
F0003E01F8003E00FF00FE007FFFFE003FFFFC000FFFE00001FF001F2C7CAA28>71
D<F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
F8F8F8F8F8F8F8052A7AA911>73 D<FFFFE000FFFFFC00FFFFFF00F8003FC0F80007E0F8
0001F0F80000F8F80000F8F800007CF800007CF800007CF800007CF800007CF800007CF8
0000F8F80000F8F80001F0F80007F0F8003FE0FFFFFF80FFFFFF00FFFFFC00FFFFF000F8
01F000F800F800F8007800F8007C00F8003C00F8003E00F8001F00F8001F00F8000F80F8
000780F80007C0F80003E0F80003E0F80001F0F80001F0F80000F8F800007CF800007CF8
00003E1F2A7BA927>82 D<01FE000FFF803FFFC03FFFE03C03F03001F00001F80000F800
00F80000F80000F80000F8007FF807FFF81FFFF83FE0F87F00F8FC00F8F800F8F800F8F8
00F8FC01F87E07F87FFFF83FFFF81FFCF80FE0F8151B7E9A1D>97
D<007FC001FFF007FFFC0FFFFC1FC07C1F00083E00007C00007C00007C0000F80000F800
00F80000F80000F80000F80000F800007C00007C00007E00003E00001F000C1FC07C0FFF
FC07FFFC01FFF0007F80161B7E9A1B>99 D<00003E00003E00003E00003E00003E00003E
00003E00003E00003E00003E00003E00003E00003E00003E00003E00FC3E03FF3E07FFFE
0FFFFE1FC1FE3F007E3E003E7C003E7C003EFC003EF8003EF8003EF8003EF8003EF8003E
F8003EF8003EFC003E7C003E7C003E3E007E3F00FE1FC1FE0FFFFE07FFBE03FF3E00FC3E
172A7EA91F>I<007E0003FF8007FFC00FFFE01F83F03F00F03E00787C00787C00387800
3CFFFFFCFFFFFCFFFFFCFFFFFCF80000F80000F800007800007C00007C00003E00003F00
0C1FC07C0FFFFC07FFFC01FFF0007F80161B7E9A1B>I<F8F8F8F8F80000000000000000
0000F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8052A7CA90E>
105 D<F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
F8F8F8F8F8F8F8F8F8052A7CA90E>108 D<F83F00F8FF80FBFFC0FFFFE0FF07E0FE03F0
FC01F0FC01F0FC01F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0
F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0141B7B9A1F>110
D<007F000001FFC00007FFF0000FFFF8001FC1FC003F007E003E003E007C001F007C001F
0078000F00F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F807C001F
007C001F007E003F003E003E003F007E001FC1FC000FFFF80007FFF00001FFC000007F00
00191B7E9A1E>I<00FC3E03FF3E07FFBE0FFFFE1FC1FE3F80FE3E007E7E003E7C003E7C
003EF8003EF8003EF8003EF8003EF8003EF8003EF8003EFC003E7C003E7E003E3E007E3F
00FE1FC1FE1FFFFE0FFFBE03FF3E01F83E00003E00003E00003E00003E00003E00003E00
003E00003E00003E00003E00003E00003E17277E9A1F>113 D<F838F8F8F9F8FBF8FFC0
FF00FE00FE00FC00FC00F800F800F800F800F800F800F800F800F800F800F800F800F800
F800F800F800F8000D1B7B9A14>I<03FC001FFF803FFFC07FFFC07C07C0F80080F80000
F80000F80000FC00007F80007FF8003FFE001FFF0007FF8000FFC0000FE00007E00003E0
0003E04003E0E007E0FC0FC0FFFFC07FFF801FFE0003F800131B7E9A17>I<07C00007C0
0007C00007C00007C00007C00007C000FFFFC0FFFFC0FFFFC007C00007C00007C00007C0
0007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0
0007C00007C00007C04007E1C003FFE003FFE001FF8000FC0013227FA116>I<F801F0F8
01F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F8
01F0F801F0F801F0F801F0F801F0F801F0F801F0F803F0F803F0FC0FF0FFFFF07FFDF03F
F9F01FC1F0141B7B9A1F>I<FFFFF8FFFFF8FFFFF8FFFFF00003F00007E00007C0000FC0
001F80001F00003E00007E0000FC0000F80001F80003F00003E00007C0000FC0001F8000
1F00003F00007E00007FFFFCFFFFFCFFFFFCFFFFFC161B7E9A1A>122
D E /Fm 12 121 df<FFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFE00
FFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFF00001FFFC00001FFFF00001FFFC000001FFF00
001FFFC0000007FF00001FFFC0000003FF00001FFFC0000000FF00001FFFC00000007F00
001FFFC00000007F00001FFFC00000003F00001FFFC00000003F80001FFFC00000001F80
001FFFC00000001F80001FFFC00000001F80001FFFC00000000F80001FFFC00000000F80
001FFFC0007C000F80001FFFC0007C000F80001FFFC0007C0007C0001FFFC0007C0007C0
001FFFC0007C0007C0001FFFC0007C0007C0001FFFC000FC000000001FFFC000FC000000
001FFFC000FC000000001FFFC001FC000000001FFFC003FC000000001FFFC01FFC000000
001FFFFFFFFC000000001FFFFFFFFC000000001FFFFFFFFC000000001FFFFFFFFC000000
001FFFFFFFFC000000001FFFC01FFC000000001FFFC003FC000000001FFFC001FC000000
001FFFC000FC000000001FFFC000FC000000001FFFC000FC000000001FFFC0007C00007C
001FFFC0007C00007C001FFFC0007C00007C001FFFC0007C0000F8001FFFC0007C0000F8
001FFFC0007C0000F8001FFFC000000000F8001FFFC000000001F8001FFFC000000001F0
001FFFC000000001F0001FFFC000000001F0001FFFC000000003F0001FFFC000000003F0
001FFFC000000007F0001FFFC000000007E0001FFFC00000000FE0001FFFC00000001FE0
001FFFC00000003FE0001FFFC00000007FE0001FFFC0000000FFE0001FFFC0000003FFC0
001FFFC000000FFFC0001FFFC00000FFFFC0FFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFC0
FFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF8046467CC54E>69
D<FFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE000FFFE000000FFFE000
000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE00000
0FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000F
FFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFF
E000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE0
00000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000
000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE00000
0FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000F
FFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFF
E000000FFFE000FFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE27477DC6
2D>73 D<0007FFFC000000007FFFFFC0000001FFFFFFF8000003FFFFFFFE000007FE001F
FF000007FF0003FFC0000FFF8001FFE0000FFF8000FFF0000FFF80007FF0000FFF80007F
F8000FFF80007FF80007FF00003FFC0007FF00003FFC0003FE00003FFC0000F800003FFC
00000000003FFC00000000003FFC00000000003FFC00000000003FFC00000007FFFFFC00
0000FFFFFFFC000007FFFFFFFC00003FFFE03FFC0000FFFE003FFC0003FFF0003FFC0007
FFC0003FFC000FFF00003FFC001FFE00003FFC003FFC00003FFC007FF800003FFC007FF8
00003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000
003FFC00FFF000007FFC007FF80000FFFC007FF80001EFFC003FFC0003EFFC003FFF0007
CFFF000FFFC03F8FFFF807FFFFFF07FFFC01FFFFFC03FFFC007FFFF001FFFC0003FF8000
7FF8362E7DAD3A>97 D<00001FFFC0000000FFFFF8000007FFFFFE00001FFFFFFF80007F
FC00FFC000FFE001FFC001FFC003FFE003FF8003FFE007FF0003FFE00FFE0003FFE00FFE
0003FFE01FFC0001FFC01FFC0001FFC03FFC0000FF803FFC00003E007FF8000000007FF8
000000007FF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF8
00000000FFF800000000FFF800000000FFF800000000FFF800000000FFF8000000007FF8
000000007FF8000000007FFC000000003FFC000000003FFC000000001FFC000000F81FFE
000000F80FFE000000F80FFF000001F007FF800003F003FFC00007E001FFE0000FC000FF
F0001F80007FFE00FF00001FFFFFFE000007FFFFF8000000FFFFE00000001FFE00002D2E
7CAD35>99 D<00001FFE00000001FFFFE0000007FFFFF800001FFFFFFE00007FFC07FF00
00FFE001FF8001FFC0007FC003FF80003FE007FF00003FF00FFE00001FF01FFE00000FF8
1FFC00000FF83FFC00000FFC3FFC000007FC7FFC000007FC7FF8000007FC7FF8000007FE
7FF8000007FEFFF8000007FEFFF8000007FEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFE
FFFFFFFFFFFCFFF800000000FFF800000000FFF800000000FFF8000000007FF800000000
7FF8000000007FFC000000003FFC000000003FFC000000003FFC0000001C1FFE0000003E
0FFE0000003E07FF0000007E07FF000000FC03FF800001F801FFC00003F0007FF0001FE0
003FFE00FFC0001FFFFFFF800007FFFFFE000000FFFFF80000000FFF80002F2E7DAD36>
101 D<000000FFC000000007FFF80000003FFFFC000000FFFFFF000001FFC1FF000007FF
03FF80000FFC03FF80000FF807FFC0001FF807FFC0003FF007FFC0003FF007FFC0003FE0
03FF80007FE003FF80007FE001FF00007FE000FE00007FE0003800007FE0000000007FE0
000000007FE0000000007FE0000000007FE0000000007FE0000000007FE0000000007FE0
000000007FE0000000007FE0000000FFFFFFFE0000FFFFFFFE0000FFFFFFFE0000FFFFFF
FE0000FFFFFFFE0000007FF0000000007FF0000000007FF0000000007FF0000000007FF0
000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0
000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0
000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0
000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0
000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0
000000007FF00000003FFFFFF800003FFFFFF800003FFFFFF800003FFFFFF800003FFFFF
F800002A487DC724>I<007FC000FFFFC000FFFFC000FFFFC000FFFFC000FFFFC00003FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000FFFFFF80FFFFFF80FFFF
FF80FFFFFF80FFFFFF8019487CC720>108 D<007FC001FFC00000FFFFC00FFFF80000FF
FFC03FFFFE0000FFFFC0FFFFFF0000FFFFC1FC07FF8000FFFFC3E003FFC00003FFC7C001
FFC00001FFCF0001FFE00001FFDE0000FFE00001FFDC0000FFE00001FFFC0000FFF00001
FFF80000FFF00001FFF00000FFF00001FFF00000FFF00001FFF00000FFF00001FFE00000
FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001
FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000
FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001
FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000
FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001
FFE00000FFF00001FFE00000FFF00001FFE00000FFF000FFFFFFC07FFFFFE0FFFFFFC07F
FFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE03B2E7CAD42>110
D<00FF803F8000FFFF80FFF000FFFF83FFFC00FFFF87FFFE00FFFF8FC3FF00FFFF8F07FF
0003FF9E0FFF8001FFBC0FFF8001FFB80FFF8001FFF80FFF8001FFF00FFF8001FFF007FF
0001FFF007FF0001FFE003FE0001FFE000F80001FFE000000001FFE000000001FFC00000
0001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC00000
0001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC00000
0001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC00000
0001FFC000000001FFC000000001FFC000000001FFC000000001FFC0000000FFFFFFE000
00FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE00000292E7CAD31>114
D<000FFF00E0007FFFF3E001FFFFFFE007FFFFFFE00FF800FFE01FC0001FE03F80000FE0
3F000007E07F000003E07F000003E0FF000003E0FF000003E0FF800003E0FFC0000000FF
F0000000FFFE000000FFFFF800007FFFFFC0007FFFFFF0003FFFFFFC001FFFFFFF000FFF
FFFF8007FFFFFFC003FFFFFFE000FFFFFFF0003FFFFFF00003FFFFF800001FFFF8000000
FFFC0000001FFC7800000FFCF8000007FCF8000003FCFC000003FCFC000003FCFE000003
F8FE000003F8FF000003F8FF800007F0FFC0000FF0FFF0001FE0FFFC00FFC0FFFFFFFF80
FC7FFFFE00F81FFFF800E003FF8000262E7CAD2F>I<0001F000000001F000000001F000
000001F000000001F000000001F000000003F000000003F000000003F000000007F00000
0007F000000007F00000000FF00000000FF00000001FF00000003FF00000003FF0000000
7FF0000001FFF0000003FFF000000FFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFF
FFFFC000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0
000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF000
0000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF00000
00FFF0000000FFF0000000FFF001F000FFF001F000FFF001F000FFF001F000FFF001F000
FFF001F000FFF001F000FFF001F000FFF001F0007FF001E0007FF803E0003FF803E0003F
FC07C0001FFE0F80000FFFFF800007FFFE000001FFFC0000001FF00024427EC12E>I<7F
FFFF801FFFFF007FFFFF801FFFFF007FFFFF801FFFFF007FFFFF801FFFFF007FFFFF801F
FFFF00007FF80001FF0000007FFC0001FC0000003FFE0003F80000001FFF0007F0000000
0FFF0007E000000007FF800FC000000003FFC01F8000000003FFE03F8000000001FFF07F
0000000000FFF8FE00000000007FF9FC00000000003FFFF800000000003FFFF000000000
001FFFE000000000000FFFC0000000000007FFC0000000000003FFC0000000000001FFE0
000000000001FFF0000000000001FFF8000000000003FFFC000000000003FFFE00000000
0007FFFE00000000000FEFFF00000000001FCFFF80000000003F87FFC0000000007F03FF
E000000000FE01FFE000000001FC00FFF000000001F8007FF800000003F0007FFC000000
07F0003FFE0000000FE0001FFF0000001FC0000FFF0000003F800007FF800000FF800007
FFC000FFFFF8003FFFFFC0FFFFF8003FFFFFC0FFFFF8003FFFFFC0FFFFF8003FFFFFC0FF
FFF8003FFFFFC03A2E7EAD3F>120 D E /Fn 8 117 df<0003FF8000001FFFF000007FFF
FE0000FE03FF0003F001FFC007E000FFE007C0007FF00FF0007FF00FFC007FF81FFC007F
F81FFE007FF81FFE007FF81FFE007FF81FFE007FF81FFE007FF80FFC007FF80FFC007FF0
03F000FFF0000000FFE0000000FFE0000001FFC0000001FF80000003FF00000007FC0000
001FF800000FFFC000000FFF8000000FFFF800000003FE00000001FF80000000FFE00000
007FF00000003FF80000003FFC0000003FFE0000001FFE0000001FFE0200001FFF1FC000
1FFF3FE0001FFF7FF0001FFFFFF8001FFFFFF8001FFFFFF8001FFFFFF8001FFFFFF8001F
FEFFF8003FFEFFF0003FFC7FE0003FFC7FC0007FF83F80007FF01FE000FFE00FFC03FFC0
03FFFFFF8001FFFFFE00003FFFF0000007FF800028397CB731>51
D<0000001FFF000070000001FFFFE000F000000FFFFFFC01F000007FFFFFFF03F00001FF
FE007F87F00007FFE0000FEFF0000FFF000003FFF0003FFE000001FFF0007FF8000000FF
F000FFF00000007FF001FFE00000003FF003FFC00000001FF003FF800000001FF007FF80
0000000FF00FFF0000000007F00FFF0000000007F01FFE0000000007F01FFE0000000003
F03FFC0000000003F03FFC0000000003F07FFC0000000001F07FFC0000000001F07FFC00
00000001F07FF8000000000000FFF8000000000000FFF8000000000000FFF80000000000
00FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF800
0000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF80000000000
00FFF80000000000007FF80000000000007FFC0000000000007FFC0000000000F07FFC00
00000000F03FFC0000000000F03FFC0000000000F01FFE0000000000F01FFE0000000001
F00FFF0000000001E00FFF0000000003E007FF8000000003E003FF8000000007C003FFC0
00000007C001FFE00000000F8000FFF00000001F00007FF80000003E00003FFE0000007C
00000FFF000001F8000007FFE00007F0000001FFFE003FC00000007FFFFFFF800000000F
FFFFFC0000000001FFFFF000000000001FFF0000003C3D7BBB47>67
D<001FFF00000001FFFFF0000007FFFFFC00000FF807FF00001FF801FF80001FFC00FFC0
001FFC007FE0001FFC007FE0001FFC007FF0001FFC003FF0000FF8003FF00007F0003FF0
0001C0003FF0000000003FF0000000003FF0000000003FF0000000FFFFF000000FFFFFF0
00007FF83FF00003FF803FF00007FE003FF0001FFC003FF0003FF8003FF0007FF0003FF0
007FE0003FF000FFE0003FF000FFC0003FF000FFC0003FF000FFC0003FF000FFC0007FF0
00FFC0007FF000FFE000FFF0007FF001DFF0003FF803DFF8001FFC0F8FFFF00FFFFE0FFF
F001FFFC07FFF0003FE000FFF02C267DA530>97 D<0001FFC000000FFFF800003FFFFE00
00FF80FF0001FE003F8007FC001FC00FF8000FE00FF8000FF01FF00007F03FF00007F83F
F00007F87FE00007F87FE00003FC7FE00003FC7FE00003FCFFE00003FCFFFFFFFFFCFFFF
FFFFFCFFFFFFFFFCFFE0000000FFE0000000FFE0000000FFE00000007FE00000007FE000
00007FE00000003FE00000003FF000003C1FF000003C1FF000003C0FF800007807FC0000
F803FE0001F001FF0007E000FFC03FC0003FFFFF000007FFFC000000FFE00026267DA52D
>101 D<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF
0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF
0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF
0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF007FC00003FF
01FFF80003FF07FFFE0003FF1F03FF0003FF3C01FF0003FF7801FF8003FF7000FF8003FF
E000FFC003FFC000FFC003FFC000FFC003FF8000FFC003FF8000FFC003FF0000FFC003FF
0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF
0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF
0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF
0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFF
FC3FFFFF303C7CBB37>104 D<00FF01FF8000FFFF0FFFF000FFFF3FFFFC00FFFFFE03FF
00FFFFF001FFC003FFE0007FE003FF80007FF003FF80003FF803FF00001FF803FF00001F
FC03FF00000FFC03FF00000FFE03FF00000FFE03FF00000FFE03FF000007FF03FF000007
FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007
FF03FF000007FF03FF000007FF03FF00000FFE03FF00000FFE03FF00000FFE03FF00001F
FC03FF00001FFC03FF00001FF803FF80003FF003FFC0007FF003FFE000FFE003FFF001FF
8003FFFC07FF0003FF3FFFFC0003FF0FFFF00003FF01FF000003FF0000000003FF000000
0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000
0003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000FFFFFC0000
00FFFFFC000000FFFFFC000000FFFFFC00000030377DA537>112
D<00FE03F000FFFE0FFE00FFFE3FFF80FFFE3C7FC0FFFE707FC007FEF0FFE003FEE0FFE0
03FEC0FFE003FFC0FFE003FF80FFE003FF807FC003FF803F8003FF800E0003FF00000003
FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF
00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00
000003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFE0000FFFFFE00
00FFFFFE0000FFFFFE000023267DA529>114 D<00078000000780000007800000078000
00078000000F8000000F8000000F8000000F8000001F8000001F8000003F8000003F8000
007F800000FF800001FF800007FF80001FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF001FF8000
01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8000
01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8000
01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C00FF8078
00FFC078007FC0F8007FE1F0001FFFE00007FFC00001FF001E377EB626>116
D E /Fo 74 123 df<001F83E000F06E3001C078780380F8780300F03007007000070070
000700700007007000070070000700700007007000FFFFFF800700700007007000070070
000700700007007000070070000700700007007000070070000700700007007000070070
000700700007007000070070000700700007007000070070007FE3FF001D20809F1B>11
D<003F0000E0C001C0C00381E00701E00701E00700000700000700000700000700000700
00FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700
E00700E00700E00700E00700E00700E00700E00700E07FC3FE1720809F19>I<70F8F8F8
F8F8F8F8707070707070707070702020202020000000000070F8F8F87005217CA00D>33
D<7038F87CFC7EFC7E743A0402040204020804080410081008201040200F0E7E9F17>I<
000300C0000300C0000300C0000701C000060180000601800006018000060180000E0380
000C0300000C0300000C0300000C0300001C0700001806007FFFFFFCFFFFFFFE00300C00
00300C0000300C0000701C0000601800006018000060180000601800FFFFFFFE7FFFFFFC
01C07000018060000180600001806000018060000380E0000300C0000300C0000300C000
0300C0000701C0000601800006018000060180001F297D9F26>I<0F0000301880007030
600060703001E0602C07C06013F980E0100380E0100700E0100600E0100E00E0101C00E0
1018006010380060207000702060003040E0001881C0000F018000000380E00003031000
070608000E0604000C0C04001C0C0400381C0200301C0200701C0200E01C0200C01C0201
C01C0203801C0203000C0407000C040E0006040C0006081C000310180000E01F257DA126
>37 D<70F8FCFC74040404080810102040060E7C9F0D>39 D<0020004000800100020006
000C000C00180018003000300030007000600060006000E000E000E000E000E000E000E0
00E000E000E000E000E0006000600060007000300030003000180018000C000C00060002
0001000080004000200B2E7DA112>I<800040002000100008000C000600060003000300
01800180018001C000C000C000C000E000E000E000E000E000E000E000E000E000E000E0
00E000C000C000C001C001800180018003000300060006000C0008001000200040008000
0B2E7DA112>I<0006000000060000000600000006000000060000000600000006000000
06000000060000000600000006000000060000000600000006000000060000FFFFFFF0FF
FFFFF0000600000006000000060000000600000006000000060000000600000006000000
0600000006000000060000000600000006000000060000000600001C207D9A23>43
D<70F8FCFC74040404080810102040060E7C840D>I<FFC0FFC00A027F8A0F>I<70F8F8F8
7005057C840D>I<00030003000700060006000E000C000C001C00180018003800300030
00700060006000E000C000C001C00180018001800380030003000700060006000E000C00
0C001C0018001800380030003000700060006000E000C000C000102D7DA117>I<03F000
0E1C001C0E00180600380700700380700380700380700380F003C0F003C0F003C0F003C0
F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0700380700380700380
7807803807001806001C0E000E1C0003F000121F7E9D17>I<018003800F80F380038003
800380038003800380038003800380038003800380038003800380038003800380038003
80038003800380038007C0FFFE0F1E7C9D17>I<03F0000C1C00100E0020070040078080
0780F007C0F803C0F803C0F803C02007C00007C0000780000780000F00000E00001C0000
380000700000600000C0000180000300000600400C00401800401000803FFF807FFF80FF
FF80121E7E9D17>I<03F0000C1C00100E00200F00780F80780780780780380F80000F80
000F00000F00000E00001C0000380003F000003C00000E00000F000007800007800007C0
2007C0F807C0F807C0F807C0F00780400780400F00200E001C3C0003F000121F7E9D17>
I<000600000600000E00000E00001E00002E00002E00004E00008E00008E00010E00020E
00020E00040E00080E00080E00100E00200E00200E00400E00C00E00FFFFF0000E00000E
00000E00000E00000E00000E00000E0000FFE0141E7F9D17>I<1803001FFE001FFC001F
F8001FE00010000010000010000010000010000010000011F000161C00180E0010070010
07800003800003800003C00003C00003C07003C0F003C0F003C0E0038040038040070020
0600100E000C380003E000121F7E9D17>I<007C000182000701000E03800C07801C0780
380300380000780000700000700000F1F000F21C00F40600F80700F80380F80380F003C0
F003C0F003C0F003C0F003C07003C07003C07003803803803807001807000C0E00061C00
01F000121F7E9D17>I<4000007FFFC07FFF807FFF804001008002008002008004000008
0000080000100000200000200000400000400000C00000C00001C0000180000380000380
00038000038000078000078000078000078000078000078000078000030000121F7D9D17
>I<03F0000C0C001006003003002001806001806001806001807001807803003E03003F
06001FC8000FF00003F80007FC000C7E00103F00300F806003804001C0C001C0C000C0C0
00C0C000C0C000806001802001001002000C0C0003F000121F7E9D17>I<03F0000E1800
1C0C00380600380700700700700380F00380F00380F003C0F003C0F003C0F003C0F003C0
7007C07007C03807C0180BC00E13C003E3C0000380000380000380000700300700780600
780E00700C002018001070000FC000121F7E9D17>I<70F8F8F870000000000000000000
0070F8F8F87005147C930D>I<7FFFFFE0FFFFFFF0000000000000000000000000000000
0000000000000000000000000000000000FFFFFFF07FFFFFE01C0C7D9023>61
D<000100000003800000038000000380000007C0000007C0000007C0000009E0000009E0
000009E0000010F0000010F0000010F00000207800002078000020780000403C0000403C
0000403C0000801E0000801E0000FFFE0001000F0001000F0001000F0002000780020007
8002000780040003C00E0003C01F0007E0FFC03FFE1F207F9F22>65
D<FFFFE0000F80380007801E0007801F0007800F0007800F8007800F8007800F8007800F
8007800F8007800F0007801F0007801E0007803C0007FFF00007803C0007801E0007800F
0007800F8007800780078007C0078007C0078007C0078007C0078007C00780078007800F
8007800F0007801F000F803C00FFFFF0001A1F7E9E20>I<000FC040007030C001C009C0
038005C0070003C00E0001C01E0000C01C0000C03C0000C07C0000407C00004078000040
F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000
780000007C0000407C0000403C0000401C0000401E0000800E0000800700010003800200
01C0040000703800000FC0001A217D9F21>I<FFFFFF000F800F00078003000780030007
800100078001800780008007800080078000800780808007808000078080000780800007
81800007FF80000781800007808000078080000780800007808000078000200780002007
800020078000400780004007800040078000C0078000C0078001800F800F80FFFFFF801B
1F7E9E1F>69 D<FFFFFF000F800F00078003000780030007800100078001800780008007
8000800780008007800080078080000780800007808000078080000781800007FF800007
818000078080000780800007808000078080000780000007800000078000000780000007
8000000780000007800000078000000FC00000FFFE0000191F7E9E1E>I<FFF8FFF80F80
0F8007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F000780
0F0007800F0007800F0007800F0007FFFF0007800F0007800F0007800F0007800F000780
0F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F000780
0F000F800F80FFF8FFF81D1F7E9E22>72 D<FFFC0FC00780078007800780078007800780
078007800780078007800780078007800780078007800780078007800780078007800780
078007800FC0FFFC0E1F7F9E10>I<FFFE000FC000078000078000078000078000078000
078000078000078000078000078000078000078000078000078000078000078000078000
07800007800207800207800207800207800607800407800407800C07801C0F807CFFFFFC
171F7E9E1C>76 D<FF80001FF80F80001F800780001F0005C0002F0005C0002F0005C000
2F0004E0004F0004E0004F000470008F000470008F000470008F000438010F000438010F
000438010F00041C020F00041C020F00041C020F00040E040F00040E040F00040E040F00
0407080F000407080F000407080F000403900F000403900F000401E00F000401E00F0004
01E00F000E00C00F001F00C01F80FFE0C1FFF8251F7E9E2A>I<FF803FF807C007C007C0
038005E0010005E0010004F001000478010004780100043C0100043C0100041E0100040F
0100040F010004078100040781000403C1000401E1000401E1000400F1000400F1000400
790004003D0004003D0004001F0004001F0004000F0004000700040007000E0003001F00
0300FFE001001D1F7E9E22>I<001F800000F0F00001C0380007801E000F000F000E0007
001E0007803C0003C03C0003C07C0003E0780001E0780001E0F80001F0F80001F0F80001
F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0780001E07C0003E07C0003
E03C0003C03C0003C01E0007800E0007000F000F0007801E0001C0380000F0F000001F80
001C217D9F23>I<FFFFE0000F80780007801C0007801E0007800F0007800F8007800F80
07800F8007800F8007800F8007800F8007800F0007801E0007801C000780780007FFE000
078000000780000007800000078000000780000007800000078000000780000007800000
078000000780000007800000078000000FC00000FFFC0000191F7E9E1F>I<FFFF80000F
80F0000780780007803C0007801E0007801E0007801F0007801F0007801F0007801F0007
801E0007801E0007803C00078078000780F00007FF80000781C0000780E0000780F00007
80700007807800078078000780780007807C0007807C0007807C0007807C0407807E0407
803E040FC01E08FFFC0F10000003E01E207E9E21>82 D<07E0800C198010078030038060
0180600180E00180E00080E00080E00080F00000F000007800007F00003FF0001FFC000F
FE0003FF00001F800007800003C00003C00001C08001C08001C08001C08001C0C00180C0
0380E00300F00600CE0C0081F80012217D9F19>I<7FFFFFE0780F01E0600F0060400F00
20400F0020C00F0030800F0010800F0010800F0010800F0010000F0000000F0000000F00
00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00
00000F0000000F0000000F0000000F0000000F0000000F0000000F0000001F800007FFFE
001C1F7E9E21>I<FFFC3FF80FC007C00780038007800100078001000780010007800100
078001000780010007800100078001000780010007800100078001000780010007800100
078001000780010007800100078001000780010007800100078001000780010003800200
0380020001C0020001C0040000E008000070180000382000000FC0001D207E9E22>I<FF
F07FF81FF01F800FC007C00F00078003800F00078001000F0007C00100078007C0020007
8007C00200078007C0020003C009E0040003C009E0040003C009E0040003E010F00C0001
E010F0080001E010F0080001F02078080000F02078100000F02078100000F0403C100000
78403C20000078403C20000078C03E2000003C801E4000003C801E4000003C801E400000
1F000F8000001F000F8000001F000F8000001E00078000000E00070000000E0007000000
0C000300000004000200002C207F9E2F>87 D<7FF83FF80FE00FC007C0070003C0020001
E0040001F00C0000F0080000781000007C1000003C2000003E4000001E4000000F800000
0F8000000780000003C0000007E0000005E0000009F0000018F8000010780000207C0000
603C0000401E0000801F0001800F0001000780020007C0070003C01F8007E0FFE01FFE1F
1F7F9E22>I<FFF003FF1F8000F80F8000600780004007C0004003E0008001E0008001F0
010000F0030000F80200007C0400003C0400003E0800001E0800001F1000000FB0000007
A0000007C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003
C0000003C0000003C0000003C0000007C000007FFE00201F7F9E22>I<FEFEC0C0C0C0C0
C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
FEFE072D7CA10D>91 D<080410082010201040204020804080408040B85CFC7EFC7E7C3E
381C0F0E7B9F17>I<FEFE06060606060606060606060606060606060606060606060606
06060606060606060606060606060606FEFE072D7FA10D>I<1FE000303000781800781C
00300E00000E00000E00000E0000FE00078E001E0E00380E00780E00F00E10F00E10F00E
10F01E10781E103867200F83C014147E9317>97 D<0E0000FE00000E00000E00000E0000
0E00000E00000E00000E00000E00000E00000E00000E3E000EC3800F01C00F00E00E00E0
0E00700E00700E00780E00780E00780E00780E00780E00780E00700E00700E00E00F00E0
0D01C00CC300083E0015207F9F19>I<03F80E0C1C1E381E380C70007000F000F000F000
F000F000F00070007000380138011C020E0C03F010147E9314>I<000380003F80000380
00038000038000038000038000038000038000038000038000038003E380061B801C0780
380380380380700380700380F00380F00380F00380F00380F00380F00380700380700380
3803803807801C07800E1B8003E3F815207E9F19>I<03F0000E1C001C0E003807003807
00700700700380F00380F00380FFFF80F00000F00000F000007000007000003800801800
800C010007060001F80011147F9314>I<007C00C6018F038F0706070007000700070007
0007000700FFF00700070007000700070007000700070007000700070007000700070007
000700070007007FF01020809F0E>I<0000E003E3300E3C301C1C30380E00780F00780F
00780F00780F00780F00380E001C1C001E380033E0002000002000003000003000003FFE
001FFF800FFFC03001E0600070C00030C00030C00030C000306000603000C01C038003FC
00141F7F9417>I<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E
00000E00000E00000E3E000E43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC16207F9F
19>I<1C001E003E001E001C000000000000000000000000000E007E000E000E000E000E
000E000E000E000E000E000E000E000E000E000E000E000E000E00FFC00A1F809E0C>I<
00E001F001F001F000E0000000000000000000000000007007F000F00070007000700070
007000700070007000700070007000700070007000700070007000700070007000706070
F060F0C061803F000C28829E0E>I<0E0000FE00000E00000E00000E00000E00000E0000
0E00000E00000E00000E00000E00000E0FF00E03C00E03000E02000E04000E08000E1000
0E30000E70000EF8000F38000E1C000E1E000E0E000E07000E07800E03800E03C00E03E0
FFCFF815207F9F18>I<0E00FE000E000E000E000E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
FFE00B20809F0C>I<0E1F01F000FE618618000E81C81C000F00F00E000F00F00E000E00
E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E0
0E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E00FFE7FE7F
E023147F9326>I<0E3E00FE43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC16147F93
19>I<01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0
F000F0F000F07000E07000E03801C03801C01C0380070E0001F80014147F9317>I<0E3E
00FEC3800F01C00F00E00E00E00E00F00E00700E00780E00780E00780E00780E00780E00
780E00700E00F00E00E00F01E00F01C00EC3000E3E000E00000E00000E00000E00000E00
000E00000E00000E0000FFE000151D7F9319>I<03E0800619801C05803C078038038078
0380700380F00380F00380F00380F00380F00380F003807003807803803803803807801C
0B800E138003E380000380000380000380000380000380000380000380000380003FF815
1D7E9318>I<0E78FE8C0F1E0F1E0F0C0E000E000E000E000E000E000E000E000E000E00
0E000E000E000E00FFE00F147F9312>I<1F9030704030C010C010C010E00078007F803F
E00FF00070803880188018C018C018E030D0608F800D147E9312>I<0200020002000600
06000E000E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E080E08
0E080E080E080610031001E00D1C7F9B12>I<0E01C0FE1FC00E01C00E01C00E01C00E01
C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E03C00603
C0030DC001F1FC16147F9319>I<FF83F81E01E01C00C00E00800E00800E008007010007
010003820003820003820001C40001C40001EC0000E80000E80000700000700000700000
200015147F9318>I<FF9FE1FC3C0780701C0300601C0380200E0380400E0380400E03C0
400707C0800704C0800704E080038861000388710003C8730001D0320001D03A0000F03C
0000E01C0000E01C0000601800004008001E147F9321>I<7FC3FC0F01E00701C0070180
03810001C20000E40000EC00007800003800003C00007C00004E00008700010700030380
0201C00601E01E01E0FF07FE1714809318>I<FF83F81E01E01C00C00E00800E00800E00
8007010007010003820003820003820001C40001C40001EC0000E80000E8000070000070
00007000002000002000004000004000004000F08000F08000F100006200003C0000151D
7F9318>I<3FFF380E200E201C40384078407000E001E001C00380078007010E011E011C
0338027006700EFFFE10147F9314>I E /Fp 46 122 df<70F8FCFC7404040404080810
102040060F7C840E>44 D<FFE0FFE00B027F8B10>I<70F8F8F87005057C840E>I<01F000
071C000C06001803003803803803807001C07001C07001C07001C0F001E0F001E0F001E0
F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E07001C0
7001C07001C07803C03803803803801C07000C0600071C0001F00013227EA018>48
D<008003800F80F380038003800380038003800380038003800380038003800380038003
80038003800380038003800380038003800380038003800380038007C0FFFE0F217CA018
>I<03F8000C1E001007002007804007C07807C07803C07807C03807C000078000078000
0700000F00000E0000380003F000001C00000F000007800007800003C00003C00003E020
03E07003E0F803E0F803E0F003C04003C0400780200780100F000C1C0003F00013227EA0
18>51 D<000200000600000E00000E00001E00001E00002E00004E00004E00008E00008E
00010E00020E00020E00040E00040E00080E00100E00100E00200E00200E00400E00800E
00FFFFF8000E00000E00000E00000E00000E00000E00000E00001F0001FFF015217FA018
>I<1000801E07001FFF001FFE001FF80013E00010000010000010000010000010000010
000010F800130E001407001803801003800001C00001C00001E00001E00001E00001E070
01E0F001E0F001E0E001C08001C04003C04003802007001006000C1C0003F00013227EA0
18>I<007E0001C1000300800601C00E03C01C03C0180180380000380000780000700000
700000F0F800F30C00F40600F40300F80380F801C0F001C0F001E0F001E0F001E0F001E0
F001E07001E07001E07001E03801C03801C01803801C03000C0600070C0001F00013227E
A018>I<01F800060E000803001001802001802000C06000C06000C06000C07000C07801
803E01003F02001FC4000FF80003F80003FC00067F00083F80100F803007C06001C06000
E0C000E0C00060C00060C00060C000606000406000C03000801803000E0E0003F0001322
7EA018>56 D<01F000060C000C0600180700380380700380700380F001C0F001C0F001C0
F001E0F001E0F001E0F001E0F001E07001E07003E03803E01805E00C05E00619E003E1E0
0001C00001C00001C0000380000380300300780700780600700C002018001030000FC000
13227EA018>I<0001800000018000000180000003C0000003C0000003C0000005E00000
05E000000DF0000008F0000008F0000010F800001078000010780000203C0000203C0000
203C0000401E0000401E0000401E0000800F0000800F0000FFFF00010007800100078003
0007C0020003C0020003C0040003E0040001E0040001E00C0000F00C0000F03E0001F8FF
800FFF20237EA225>65 D<0007E0100038183000E0063001C00170038000F0070000F00E
0000701E0000701C0000303C0000303C0000307C0000107800001078000010F8000000F8
000000F8000000F8000000F8000000F8000000F8000000F800000078000000780000107C
0000103C0000103C0000101C0000201E0000200E000040070000400380008001C0010000
E0020000381C000007E0001C247DA223>67 D<FFFFFFC00F8007C0078001C0078000C007
800040078000400780006007800020078000200780002007802020078020000780200007
802000078060000780E00007FFE0000780E0000780600007802000078020000780200007
802008078000080780000807800010078000100780001007800030078000300780007007
8000E00F8003E0FFFFFFE01D227EA121>69 D<FFFFFFC00F8007C0078001C0078000C007
800040078000400780006007800020078000200780002007802020078020000780200007
802000078060000780E00007FFE0000780E0000780600007802000078020000780200007
802000078000000780000007800000078000000780000007800000078000000780000007
8000000FC00000FFFE00001B227EA120>I<FFFC0FC00780078007800780078007800780
078007800780078007800780078007800780078007800780078007800780078007800780
078007800780078007800FC0FFFC0E227EA112>73 D<03FFF0001F00000F00000F00000F
00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F
00000F00000F00000F00000F00000F00000F00000F00000F00000F00700F00F80F00F80F
00F80E00F01E00401C0020380018700007C00014237EA119>I<FFC00003FF0FC00003F0
07C00003E005E00005E005E00005E004F00009E004F00009E004F00009E004780011E004
780011E004780011E0043C0021E0043C0021E0043C0021E0041E0041E0041E0041E0040F
0081E0040F0081E0040F0081E004078101E004078101E004078101E00403C201E00403C2
01E00401E401E00401E401E00401E401E00400F801E00400F801E00400F801E004007001
E00E007001E01F007003F0FFE0203FFF28227EA12D>77 D<FF8007FF07C000F807C00070
05E0002004F0002004F0002004780020047C0020043C0020041E0020041F0020040F0020
04078020040780200403C0200401E0200401E0200400F0200400F8200400782004003C20
04003E2004001E2004000F2004000F20040007A0040003E0040003E0040001E0040001E0
040000E00E0000601F000060FFE0002020227EA125>I<FFFFF0000F803C0007800F0007
800780078007C0078003C0078003E0078003E0078003E0078003E0078003E0078003E007
8003C0078007C00780078007800F0007803C0007FFF00007800000078000000780000007
800000078000000780000007800000078000000780000007800000078000000780000007
800000078000000FC00000FFFC00001B227EA121>80 D<FFFFE000000F803C000007800E
00000780078000078007C000078003C000078003E000078003E000078003E000078003E0
00078003E000078003C000078007C000078007800007800E000007803C000007FFE00000
0780700000078038000007801C000007801E000007800E000007800F000007800F000007
800F000007800F000007800F800007800F800007800F800007800F808007800FC0800780
07C0800FC003C100FFFC01E2000000007C0021237EA124>82 D<03F0200C0C6018026030
01E07000E0600060E00060E00060E00020E00020E00020F00000F000007800007F00003F
F0001FFE000FFF0003FF80003FC00007E00001E00000F00000F000007080007080007080
0070800070C00060C00060E000C0F000C0C80180C6070081FC0014247DA21B>I<7FFFFF
F87807807860078018400780084007800840078008C007800C8007800480078004800780
048007800400078000000780000007800000078000000780000007800000078000000780
000007800000078000000780000007800000078000000780000007800000078000000780
0000078000000780000007800000078000000FC00003FFFF001E227EA123>I<0FE00018
38003C0C003C0E0018070000070000070000070000FF0007C7001E07003C070078070070
0700F00708F00708F00708F00F087817083C23900FC1E015157E9418>97
D<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00
000E00000E00000E1F000E61C00E80600F00300E00380E003C0E001C0E001E0E001E0E00
1E0E001E0E001E0E001E0E001E0E001C0E003C0E00380F00700C80600C41C0083F001723
7FA21B>I<01FE000703000C07801C0780380300780000700000F00000F00000F00000F0
0000F00000F00000F000007000007800403800401C00800C010007060001F80012157E94
16>I<0000E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E0
0000E00000E00000E001F8E00704E00C02E01C01E03800E07800E07000E0F000E0F000E0
F000E0F000E0F000E0F000E0F000E07000E07800E03800E01801E00C02E0070CF001F0FE
17237EA21B>I<01FC000707000C03801C01C03801C07801E07000E0F000E0FFFFE0F000
00F00000F00000F00000F000007000007800203800201C00400E008007030000FC001315
7F9416>I<003C00C6018F038F030F070007000700070007000700070007000700FFF807
000700070007000700070007000700070007000700070007000700070007000700070007
807FF8102380A20F>I<00007001F198071E180E0E181C07001C07003C07803C07803C07
803C07801C07001C07000E0E000F1C0019F0001000001000001800001800001FFE000FFF
C00FFFE03800F0600030400018C00018C00018C000186000306000303800E00E038003FE
0015217F9518>I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E
00000E00000E00000E00000E00000E1F800E60C00E80E00F00700F00700E00700E00700E
00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E
0070FFE7FF18237FA21B>I<1C001E003E001E001C000000000000000000000000000000
00000E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
0E000E000E00FFC00A227FA10E>I<01C003E003E003E001C00000000000000000000000
000000000001E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000
E000E000E000E000E000E000E000E000E000E000E060E0F0C0F18061803E000B2C82A10F
>I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E
00000E00000E00000E03FC0E01F00E01C00E01800E02000E04000E08000E10000E38000E
F8000F1C000E1E000E0E000E07000E07800E03C00E01C00E01E00E00F00E00F8FFE3FE17
237FA21A>I<0E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
0E00FFE00B237FA20E>I<0E1FC07F00FE60E183801E807201C00F003C00E00F003C00E0
0E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E
003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E00
3800E0FFE3FF8FFE27157F942A>I<0E1F80FE60C01E80E00F00700F00700E00700E0070
0E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070
0E0070FFE7FF18157F941B>I<01FC000707000C01801800C03800E0700070700070F000
78F00078F00078F00078F00078F00078F000787000707800F03800E01C01C00E03800707
0001FC0015157F9418>I<0E1F00FE61C00E80600F00700E00380E003C0E001C0E001E0E
001E0E001E0E001E0E001E0E001E0E001E0E003C0E003C0E00380F00700E80E00E41C00E
3F000E00000E00000E00000E00000E00000E00000E00000E00000E0000FFE000171F7F94
1B>I<0E3CFE461E8F0F0F0F060F000E000E000E000E000E000E000E000E000E000E000E
000E000E000F00FFF010157F9413>114 D<0F8830786018C018C008C008E008F0007F80
3FE00FF001F8003C801C800C800CC00CC008E018D0308FC00E157E9413>I<0200020002
0002000600060006000E001E003E00FFF80E000E000E000E000E000E000E000E000E000E
000E000E040E040E040E040E040E040708030801F00E1F7F9E13>I<0E0070FE07F01E00
F00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00
700E00700E00F00E00F006017003827800FC7F18157F941B>I<FFC1FE1E00780E00300E
00200E002007004007004003808003808003808001C10001C10000E20000E20000E20000
740000740000380000380000380000100017157F941A>I<FF8FF8FF1E01E03C1C01C018
0E01C0180E01E0100E01E010070260200702702007027020038430400384384003843840
01C8188001C81C8001C81C8000F00D0000F00F0000F00F00006006000060060000600600
20157F9423>I<FFC1FE1E00780E00300E00200E00200700400700400380800380800380
8001C10001C10000E20000E20000E2000074000074000038000038000038000010000010
00002000002000002000004000F04000F08000F180004300003C0000171F7F941A>121
D E /Fq 20 118 df<FFFF80FFFF80FFFF8011037F9016>45 D<FFFFFFE00000FFFFFFFC
000007E0007F000003E0000F800003E00007C00003E00001E00003E00000F00003E00000
780003E000007C0003E000003E0003E000003E0003E000001F0003E000001F0003E00000
0F8003E000000F8003E000000FC003E000000FC003E0000007C003E0000007C003E00000
07E003E0000007E003E0000007E003E0000007E003E0000007E003E0000007E003E00000
07E003E0000007E003E0000007E003E0000007E003E0000007E003E0000007C003E00000
07C003E0000007C003E000000FC003E000000F8003E000000F8003E000000F8003E00000
1F0003E000001F0003E000003E0003E000007C0003E00000780003E00000F80003E00001
F00003E00007E00003E0000F800007E0007F0000FFFFFFFC0000FFFFFFE000002B317CB0
33>68 D<FFFF80FFFF8007F00003E00003E00003E00003E00003E00003E00003E00003E0
0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0
0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0
0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00007F0
00FFFF80FFFF8011317DB017>73 D<FFF00000007FF8FFF00000007FF807F00000007F00
02F8000000BE0002F8000000BE0002F8000000BE00027C0000013E00027C0000013E0002
3E0000023E00023E0000023E00023E0000023E00021F0000043E00021F0000043E00021F
0000043E00020F8000083E00020F8000083E00020F8000083E000207C000103E000207C0
00103E000207C000103E000203E000203E000203E000203E000201F000403E000201F000
403E000201F000403E000200F800803E000200F800803E000200F800803E0002007C0100
3E0002007C01003E0002007C01003E0002003E02003E0002003E02003E0002003E02003E
0002001F04003E0002001F04003E0002000F88003E0002000F88003E0002000F88003E00
020007D0003E00020007D0003E00020007D0003E00020003E0003E00020003E0003E0002
0003E0003E00070001C0003E000F8001C0007F00FFF801C00FFFF8FFF800800FFFF83531
7CB03D>77 D<FFFFFFC000FFFFFFF80007E000FE0003E0001F0003E0000F8003E00007C0
03E00003E003E00003F003E00001F003E00001F003E00001F803E00001F803E00001F803
E00001F803E00001F803E00001F803E00001F003E00001F003E00003E003E00003E003E0
0007C003E0000F8003E0001F0003E000FC0003FFFFF00003E000000003E000000003E000
000003E000000003E000000003E000000003E000000003E000000003E000000003E00000
0003E000000003E000000003E000000003E000000003E000000003E000000003E0000000
03E000000003E000000003E000000003E000000007F0000000FFFF800000FFFF80000025
317CB02D>80 D<007F802001FFE06007C078600F001CE01E0006E03C0003E0380001E078
0000E0700000E070000060F0000060F0000060F0000020F0000020F0000020F8000020F8
0000007C0000007E0000003F0000003FC000001FFC00000FFF800007FFF80003FFFE0000
FFFF00000FFF800001FFC000001FE0000007E0000003F0000001F0000000F0000000F800
0000F88000007880000078800000788000007880000078C0000078C0000070E00000F0E0
0000E0F00000E0F80001C0EC000380E7000700C1F01E00C07FFC00800FF0001D337CB125
>83 D<00FE00000303C0000C00E00010007000100038003C003C003E001C003E001E003E
001E0008001E0000001E0000001E0000001E00000FFE0000FC1E0003E01E000F801E001F
001E003E001E003C001E007C001E00F8001E04F8001E04F8001E04F8003E04F8003E0478
003E047C005E043E008F080F0307F003FC03E01E1F7D9E21>97 D<003F8000E060038018
0700040F00041E001E1C003E3C003E7C003E7C0008780000F80000F80000F80000F80000
F80000F80000F80000F80000F800007800007C00007C00003C00011E00011E00020F0002
07000403801800E060003F80181F7D9E1D>99 D<0000006000000FE000003FE000003FE0
000003E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0
000001E0000001E0000001E0000001E0000001E0000001E0001F81E000F061E001C019E0
078005E00F0003E00E0003E01E0001E03C0001E03C0001E07C0001E0780001E0F80001E0
F80001E0F80001E0F80001E0F80001E0F80001E0F80001E0F80001E0F80001E0780001E0
780001E03C0001E03C0001E01C0001E01E0003E00E0005E0070009E0038011F000E061FF
003F81FF20327DB125>I<003F800000E0E0000380380007003C000E001E001E001E001C
000F003C000F007C000F0078000F8078000780F8000780F8000780FFFFFF80F8000000F8
000000F8000000F8000000F8000000F8000000780000007C0000003C0000003C0000801E
0000800E0001000F0002000780020001C00C0000F03000001FC000191F7E9E1D>I<0007
E0001C1000383800707C00E07C01E07C01C03803C00003C00003C00003C00003C00003C0
0003C00003C00003C00003C00003C00003C000FFFFC0FFFFC003C00003C00003C00003C0
0003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0
0003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00007E0007FFF
007FFF0016327FB114>I<000000F0007F030801C1C41C0380E81C070070080F0078001E
003C001E003C003E003E003E003E003E003E003E003E003E003E003E003E001E003C001E
003C000F007800070070000780E00009C1C000087F000018000000180000001800000018
000000180000001C0000000E0000000FFFF80007FFFF0003FFFF800E000FC0180001E030
0000F070000070E0000038E0000038E0000038E0000038E0000038700000707000007038
0000E01C0001C00700070001C01C00003FE0001E2F7E9F21>I<07000F801F801F800F80
07000000000000000000000000000000000000000000000001801F80FF80FF800F800780
078007800780078007800780078007800780078007800780078007800780078007800780
07800780078007800FC0FFF8FFF80D307EAF12>105 D<0180FE001FC0003F83078060F0
00FF8C03C1807800FF9001E2003C000FA001E4003C0007A000F4001E0007C000F8001E00
07C000F8001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E0007
8000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E000780
00F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000
F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0
001E000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83FFF0341F7E9E38>109
D<0180FE00003F83078000FF8C03C000FF9001E0000FA001E00007A000F00007C000F000
07C000F000078000F000078000F000078000F000078000F000078000F000078000F00007
8000F000078000F000078000F000078000F000078000F000078000F000078000F0000780
00F000078000F000078000F000078000F000078000F000078000F000078000F0000FC001
F800FFFC1FFF80FFFC1FFF80211F7E9E25>I<001FC00000F0780001C01C00070007000F
0007801E0003C01C0001C03C0001E03C0001E0780000F0780000F0780000F0F80000F8F8
0000F8F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8780000F07C0001F03C
0001E03C0001E01E0003C01E0003C00F00078007800F0001C01C0000F07800001FC0001D
1F7E9E21>I<0183E03F8C18FF907CFF907C0FA07C07C03807C00007C00007C000078000
078000078000078000078000078000078000078000078000078000078000078000078000
0780000780000780000780000780000780000FC000FFFE00FFFE00161F7E9E19>114
D<01FC100E03301800F0300070600030E00030E00010E00010E00010F00010F800007E00
003FF0001FFF000FFFC003FFE0003FF00001F80000F880003C80003C80001CC0001CC000
1CE0001CE00018F00038F00030EC0060C301C080FE00161F7E9E1A>I<00400000400000
400000400000400000C00000C00000C00001C00001C00003C00007C0000FC0001FFFE0FF
FFE003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003
C00003C00003C00003C00003C00003C01003C01003C01003C01003C01003C01003C01003
C01001C02001E02000E0400078C0001F00142C7FAB19>I<01800030003F8007F000FF80
1FF000FF801FF0000F8001F000078000F000078000F000078000F000078000F000078000
F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0
00078000F000078000F000078000F000078000F000078000F000078000F000078001F000
078001F000078001F000038002F00003C004F00001C008F800007030FF80001FC0FF8021
1F7E9E25>I E /Fr 5 85 df<00000000600000000000700000000000F00000000001F0
0000000001F00000000003F00000000003F00000000007F00000000007F0000000000FF0
000000000FF0000000001BF00000000033F00000000033F00000000063F00000000063F8
00000000C1F800000000C1F80000000181F80000000381F80000000301F80000000601F8
0000000601F80000000C01F80000000C01F80000001801F80000001801F80000003001F8
0000006001F80000006001F8000000C001F8000000C001FC000001FFFFFC000001FFFFFC
0000030000FC0000070000FC0000060000FC00000C0000FC00000C0000FC0000180000FC
0000180000FC0000300000FC0000700000FC0000600000FC0000E00000FC0001E00000FC
0003E00000FE000FF00001FE00FFFE003FFFF0FFFE003FFFF02C327CB135>65
D<000FFFFFFF0000000FFFFFFFC00000003F8007F00000003F8001F80000003F00007C00
00003F00007E0000007F00003E0000007F00001F0000007E00001F0000007E00001F8000
00FE00000F800000FE00000F800000FC00000FC00000FC00000FC00001FC00000FC00001
FC00000FC00001F800000FC00001F800000FC00003F800000FC00003F800001FC00003F0
00001FC00003F000001FC00007F000001FC00007F000001F800007E000003F800007E000
003F80000FE000003F80000FE000003F00000FC000007F00000FC000007F00001FC00000
7E00001FC00000FE00001F800000FC00001F800000FC00003F800001F800003F800001F0
00003F000003F000003F000007E000007F000007C000007F00000FC000007E00001F8000
007E00003F000000FE00007E000000FE0000F8000000FC0001F0000000FC0007E0000001
FC003F800000FFFFFFFE000000FFFFFFF000000032317CB036>68
D<000FFFFFFFFE000FFFFFFFFE00003F8000FE00003F80003E00003F00001E00003F0000
1E00007F00000C00007F00000C00007E00000C00007E00000C0000FE00000C0000FE0000
0C0000FC00000C0000FC00000C0001FC00001C0001FC00C0180001F800C0000001F800C0
000003F801C0000003F801C0000003F00180000003F00380000007F00F80000007FFFF80
000007FFFF00000007E00F0000000FE0070000000FE0070000000FC0060000000FC00600
00001FC00E0000001FC00E0000001F800C0000001F80000000003F80000000003F800000
00003F00000000003F00000000007F00000000007F00000000007E00000000007E000000
0000FE0000000000FE0000000000FC0000000000FC0000000001FC00000000FFFFFC0000
00FFFFFC0000002F317CB02F>70 D<000FFFFFF800000FFFFFFF0000003F801FC000003F
8007E000003F0003F000003F0001F800007F0000FC00007F0000FC00007E0000FC00007E
0000FC0000FE0000FC0000FE0001FC0000FC0001FC0000FC0001FC0001FC0001F80001FC
0003F80001F80003F00001F80007E00003F80007E00003F8000F800003F0003F000003F0
007E000007F003F8000007FFFFE0000007FFFF80000007E007C000000FE003F000000FE0
01F000000FC000F800000FC000F800001FC000FC00001FC000FC00001F8000FC00001F80
00FC00003F8001FC00003F8001FC00003F0001FC00003F0001FC00007F0003F800007F00
03F800007E0003F800007E0003F80600FE0003F80E00FE0003F80C00FC0003F80C00FC00
03F81C01FC0001F838FFFFF000FC70FFFFF0007FE0000000001F802F327CB034>82
D<07FFFFFFFFF807FFFFFFFFF80FE007F001F80F8007F000F80E0007E000701E0007E000
701C000FE0007018000FE0007038000FC0007038000FC0007030001FC0006070001FC000
6060001F80006060001F80006060003F8000E0E0003F8000C000003F00000000003F0000
0000007F00000000007F00000000007E00000000007E0000000000FE0000000000FE0000
000000FC0000000000FC0000000001FC0000000001FC0000000001F80000000001F80000
000003F80000000003F80000000003F00000000003F00000000007F00000000007F00000
000007E00000000007E0000000000FE0000000000FE0000000000FC0000000000FC00000
00001FC0000000001FC0000000001F80000000003F80000000007FC00000007FFFFFC000
007FFFFFC000002D3174B033>84 D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin
%%EndSetup
%%Page: 1 1
1 2 bop 75 356 a Fn(Chapter)34 b(3)75 564 y Fm(External)41
b(In)m(terfaces)75 805 y Fl(3.1)59 b(Intro)r(duction)75
906 y Fo(This)16 b(c)o(hapter)f(deals)h(with)f(ho)o(w)g(users)g(and)h
(external)f(pac)o(k)m(ages)g(can)h(in)o(terface)f(with)h
Fk(MPI-2)p Fo(.)75 1048 y Fl(3.2)59 b(Generalized)19
b(Requests)75 1225 y Fj(Discussion:)166 1275 y Fi(This)c(prop)q(osal)f
(tak)o(es)i(a)e(sligh)o(tly)g(di\013eren)o(t)h(tac)o(k)g(than)g
(previous)g(one)h(in)e(attempting)f(to)i(deal)g(with)f(the)75
1325 y(non-blo)q(c)o(king)d(requests)k(that)d(are)h(created)i(b)o(y)d
(the)h(user)h(for)e(whic)o(h)g Fh(MPI)g Fi(is)h(supp)q(osed)h(to)e
(call)g(the)h(con)o(tin)o(ue)p 1826 1325 13 2 v 15 w(fn)75
1375 y(when)19 b(one)f(completes.)31 b(I)18 b(b)q(eliev)o(e)h(that)f
(problems)f(existed)i(in)f(the)h(previous)g(prop)q(osals)f(\(including)
f(mine\))75 1425 y(b)q(ecause)h(the)f(user)h(can)e(create)i(none)f(to)f
(an)h(arbitrary)f(n)o(um)o(b)q(er)g(of)g(requests)i(eac)o(h)f(time)e(a)
h(user)i(function)e(is)75 1474 y(called)e(but)h Fh(MPI)f
Fi(returns)i(only)d(one)i(request)h(eac)o(h)f(time)e(one)i(\014nishes.)
20 b(As)15 b(a)g(result,)f(the)h(list)f(of)g(outstanding)75
1524 y(requests)h(can)e(shrink)g(b)o(y)g(one)g(or)g(gro)o(w)f(b)o(y)h
(an)g(arbitrary)g(size.)18 b(There)c(w)o(ere)g(sev)o(eral)f(p)q
(ossible)h(w)o(a)o(ys)e(that)h(ha)o(v)o(e)75 1574 y(b)q(een)i
(previously)f(suggested)h(to)f(deal)f(with)h(this.)k(Here)d(are)f(t)o
(w)o(o:)145 1655 y Fg(\017)23 b Fi(Ha)o(v)o(e)16 b(the)g(user)h(state)g
(the)g(maxim)n(um)11 b(n)o(um)o(b)q(er)16 b(of)f(requests)j(that)e
(will)f(b)q(e)h(made.)23 b(This)16 b(could)g(either)189
1705 y(b)q(e)f(an)f(absolute)g(n)o(um)o(b)q(er)g(for)g(the)h(en)o(tire)
h(time)d(of)h(the)h(non-blo)q(c)o(king)e(request)j(or)e(for)g(eac)o(h)h
(call)f(to)g(the)189 1754 y(user)i(routines.)22 b(As)16
b(a)f(result,)h(either)g Fh(MPI)e Fi(or)i(the)f(user)i(could)e(allo)q
(ciate)f(an)h(arra)o(y)g(of)f(the)i(prop)q(er)g(size)189
1804 y(and)e(b)q(e)h(sure)h(it)e(w)o(as)g(big)g(enough)g(to)h(hold)e
(all)h(the)h(requests.)21 b(The)15 b(other)g(adv)n(an)o(tage)f(is)g
(that)h(the)g(user)189 1854 y(w)o(ould)e(kno)o(w)h(exactly)h(where)h
(on)e(the)h(list)f(eac)o(h)i(request)g(w)o(en)o(t.)k(Ho)o(w)o(ev)o(er,)
15 b(most)e(p)q(eople)i(felt)f(this)h(w)o(as)189 1904
y(ugly)e(and)g(error)i(prone.)145 1975 y Fg(\017)23 b
Fi(P)o(ass)18 b(a)f(p)q(oin)o(ter)h(to)g(the)g(user)h(routine)f(where)g
(an)g(arra)o(y)f(is)h(returned)h(whic)o(h)f(holds)f(all)g(the)h
(requests)189 2025 y(created.)i(The)14 b(adv)n(an)o(tage)g(here)h(is)f
(that)g(the)h(user)g(kno)o(ws)f(ho)o(w)f(man)o(y)g(requests)j(will)c(b)
q(e)j(made)e(in)g(eac)o(h)189 2075 y(call)c(and)h(can)h(create)h(an)e
(arra)o(y)g(of)g(the)g(appropriate)h(size.)17 b(Ho)o(w)o(ev)o(er,)11
b(since)h(the)f(arra)o(y)f(can)g(ha)o(v)o(e)g(m)o(ultiple)189
2125 y(en)o(tries)k(and)f(only)f(one)h(\014nishes)h(at)f(a)g(time)f(y)o
(ou)h(cannot)g(reuse)h(the)g(old)f(p)q(oin)o(ter)g(to)g(put)g(in)g(a)g
(new)g(arra)o(y)189 2175 y(of)i(requests)k(\(since)e(some)f(ma)o(y)e(b)
q(e)j(left)g(o)o(v)o(er\).)25 b(As)17 b(a)f(result,)i(the)f(system)f
(will)f(ha)o(v)o(e)h(to)h(manage)d(the)189 2224 y(p)q(oin)o(ters)19
b(that)f(are)h(returned.)34 b(F)m(urthermore,)19 b(it)f(is)g(not)g
(clear)h(ho)o(w)f(the)h(user)h(can)e(tell)h(if)e(a)h(certain)189
2274 y(request)e(has)f(\014nished.)22 b(The)15 b(index)g(in)o(to)f(the)
i(arra)o(y)e(returned)j(with)d(a)h(giv)o(en)f(user)i(call)f(is)f(not)h
(relativ)o(e)189 2324 y(to)e(the)i(en)o(tire)f(list)g(of)f(requests)j
(outstanding.)h(T)m(o)c(do)h(this)g(some)f(sort)h(of)f(absolute)h(\(to)
g(the)h(whole)e(list\))189 2374 y(index)h(or)h(id)f(is)h(needed.)22
b(Also,)14 b(this)h(arra)o(y)f(came)g(from)f(a)i(single)f(user)i
(function)f(call)e(but)i(can)g(only)f(b)q(e)189 2424
y(freed)h(when)g(all)e(the)i(requests)i(are)d(done.)20
b(It)15 b(is)f(not)h(clear)g(no)o(w)f(this)g(is)g(done.)20
b(Finally)m(,)12 b(it)j(will)e(b)q(e)i(v)o(ery)189 2473
y(hard)f(for)f(the)h(system)g(to)g(reuse)h(holes)f(created)h(in)e(all)g
(these)i(arra)o(ys)f(as)g(di\013eren)o(t)h(requests)g(\014nish.)k(The)
189 2523 y(memory)12 b(used)k(can)f(b)q(e)g(larger)g(than)g(optimal.)j
(Y)m(ou)c(cannot)h(use)h(a)e(b)q(etter)j(structure)g(lik)o(e)d(link)o
(ed)g(lists)189 2573 y(b)q(ecause)h(the)g(F)m(ortran)e(programmer)f
(cannot)i(do)g(this.)166 2654 y(This)19 b(prop)q(osal)f(attempts)h(to)g
(get)g(around)g(these)h(di\016culties)f(b)o(y)g(not)g(ha)o(ving)e(the)j
(user)g(manage)d(the)75 2704 y(m)o(ultiple)c(requests.)25
b(Eac)o(h)16 b(request)i(is)d(registered)i(one)f(at)g(a)f(time)f(b)o(y)
h(a)h(new)g Fh(MPI)f Fi(function.)23 b(The)16 b(user)g(gets)964
2828 y Fo(1)p eop
%%Page: 2 2
2 3 bop 75 -100 a Fo(2)894 b Ff(CHAPTER)15 b(3.)35 b(EXTERNAL)16
b(INTERF)-5 b(A)o(CES)75 45 y Fi(an)14 b(id)f(bac)o(k)h(from)e
Fh(MPI)p Fi(.)h(The)h(id)g(can)g(b)q(e)g(used)h(to)f(k)o(eep)g(trac)o
(k)h(of)e(sp)q(eci\014c)i(requests)h(if)d(necessary)m(.)20
b(By)14 b(turning)75 95 y(o)o(v)o(er)h(the)g(managemen)o(t)d(of)i(the)i
(request)g(to)f Fh(MPI)p Fi(,)e(sev)o(eral)i(problems)f(go)g(a)o(w)o(a)
o(y)m(.)19 b(First,)c Fh(MPI)f Fi(can)h(use)h(a)e(fancy)75
145 y(tec)o(hnique)e(to)f(k)o(eep)h(trac)o(k)f(of)g(requests)i(that)e
(is)g(m)o(uc)o(h)f(b)q(etter)j(than)e(a)g(linear)f(arra)o(y)m(.)17
b(This)11 b(can)g(b)q(e)h(done)f(without)75 195 y(ha)o(ving)k(an)h
(additional)e(linear)h(arra)o(y)h(for)g(the)g(user)h(in)o(terface.)25
b Fh(MPI)16 b Fi(is)g(still)f(free)h(to)g(use)h(a)f(linear)f(arra)o(y)h
(and)75 244 y(mak)o(e)d(the)i(id)f(the)h(index)g(if)e(it)i(so)f(c)o
(hoses.)21 b(Second,)15 b(the)g(id)g(eliminates)d(the)k(idea)e(of)g(an)
g(index)g(in)o(to)g(the)h(linear)75 294 y(arra)o(y)m(.)i(This)12
b(should)g(minimi)o(ze)e(index)j(mistak)o(es)e(and)h(remo)o(v)o(es)g
(the)h(restriction)g(to)g(linear)f(arra)o(ys.)17 b(In)c(the)g
Fh(MPI)75 344 y Fi(tradition,)g Fh(MPI)g Fi(creates)j(the)e(id)f(to)h
(mak)o(e)f(sure)i(it)e(is)h(unique.)75 548 y Fe(3.2.1)49
b(Intro)q(duction)75 634 y Fo(The)20 b(goal)f(of)g(this)h
Fk(MPI-2)e Fo(extension)j(is)f(to)e(allo)o(w)i(users)g(to)e(create)i
(requests)f(for)g(additional)i(non-)75 691 y(blo)q(c)o(king)g(op)q
(erations.)33 b(These)20 b(requests)f(could)i(b)q(e)f(used)g(to)f(p)q
(erform)h(additional)h(op)q(erations)e(not)75 747 y(supp)q(orted)d(b)o
(y)g Fk(MPI)f Fo(suc)o(h)h(as)f(in)o(tricate)h(non-blo)q(c)o(king)h
(collectiv)o(e)h(op)q(erations.)j(They)16 b(could)h(also)e(b)q(e)75
804 y(used)h(to)e(create)h(a)g(non-blo)q(c)o(king)i(send-receiv)o(e)g
(t)o(yp)q(e)e(function.)166 860 y(The)20 b(metho)q(d)g(tak)o(en)g(in)g
(de\014ning)i(this)e Fk(MPI-2)f Fo(extension)i(is)f(to)f(try)h(and)g
(generalize)h(curren)o(t)75 916 y Fk(MPI)e Fo(functions.)33
b(F)l(or)19 b(example,)i(the)e Fk(MPI)g Fo(functions)h(of)f
Fk(MPI)p 1208 916 14 2 v 16 w Fd(f)p Fk(TEST)p Fd(j)p
Fk(W)l(AIT)p Fd(gf)p Fk(ANY)p Fd(j)p Fk(SOME)p Fd(j)p
Fk(ALL)p Fd(g)75 973 y Fo(are)c(generalized.)21 b(Also,)15
b(whenev)o(er)h(additional)g(functions)g(are)e(needed)j(they)e(are)f
(made)h(to)g(lo)q(ok)g(lik)o(e)75 1029 y(similar)j(functions)g(curren)o
(tly)f(a)o(v)m(ailable)i(in)e Fk(MPI)p Fo(.)f(Th)o(us,)h(these)g
(extensions)h(are)f(based)g(on)g(the)g Fk(MPI)75 1086
y Fo(p)q(ersisten)o(t)f(comm)o(unication)g(requests)f(and)g(the)g(cac)o
(hing)h(features.)166 1142 y(As)10 b(with)h(the)f(cac)o(hing)h
(feature,)f(a)g(new)g(t)o(yp)q(e)h(of)e(request)h(is)h(\014rst)f
(created)g(using)h Fk(MPI)p 1620 1142 V 16 w(REQUEST)p
1839 1142 V 18 w(TYPE)p 1974 1142 V 16 w(CREA)l(TE)75
1199 y Fo(and)21 b(freed)g(with)g Fk(MPI)p 481 1199 V
16 w(REQUEST)p 700 1199 V 18 w(TYPE)p 835 1199 V 16 w(FREE)p
Fo(.)g(The)g(rest)f(of)g(the)h(prop)q(osal)g(mimics)h(the)f(mec)o(h-)75
1255 y(anisms)h(in)g(p)q(ersisten)o(t)g(comm)o(unication)h(requests.)39
b(The)22 b(user)g(creates)f(a)g(sp)q(eci\014c)j(instance)e(of)f(a)75
1312 y(request)16 b(via)h Fk(MPI)p 395 1312 V 15 w(REQUEST)p
613 1312 V 18 w(INIT)p Fo(.)e(The)i(op)q(eration)f(asso)q(ciated)g
(with)h(the)f(request)g(is)h(b)q(egun)g(with)75 1368
y Fk(MPI)p 160 1368 V 16 w(ST)l(ART)p Fd(f)p Fk(ALL)p
Fd(g)p Fo(.)h(Completion)11 b(of)f(the)g(request)g(is)h(done)f(with)h
Fk(MPI)p 1313 1368 V 15 w Fd(f)p Fk(TEST)p Fd(j)p Fk(W)l(AIT)p
Fd(gf)p Fk(ANY)p Fd(j)p Fk(SOME)p Fd(j)p Fk(ALL)p Fd(g)p
Fo(.)75 1425 y(The)k(sp)q(eci\014c)j(request)d(can)g(b)q(e)h(freed)f
(with)h Fk(MPI)p 931 1425 V 16 w(REQUEST)p 1150 1425
V 18 w(FREE)p Fo(.)166 1481 y(This)22 b(section)h(b)q(egins)g(with)f
(an)f(o)o(v)o(erview)h(of)f(the)h(functionalit)o(y)h(whic)o(h)g(is)f
(follo)o(w)o(ed)g(b)o(y)g(the)75 1537 y(sp)q(eci\014c)e(calls.)28
b(It)18 b(is)g(follo)o(w)o(ed)g(b)o(y)f(sho)o(wing)h(ho)o(w)f(these)h
(functions)g(can)g(b)q(e)h(used)f(to)f(create)g(a)h(non-)75
1594 y(blo)q(c)o(king)f(v)o(ersion)e(of)g Fk(MPI)p 547
1594 V 16 w(ALLGA)l(THER)p Fo(.)75 1716 y Fe(3.2.2)49
b(F)o(unctionalit)o(y)75 1801 y Fo(The)15 b(b)q(eha)o(vior)h(of)f(the)g
(request)g(is)h(de\014ned)h(b)o(y)e(these)g(callbac)o(k)h(functions:)75
1908 y Fk(init)p 139 1908 V 17 w(fn)23 b Fo(This)13 b(callbac)o(k)h
(function)g(is)f(in)o(v)o(ok)o(ed)g(when)h(a)e(new)h(instance)h(of)e
(the)h(request)g(is)g(created.)19 b(This)189 1964 y(function)i(can)f(b)
q(e)i(used,)f(for)f(example,)i(to)e(allo)q(cate)h(memory)f(for)g(the)g
(request)h(ob)s(ject)f(and)189 2021 y(p)q(erform)15 b(other)f
(initialization.)75 2114 y Fk(sta)o(rt)p 164 2114 V 17
w(fn)23 b Fo(This)e(callbac)o(k)h(function)g(is)f(in)o(v)o(ok)o(ed)g
(when)g(the)g(op)q(eration)g(asso)q(ciated)g(with)g(request)f(is)189
2171 y(started.)30 b(This)19 b(function)h(can)f(b)q(e)g(used,)h(for)e
(example,)i(to)e(start)g(one)h(or)f(more)h(non)o(blo)q(c)o(king)189
2227 y(comm)o(unications)c(that)g(initiate)i(the)e(op)q(eration.)75
2321 y Fk(continue)p 237 2321 V 18 w(fn)23 b Fo(This)c(callbac)o(k)h
(function)g(is)f(in)o(v)o(ok)o(ed)f(whenev)o(er)h(an)o(y)g(of)f(the)g
(registered)h(comm)o(unica-)189 2378 y(tions)c(initiated)j(b)o(y)d
Fk(sta)o(rt)p 635 2378 V 17 w(fn)h Fo(or)f(a)g(previous)h(in)o(v)o(o)q
(cation)g(of)f Fk(continue)p 1411 2378 V 19 w(fn)g Fo(has)h(completed.)
22 b(The)189 2434 y(function)d(can)g(start)e(new)i(registered)g(comm)o
(unications)g(\(in)g(whic)o(h)g(case)g(it)f(will)j(b)q(e)e(in)o(v)o(ok)
o(ed)189 2491 y(anew,)c(later\))g(or)g(it)h(can)g(do)f(other)g(w)o(ork)
g(and)h(not)f(start)f(a)h(new)h(comm)o(unication.)22
b(If)16 b(the)f Fk(con-)189 2547 y(tinue)p 285 2547 V
17 w(fn)g Fo(starts)e(no)h(new)h(requests)f(and)g(there)g(are)g(none)h
(outstanding)f(then)h(the)f(non-blo)q(c)o(king)189 2603
y(request)h(has)g(\014nished.)1967 46 y Fc(1)1967 103
y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967
385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959
611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959
836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959
1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959
1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959
1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959
1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959
1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959
2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959
2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959
2643 y(47)1959 2699 y(48)p eop
%%Page: 3 3
3 4 bop 75 -100 a Ff(3.2.)34 b(GENERALIZED)16 b(REQUESTS)1071
b Fo(3)75 45 y Fk(free)p 148 45 14 2 v 16 w(fn)23 b Fo(This)f(callbac)o
(k)f(function)h(is)f(in)o(v)o(ok)o(ed)g(when)g(the)g(request)g(is)g
(freed.)37 b(It)21 b(can)g(b)q(e)g(used,)i(for)189 102
y(example,)15 b(to)g(deallo)q(cate)h(memory)l(.)166 284
y Fj(Discussion:)166 334 y Fi(Only)e(the)h(language)f(neutral)h
(description)g(of)f(functions)g(are)h(giv)o(en.)20 b(The)14
b(rest)i(will)d(b)q(e)i(added)g(once)g(the)75 383 y(main)d(discussion)i
(items)f(are)h(settled.)166 523 y Fo(A)h(new)h(t)o(yp)q(e)f(of)g
(request)g(is)h(created)f(with)75 674 y Fk(MPI)p 160
674 V 16 w(REQUEST)p 379 674 V 18 w(TYPE)p 514 674 V
17 w(CREA)l(TE\(create)p 832 674 V 17 w(fn,)g(sta)o(rt)p
1000 674 V 17 w(fn,)g(continue)p 1241 674 V 18 w(fn,)g(free)p
1394 674 V 17 w(fn,)g(t)o(yp)q(e)p 1556 674 V 17 w(req\))117
751 y Fi(IN)155 b Fk(create)p 435 751 V 17 w(fn)419 b
Fi(Creation)14 b(callbac)o(k)f(function)h(for)f(t)o(yp)q(e)p
1542 751 13 2 v 16 w(req)117 826 y(IN)155 b Fk(sta)o(rt)p
407 826 14 2 v 17 w(fn)447 b Fi(Request)15 b(start)g(callbac)o(k)e
(function)g(for)h(t)o(yp)q(e)p 1630 826 13 2 v 15 w(req)117
901 y(IN)155 b Fk(continue)p 480 901 14 2 v 19 w(fn)372
b Fi(Request)15 b(con)o(tin)o(ue)f(callbac)o(k)f(function)h(for)f(t)o
(yp)q(e)p 1696 901 13 2 v 16 w(req)117 976 y(IN)155 b
Fk(free)p 391 976 14 2 v 17 w(fn)463 b Fi(Request)15
b(free)g(callbac)o(k)e(function)g(for)h(t)o(yp)q(e)p
1610 976 13 2 v 15 w(req)117 1051 y(OUT)108 b Fk(t)o(yp)q(e)p
401 1051 14 2 v 18 w(req)430 b Fh(MPI)13 b Fi(created)j(request)f(t)o
(yp)q(e)g(for)e(future)i(reference)166 1176 y Fo(The)k(callbac)o(k)g
(functions)h(are)e(describ)q(ed)j(b)q(elo)o(w)e(with)g(the)g(routines)g
(that)f(cause)h(them)f(to)g(b)q(e)75 1232 y(called.)j
Fk(t)o(yp)q(e)p 304 1232 V 17 w(req)13 b Fo(is)g(a)g(unique)h(k)o(ey)e
(that)g(is)i(generated)e(b)o(y)h Fk(MPI)f Fo(that)g(can)h(b)q(e)g(used)
g(to)g(create)f(requests)75 1289 y(of)j(this)g(t)o(yp)q(e.)20
b(This)c(call)h(is)e(lo)q(cal)i(and)e(the)g Fk(t)o(yp)q(e)p
925 1289 V 18 w(req)g Fo(is)h(a)f(lo)q(cal)h(quan)o(tit)o(y)f(to)f(the)
i(calling)h(pro)q(cess.)j(It)75 1345 y(cannot)15 b(b)q(e)h(transfered)f
(to)f(another)h(pro)q(cess.)166 1402 y(T)l(o)j(mak)o(e)f(the)h(user)g
(functions)h(easier)g(to)e(program,)g(eac)o(h)h(call)i(to)d(a)h(user)g
(function)h(is)f(atomic)75 1458 y(within)k(a)f(request.)37
b(Th)o(us,)21 b(once)h(a)e(user)h(function)h(is)f(called)i(for)d(a)h
(giv)o(en)g(request,)h Fk(MPI)e Fo(cannot)75 1514 y(in)o(terrupt)e
(this)h(function)f(with)h(a)e(call)i(to)f(another)f(user)h(function)h
(for)e(the)h(same)g(request.)28 b(This)18 b(is)75 1571
y(true)e(ev)o(en)g(if)g(a)g(registered)g(request)g(\(see)g(b)q(elo)o
(w\))g(completes)g(while)i(the)e(user)g(function)g(is)h(activ)o(e.)22
b(If)75 1627 y(m)o(ultiple)d(requests)e(ha)o(v)o(e)g(\014nished,)i
Fk(MPI)e Fo(can)g(call)i(the)e(user)h(function)g(with)f(and)h
(arbitrary)e(c)o(hoice.)75 1684 y(Ho)o(w)o(ev)o(er,)e(some)h(form)f(of)
h(fairness)g(in)h(c)o(ho)q(osing)g(requests)f(is)h(exp)q(ected)g(so)f
(one)g(is)h(not)f(ignored.)166 1740 y(T)l(o)g(get)g(an)g(instance)h(of)
f Fk(t)o(yp)q(e)p 684 1740 V 17 w(req)p Fo(,)g(one)g(calls:)75
1891 y Fk(MPI)p 160 1891 V 16 w(REQUEST)p 379 1891 V
18 w(INIT\(t)o(yp)q(e)p 584 1891 V 16 w(req,)g(extra)p
782 1891 V 17 w(state,)h(comm,)d(request\))117 1968 y
Fi(IN)155 b Fk(t)o(yp)q(e)p 401 1968 V 18 w(req)430 b
Fi(T)o(yp)q(e)10 b(of)f(request)h(desired)h(\(from)c(MPI)p
1519 1968 13 2 v 16 w(REQUEST)p 1738 1968 V 15 w(TYPE)p
1870 1968 V 16 w(CREA)m(TE\))117 2044 y(IN)155 b Fk(extra)p
416 2044 14 2 v 17 w(state)384 b Fi(Extra)14 b(state)h(passed)g(to)f
Fh(init)p 1365 2044 13 2 v 15 w(fn)117 2119 y Fi(IN)155
b Fk(comm)470 b Fi(Comm)o(unicator)11 b(to)j(asso)q(ciate)g(request)i
(with)117 2194 y(OUT)108 b Fk(request)452 b Fi(Handle)14
b(to)g(request)166 2318 y Fo(This)i(function)g(in)o(v)o(ok)o(es)f(the)g
(callbac)o(k)h(function)g Fk(init)p 1100 2318 14 2 v
17 w(fn)g Fo(de\014ned)g(as:)75 2425 y Fb(typedef)23
b(int)g(MPI_Request_init_fn\(MPI_Comm)d(comm,)k(MPI_Request)e(request,)
839 2481 y(void)h(*extra_state\);)166 2587 y Fk(MPI)p
251 2587 V 16 w(REQUEST)p 470 2587 V 18 w(INIT)14 b Fo(in)o(v)o(ok)o
(es)g(the)h(user)g(function)h Fk(init)p 1161 2587 V 17
w(fn)f Fo(with)g(input)h(argumen)o(ts)e Fk(comm)f Fo(and)75
2644 y Fk(extra)p 173 2644 V 16 w(state)j Fo(whic)o(h)g(are)e(the)h
(argumen)o(ts)f(that)g(w)o(ere)g(passed)h(b)o(y)f(the)h(caller)h(of)e
Fk(MPI)p 1540 2644 V 16 w(REQUEST)p 1759 2644 V 18 w(INIT)p
Fo(.)75 2700 y(The)22 b(callbac)o(k)g(function)g(will)h(usually)f(allo)
q(cate)g(and)g(initialize)i(in)o(ternal)e(data)f(structures)g(of)g(the)
-32 46 y Fc(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32
272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40
554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780
y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006
y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232
y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457
y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683
y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909
y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135
y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361
y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587
y(46)-40 2643 y(47)-40 2699 y(48)p eop
%%Page: 4 4
4 5 bop 75 -100 a Fo(4)894 b Ff(CHAPTER)15 b(3.)35 b(EXTERNAL)16
b(INTERF)-5 b(A)o(CES)75 45 y Fo(request.)33 b(It)19
b(can)h(return)f(in)h Fk(extra)p 703 45 14 2 v 17 w(state)g
Fo(a)g(p)q(oin)o(ter)g(to)e(this)i(in)o(ternal)h(structure)e(since)h
Fk(extra)p 1769 45 V 17 w(state)75 102 y Fo(is)h(passed)h(to)e(all)i
(the)f(user)g(callbac)o(k)h(functions)g(for)e(this)i(request.)37
b(Outside)22 b(the)f(user)g(function,)75 158 y Fk(MPI)p
160 158 V 16 w(REQUEST)p 379 158 V 18 w(INIT)15 b Fo(creates)h(and)h
(returns)f(in)h Fk(request)h Fo(a)e(handle)h(to)f(the)g(newly)h
(created)f(request.)75 214 y(This)g(request)f(is)h(lo)q(cal)h(to)d(the)
i(calling)h(pro)q(cess.)j Fk(init)p 1009 214 V 17 w(fn)c
Fo(returns)f(0)g(if)h(it)g(failed)g(and)g(1)f(if)h(it)f(succeeds.)75
271 y(The)g(consequence)i(of)e(returning)h(0)e(is)i(discussed)h(later.)
166 403 y Fj(Discussion:)166 453 y Fh(MPI)p 243 453 13
2 v 14 w(REQUEST)p 445 453 V 14 w(INIT)d Fi(tak)o(es)h(a)f(comm)o
(unicator)e(as)i(an)h(argumen)o(t.)j(Is)d(this)g(call)e(in)o(tended)j
(to)e(b)q(e)h(collec-)75 503 y(tiv)o(e?)i(Must)c(all)f(comm)o(uni)o
(cations)e(used)j(in)f(this)h(request)g(use)h(this)e(comm)o(unicator?)j
(My)d(thinking)g(is)g(that)g(the)75 553 y(call)h(is)h(lo)q(cal)g(and)g
(the)h(comm)o(unicator)c(is)j(giv)o(en)g(to)g(allo)o(w)e
(initialization)g(and)i(creation)g(of)g(appropriate)g(arra)o(y)75
603 y(and)j(structures.)31 b(Comm)o(uni)o(cations)15
b(are)j(not)f(limited)e(to)i(that)g(comm)o(unicator.)26
b(F)m(or)17 b(example,)f(y)o(ou)h(could)75 652 y(create)e(a)f(subgroup)
g(to)g(w)o(ork)f(with.)166 792 y Fo(A)k(request)f(is)h(b)q(egun)h(with)
e(the)h(curren)o(t)g Fk(MPI)e Fo(functions)j Fk(MPI)p
1284 792 14 2 v 16 w(ST)l(ART)f Fo(and)g Fk(MPI)p 1631
792 V 16 w(ST)l(ART)l(ALL)p Fo(.)75 848 y(Calling)g(these)e(functions)h
(cause)f(the)h Fk(sta)o(rt)p 833 848 V 16 w(fn)g Fo(callbac)o(k)g
(function)g(to)f(b)q(e)h(in)o(v)o(ok)o(ed.)k(It)15 b(is)h(de\014ned)g
(as:)75 954 y Fb(typedef)23 b(int)g(MPI_Request_start_fn\(MPI_Comm)d
(comm,)j(MPI_Request)g(request,)862 1011 y(void)h(*extra_state\);)166
1117 y Fo(The)14 b(input)h Fk(extra)p 476 1117 V 16 w(state)g
Fo(is)f(a)g(p)q(oin)o(ter)g(to)f(the)h(in)o(ternal)h(state)e(of)g(the)h
(request)g(that)f(w)o(as)g(returned)75 1174 y(b)o(y)f(the)g
Fk(init)p 274 1174 V 17 w(fn)g Fo(callbac)o(k)h(function.)20
b Fk(sta)o(rt)p 792 1174 V 16 w(fn)12 b Fo(ma)o(y)g(initiate)h(one)f
(or)f(more)h(comm)o(unications,)h(as)e(part)g(of)75 1230
y(starting)j(the)g(op)q(eration.)20 b(If)15 b(the)f(user)g(wishes)i(to)
d(ha)o(v)o(e)h Fk(MPI)g Fo(call)h(the)g Fk(continue)p
1477 1230 V 18 w(fn)g Fo(up)q(on)g(completion)75 1286
y(of)g(the)g(comm)o(unication,)h(s/he)f(needs)h(to)e(call:)75
1437 y Fk(MPI)p 160 1437 V 16 w(REQUEST)p 379 1437 V
18 w(REGISTER\(comm)p 743 1437 V 15 w(req,)h(id\))117
1515 y Fi(IN)155 b Fk(comm)p 438 1515 V 15 w(req)396
b Fi(comm)o(unication)14 b(request)19 b(whose)e(completion)f(causes)i
(the)905 1571 y(user)d(function)f(to)g(b)q(e)g(called.)117
1646 y(OUT)108 b Fk(id)553 b Fh(MPI)13 b Fi(created)j(id)166
1771 y Fk(comm)p 286 1771 V 14 w(req)i Fo(is)g(the)f
Fk(request)i Fo(returned)f(when)f(the)h(non-blo)q(c)o(king)h(comm)o
(unication)f(w)o(as)e(started.)75 1827 y(F)l(or)g(example,)i(it)f
(could)h(b)q(e)f(the)g Fk(request)i Fo(returned)e(b)o(y)g(an)g
Fk(MPI)p 1219 1827 V 16 w(IRECV)g Fo(p)q(osted)g(during)h(the)f(call)h
(to)75 1884 y Fk(MPI)p 160 1884 V 16 w(Request)p 324
1884 V 19 w(sta)o(rt)p 429 1884 V 16 w(fn)p Fo(.)33 b(The)19
b Fk(id)h Fo(returned)f(will)i(b)q(e)f(pro)o(vided)g(to)f(the)g(call)h
Fk(continue)p 1602 1884 V 18 w(fn)g Fo(for)e(iden)o(ti-)75
1940 y(\014cation)h(purp)q(oses.)32 b(If)19 b(the)g(user)g(needs)h(to)e
(iden)o(tify)i(whic)o(h)g Fk(comm)p 1299 1940 V 15 w(req)f
Fo(go)q(es)f(with)i(whic)o(h)f Fk(id)h Fo(then)75 1996
y(this)e(information)f(needs)h(to)f(b)q(e)g(stored)g(in)h
Fk(extra)p 953 1996 V 16 w(state)h Fo(to)e(b)q(e)g(retriv)o(ed)h(in)g
Fk(continue)p 1586 1996 V 18 w(fn)p Fo(.)26 b(The)18
b(v)m(alue)75 2053 y Fh(MPI)p 152 2053 13 2 v 14 w(ID)p
208 2053 V 15 w(NULL)e Fo(will)h(nev)o(er)e(b)q(e)h(used)g(b)o(y)f
Fk(MPI)f Fo(for)h(an)g Fk(id)h Fo(so)e(it)i(can)f(b)q(e)h(used)g(for)e
(initialization.)166 2109 y Fk(sta)o(rt)p 255 2109 14
2 v 17 w(fn)19 b Fo(returns)g(0)f(if)h(it)h(failed)g(and)f(1)f(if)i(it)
f(succeeds.)32 b(The)19 b(consequence)h(of)e(returning)i(0)e(is)75
2166 y(discussed)f(later.)166 2222 y(This)h Fk(comm)p
392 2222 V 15 w(req)f Fo(registered)h(with)g Fk(MPI)p
881 2222 V 16 w(REQUEST)p 1100 2222 V 18 w(REGISTER)g
Fo(is)g(the)g(\\public")h(part)e(of)g(the)75 2279 y(op)q(eration)g
(state)e(that)h(has)h(to)f(b)q(e)h(comm)o(unicated)g(to)f
Fk(MPI)p Fo(:)f Fk(MPI)h Fo(will)i(no)o(w)e(\\w)o(atc)o(h")g(on)g(this)
h(com-)75 2335 y(m)o(unication.)22 b(Whenev)o(er)16 b(an)o(y)g(of)f
(them)h(completes,)g Fk(MPI)f Fo(will)i(in)o(v)o(ok)o(e)f(the)g
Fk(continue)p 1588 2335 V 18 w(fn)g Fo(function)h(to)75
2392 y(con)o(tin)o(ue)f(the)f(execution)h(of)f(the)g(op)q(eration.)166
2448 y(The)g Fk(continue)p 421 2448 V 19 w(fn)g Fo(callbac)o(k)h
(function)g(is)g(de\014ned)h(as:)75 2554 y Fb(typedef)23
b(int)g(MPI_Request_continue_fn\(MPI_C)o(omm)e(comm,)i(MPI_Request)f
(request,)934 2611 y(void)h(*extra_state,)f(int)i(id,)934
2667 y(MPI_Status)f(status\);)1967 46 y Fc(1)1967 103
y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967
385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959
611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959
836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959
1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959
1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959
1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959
1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959
1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959
2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959
2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959
2643 y(47)1959 2699 y(48)p eop
%%Page: 5 5
5 6 bop 75 -100 a Ff(3.2.)34 b(GENERALIZED)16 b(REQUESTS)1071
b Fo(5)166 45 y(This)18 b(callbac)o(k)h(function)g(is)f(in)o(v)o(ok)o
(ed)g(b)o(y)f Fk(MPI)h Fo(when)g(a)f(comm)o(unication)i(that)e(w)o(as)g
(registered)75 102 y(with)j Fk(MPI)p 268 102 14 2 v 15
w(REQUEST)p 486 102 V 18 w(REGISTER)h Fo(has)e(completed.)33
b(The)19 b Fk(id)h Fo(argumen)o(t)e(indicates)j(the)e(id)h(of)f(the)75
158 y(comm)o(unication)g(that)e(\014nished.)30 b(In)18
b(addition,)i(the)e(callbac)o(k)h(function)g(is)f(passed)g(the)g(p)q
(oin)o(ter)h Fk(ex-)75 214 y(tra)p 132 214 V 16 w(state)f
Fo(to)f(the)f(in)o(ternal)i(state)e(of)h(the)g(request.)25
b Fk(MPI)16 b Fo(do)q(es)h(the)g(equiv)m(alen)o(t)i(of)d(an)h
Fk(MPI)p 1692 214 V 16 w(W)l(AIT)f Fo(or)75 271 y Fk(MPI)p
160 271 V 16 w(TEST)e Fo(b)q(efore)g(the)g(call)h(to)f
Fk(continue)p 812 271 V 18 w(fn)p Fo(.)20 b Fk(MPI)13
b Fo(then)h(pro)o(vides)h(the)f Fk(status)i Fo(for)d(this)h(op)q
(eration)g(as)75 327 y(an)f(argumen)o(t)f(to)h Fk(continue)p
553 327 V 18 w(fn)p Fo(.)20 b(As)13 b(a)g(result,)g(the)h
Fk(comm)p 1073 327 V 14 w(req)f Fo(is)h(already)g(set)f(to)f
Fh(MPI)p 1558 327 13 2 v 14 w(REQUEST)p 1760 327 V 14
w(NULL)75 384 y Fo(b)q(efore)17 b(the)f(call)h(unless)h(it)e(w)o(as)f
(a)h(p)q(ersistan)o(t)h(request)f(in)h(whic)o(h)g(case)f(it)h(is)f
(inactiv)o(e.)24 b(The)17 b(callbac)o(k)75 440 y(function)f(returns)f
(0)g(if)h(it)f(failed)i(and)e(1)g(if)h(it)f(succeeds)h(as)f(do)q(es)h
Fk(sta)o(rt)p 1301 440 14 2 v 16 w(fn)p Fo(.)166 497
y(Once)k(the)f(non-blo)q(c)o(king)i(request)e(has)f(\014nished,)k(it)d
(can)g(b)q(e)g(restarted)g(with)g(another)g(call)h(to)75
553 y Fk(MPI)p 160 553 V 16 w(ST)l(ART)p Fo(.)11 b(Once)g(the)f(user)g
(is)h(done)f(with)h(a)f(request,)g(it)h(is)g(freed)f(using)h(the)f
(curren)o(t)g Fk(MPI)p 1670 553 V 16 w(REQUEST)p 1889
553 V 18 w(FREE)75 610 y Fo(whic)o(h)16 b(uses)g(the)f(callbac)o(k)h
(function:)75 694 y Fb(typedef)23 b(int)g
(MPI_Request_free_function\(MPI)o(_Comm)e(comm,)i(MPI_Request)f
(request,)982 751 y(void)h(*extra_state\);)166 836 y
Fo(This)15 b(callbac)o(k)g(function)h(can)e(deallo)q(cate)i(the)e(in)o
(ternal)h(data)f(structures)g(of)g(the)h(request)f(whic)o(h)75
892 y(w)o(ere)h(storted)f(in)i Fk(extra)p 485 892 V 17
w(state)p Fo(.)166 1025 y Fj(Discussion:)166 1074 y Fi(Note)10
b(w)o(ell)e(the)i(execution)g(mo)q(del)e(assumed)h(b)o(y)g(this)h
(text:)16 b(the)10 b Fh(init)p 1225 1074 13 2 v 15 w(fn,)g(sta)o(rt)p
1375 1074 V 15 w(fn)f Fi(and)g Fh(free)p 1572 1074 V
16 w(fn)g Fi(callbac)o(k)g(func-)75 1124 y(tions)j(are)h(in)o(v)o(ok)o
(ed)e(as)h(a)g(result)h(of)e(user)j(calls)d(made)g(b)o(y)h(the)h(comm)o
(unicating)c(pro)q(cess)14 b(\()p Fh(MPI)p 1569 1124
V 14 w(REQUEST)p 1771 1124 V 14 w(INIT)p Fi(,)75 1174
y Fh(MPI)p 152 1174 V 14 w(ST)m(ART)j Fi(or)f Fh(MPI)p
442 1174 V 15 w(ST)m(ART)m(ALL)g Fi(and)h Fh(MPI)p 832
1174 V 14 w(REQUEST)p 1034 1174 V 14 w(FREE)p Fi(,)e(resp)q(ectiv)o
(ely\).)28 b(On)17 b(the)g(other)h(hand,)e(the)75 1224
y(callbac)o(k)g(function)g Fh(continue)p 549 1224 V 17
w(fn)h Fi(is)f(not)h(in)o(v)o(ok)o(ed)f(as)g(result)i(of)e(user)i
(calls,)e(but,)h(rather,)h(as)e(result)i(of)e(ev)o(en)o(ts)75
1274 y(that)f(are)h(in)o(ternal)f(to)g(the)h(comm)o(unication)c
(subsystem;)k(namely)m(,)d(the)j(completion)e(of)g(a)h(subrequest)j
(that)d(is)75 1324 y(asso)q(ciated)g(with)e(the)i(request)g(op)q
(eration.)166 1463 y Fo(A)f(call)h(the)e Fk(MPI)p 457
1463 14 2 v 16 w(W)l(AIT)h Fo(or)f Fk(MPI)p 736 1463
V 16 w(TEST)h Fo(will)h(return)f(true)g(for)f(the)g Fk(request)j
Fo(whenev)o(er)e(the)g(list)g(of)75 1519 y Fk(comm)p
195 1519 V 15 w(req)j Fo(registered)h(with)f Fk(MPI)p
683 1519 V 16 w(REQUEST)p 902 1519 V 18 w(REGISTER)h
Fo(is)g(empt)o(y)f(after)f(a)h(return)g(from)g Fk(sta)o(rt)p
1824 1519 V 17 w(fn)75 1576 y Fo(or)i Fk(continue)p 297
1576 V 18 w(fn)p Fo(.)31 b(Since)21 b(the)e(user)g(registers)g(eac)o(h)
g Fk(comm)p 1108 1576 V 15 w(req)p Fo(,)h(the)f(program)f(kno)o(ws,)h
(in)h(principle,)75 1632 y(ho)o(w)c(man)o(y)h(requests)f(are)h(activ)o
(e)f(at)h(an)o(y)f(time.)25 b(Ho)o(w)o(ev)o(er,)16 b(it)h(is)g
(probably)g(still)h(desireable)h(for)d(the)75 1688 y(programmer)e(to)h
(b)q(e)i(able)f(to)f(inquire)j(ab)q(out)d(the)h(status)f(of)g(the)h
(list.)22 b(The)16 b(n)o(um)o(b)q(er)g(of)f(outstanding)75
1745 y(requests)g(can)g(b)q(e)h(gotten)f(from:)75 1896
y Fk(MPI)p 160 1896 V 16 w(NUM)p 279 1896 V 16 w(REQUEST)p
498 1896 V 18 w(REGISTER\(request,)j(num\))117 1973 y
Fi(IN)155 b Fk(request)452 b Fi(non-blo)q(c)o(king)13
b(request)i(from)d Fh(MPI)p 1470 1973 13 2 v 15 w(REQUEST)p
1673 1973 V 13 w(INIT)117 2045 y Fi(OUT)108 b Fk(num)504
b Fi(n)o(um)o(b)q(er)13 b(of)h(outstanding)f Fh(comm)p
1441 2045 V 13 w(req)166 2170 y Fo(A)h Fk(comm)p 334
2170 14 2 v 15 w(req)g Fo(is)h(de\014ned)h(to)d(b)q(e)i(outstanding)f
(if)h Fk(continue)p 1187 2170 V 18 w(fn)g Fo(has)f(not)g(y)o(et)g(b)q
(een)h(called)h(for)e(that)75 2226 y(request.)166 2359
y Fj(Discussion:)166 2408 y Fi(It)g(ma)o(y)e(b)q(e)j(desirable)g(to)f
(add)g(other)h(inquiry)e(functions.)19 b(F)m(or)14 b(example,)f
(getting)h(the)g(list)g(of)g(ids)g(that)g(is)75 2458
y(outstanding.)j(Once)e(w)o(e)e(agree)g(to)g(the)h(general)f(framew)o
(ork,)e(w)o(e)i(can)g(discuss)h(these)h(details)d(and)h(decide)h(what)
75 2508 y(is)g(needed.)166 2647 y Fo(Finally)l(,)26 b(since)d(allo)q
(cation)h(of)e(the)h Fk(t)o(yp)q(e)p 901 2647 V 17 w(req)g
Fo(ma)o(y)f(use)h(some)f(system)g(resources,)i(it)f(can)f(b)q(e)75
2704 y(returned)16 b(to)e(the)h(system)g(with:)-32 46
y Fc(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32
328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40
611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836
y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062
y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288
y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514
y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740
y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966
y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191
y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417
y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643
y(47)-40 2699 y(48)p eop
%%Page: 6 6
6 7 bop 75 -100 a Fo(6)894 b Ff(CHAPTER)15 b(3.)35 b(EXTERNAL)16
b(INTERF)-5 b(A)o(CES)75 45 y Fk(MPI)p 160 45 14 2 v
16 w(TYPE)p 293 45 V 17 w(REQUEST)p 513 45 V 18 w(FREE\(t)o(yp)q(e)p
738 45 V 17 w(req\))117 122 y Fi(INOUT)62 b Fk(t)o(yp)q(e)p
401 122 V 18 w(req)430 b Fi(T)o(yp)q(e)14 b(of)g(request)h(to)f(b)q(e)g
(freed)166 247 y Fo(It)g(is)h(legal)g(to)e(free)i(a)f
Fk(t)o(yp)q(e)p 625 247 V 17 w(req)g Fo(for)g(whic)o(h)h(an)f(activ)o
(e)g Fk(request)i Fo(still)g(exists.)k Fk(MPI)13 b Fo(will)j(deallo)q
(ciate)75 303 y(the)f Fk(t)o(yp)q(e)p 236 303 V 18 w(req)g
Fo(when)h(it)f(is)h(safe)f(to)f(do)i(so.)166 360 y(One)j(ma)o(y)f
(receiv)o(e)i(a)e(non-blo)q(c)o(king)i(request)f(for)f(whic)o(h)h(the)g
(t)o(yp)q(e)g(is)g(unkno)o(wn.)30 b(T)l(o)18 b(tell)i(the)75
416 y(t)o(yp)q(e)15 b(of)g(request)g(one)h(can)f(use:)75
567 y Fk(MPI)p 160 567 V 16 w(REQUEST)p 379 567 V 18
w(TYPE\(request,)h(t)o(yp)q(e)p 776 567 V 18 w(req\))117
644 y Fi(IN)155 b Fk(request)452 b Fi(request)117 719
y(OUT)108 b Fk(t)o(yp)q(e)p 401 719 V 18 w(req)430 b
Fi(t)o(yp)q(e)15 b(of)e(request)166 920 y Fj(Discussion:)166
970 y Fi(W)m(e)h(assumed,)f(for)h(simplicit)o(y)m(,)c(that)k(sub)q(op)q
(erations)h(that)g(are)f(part)g(of)g(the)g(user-de\014ned)j(op)q
(eration)d(are)75 1020 y(simple)e(p)q(oin)o(t-to-p)q(oin)o(t)g(comm)o
(unications.)j(It)e(ma)o(y)f(b)q(e)i(p)q(ossible)g(to)f(allo)o(w)f
(recursiv)o(e)j(use)f(of)f(user-de\014ned)i(op-)75 1069
y(erations)c(within)f(the)h(de\014nition)f(of)g(user-de\014ned)j(op)q
(erations.)k(Namely)m(,)9 b(that)h(the)i(requests)g(in)e(the)i
Fh(sub)o(requests)75 1119 y Fi(list)h(that)h(is)g(passed)h(bac)o(k)f(b)
o(y)f Fh(sta)o(rt)p 643 1119 13 2 v 15 w(fn)h Fi(or)g
Fh(continue)p 902 1119 V 17 w(fn)f Fi(b)q(e)i(allo)o(w)o(ed)d(to)i(b)q
(e)h(user-de\014ned)g(requests)h(rather)f(than)75 1169
y(just)g(regular)f(p)q(oin)o(t-to-p)q(oin)o(t)f(requests.)21
b(Un)o(til)14 b(non-blo)q(c)o(king)f(collectiv)o(e)h(is)h(de\014ned,)g
(it)f(is)g(not)g(clear)h(what)f(to)75 1219 y(do)g(ab)q(out)f(them.)166
1434 y Fj(Missing:)166 1484 y Fi(It)j(w)o(ould)f(b)q(e)i(con)o(v)o
(enien)o(t)g(to)f(b)q(e)h(able)e(to)h(attac)o(h)h(new)f(attributes)h
(to)f Fh(status)p Fi(,)h(so)f(that)g(new)h(op)q(erations)75
1534 y(can)c(return)i(new)f(information)c(with)j(status.)19
b(T)m(o)12 b(do)h(so,)g(w)o(e)h(need)g(one)f(additional)f(callbac)o(k)g
(function,)h(that)g(is)75 1583 y(in)o(v)o(ok)o(ed)h(b)o(y)h(W)m(ait/T)m
(est)e(calls,)i(with)f(the)i(extra)p 855 1583 V 15 w(state)g(and)f(the)
g(status)h(argumen)o(ts.)k(This)15 b(callbac)o(k)f(function)75
1633 y(transfers)h(information)10 b(from)i(the)i(extra)p
733 1633 V 16 w(state)g(to)g(the)g(status)g(\(it)f(is)h(only)e(the)j
(later)e(that)h(is)f(accessible)i(to)e(the)75 1683 y(user\).)31
b(W)m(e)17 b(also)g(need)i(a)e(new)i(status)f(\014eld)g(whic)o(h)f(is)h
(used)h(for)e(stu\016ng)h(information)c(generated)20
b(b)o(y)d(user-)75 1733 y(de\014ned)c(requests.)19 b(The)12
b(user)h(pro)o(vides)f(its)g(o)o(wn)f(status)h(deco)q(ding)g(functions)
g(that)g(can)g(access)h(this)f(additional)75 1783 y(status)j(\014eld.)
75 1987 y Fe(3.2.3)49 b(F)o(ailed)17 b(User)e(F)o(unctions)h(and)g
(Cancelling)i(Requests)75 2149 y Fj(Discussion:)166 2199
y Fi(This)12 b(discussion)h(is)f(v)o(ery)h(preliminary)m(.)i(W)m(e)d
(need)h(to)f(mak)o(e)f(it)h(consistan)o(t)h(with)f(non-blo)q(c)o(king)f
(collectiv)o(e)75 2249 y(if)i(p)q(ossible.)166 2388 y
Fo(The)j(user)f(functions)i Fk(init)p 617 2388 14 2 v
17 w(fn)p Fo(,)e Fk(sta)o(rt)p 785 2388 V 17 w(fn)p Fo(,)h
Fk(conplete)p 1024 2388 V 18 w(fn)p Fo(,)f(or)h Fk(free)p
1234 2388 V 16 w(fn)g Fo(can)f(fail.)22 b(This)17 b(is)f(indicated)h(b)
o(y)75 2444 y(returning)c(the)f(v)m(alue)h(0.)18 b(When)13
b(this)f(happ)q(ens,)h(the)f(only)h(p)q(ossible)h(recourse)e(is)g(to)f
(try)h(and)g(terminate)75 2501 y(the)j(non-blo)q(c)o(king)h(request.)k
(Th)o(us,)14 b(this)i(is)f(lik)o(e)h(attempting)e(to)g(p)q(erform)h(an)
f Fk(MPI)p 1549 2501 V 16 w(CANCEL)h Fo(on)g(the)75 2557
y(request.)22 b(When)17 b(this)f(happ)q(ens,)h Fk(MPI)f
Fo(will)h(deal)g(with)f(this)h(as)f(a)f(series)i(of)e(cancels)j(of)d
(non-blo)q(c)o(king)75 2613 y(p)q(oin)o(t-to-p)q(oin)o(t)20
b(comm)o(unications.)31 b(Th)o(us,)19 b Fk(MPI)f Fo(logically)j(issues)
e(a)g(cancel)h(for)e(eac)o(h)h(outstanding)1967 46 y
Fc(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272
y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959
554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959
780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959
1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959
1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959
1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959
1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959
1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959
2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959
2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959
2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop
%%Page: 7 7
7 8 bop 75 -100 a Ff(3.2.)29 b(GENERALIZED)16 b(REQUESTS)1076
b Fo(7)75 45 y Fk(comm)p 195 45 14 2 v 15 w(req)14 b
Fo(that)g(is)h(registered.)20 b(As)14 b(with)h(other)f(requests,)g(eac)
o(h)h Fk(comm)p 1345 45 V 14 w(req)g Fo(will)h(either)f(complete)g(or)
75 102 y(b)q(e)h(stopp)q(ed)g(b)q(efore)f(it)h(b)q(egins.)166
234 y Fj(Discussion:)166 284 y Fi(Since)21 b(there)h(are)f(lots)g(of)f
(p)q(oten)o(tial)g Fh(comm)p 901 284 13 2 v 13 w(req)i
Fi(and)e(only)g(one)h(status)h(returned)g(b)o(y)f Fh(MPI)p
1702 284 V 14 w(W)m(AIT)f Fi(or)75 334 y Fh(MPI)p 152
334 V 14 w(TEST)p Fi(,)d(it)f(is)g(not)g(clear)h(where)h(the)f
Fh(status)g Fi(for)f(eac)o(h)h Fh(comm)p 1151 334 V 13
w(req)g Fi(is)g(returned.)27 b(F)m(or)16 b(example,)g(ho)o(w)g(can)75
383 y(y)o(ou)d(do)h(a)g Fh(MPI)p 323 383 V 14 w(TEST)p
441 383 V 15 w(CANCELLED)g Fi(to)f(see)j(whic)o(h)d Fh(comm)p
1048 383 V 13 w(req)i Fi(completed.)75 588 y Fe(3.2.4)49
b(Example)17 b(of)f(MPI)p 556 588 15 2 v 18 w(ALLGA)l(THER)75
674 y Fo(In)h(this)h(example)f(the)g(user)g(is)h(trying)f(to)f(p)q
(erform)g(a)h(non-blo)q(c)o(king)i Fk(MPI)p 1392 674
14 2 v 15 w(ALLGA)l(THER)p Fo(.)f(It)f(will)h(b)q(e)75
730 y(done)13 b(with)f(a)g(generalized)i(request)e(b)o(y)g(p)q
(erforming)h Fa(p)t Fd(\000)t Fo(1)f(wrapp)q(ed)h(shifts)f(of)g(data)f
(\()p Fa(p)h Fo(=)h(#)f(pro)q(cesses)75 787 y(in)k(the)f(comm)o
(unicator\).)166 843 y(More)k(sp)q(eci\014cally)l(,)j(assume)e(eac)o(h)
f(pro)q(cess)g(i)h(has)f(an)h(arra)o(y)e(of)g(size)j
Fa(a)p Fo([)p Fa(p)p Fo(])d(and)h(its)h(v)m(alue)g(is)g(in)75
900 y Fa(a)p Fo([)p Fa(i)p Fo(].)25 b(The)18 b(algorithm)f(w)o(orks)g
(b)o(y)g(accepting)h(data)f(from)g(pro)q(cess)g(\()p
Fa(i)11 b Fd(\000)h Fo(1\)\045)p Fa(p)17 b Fo(and)g(sending)i(data)e
(to)75 956 y(\()p Fa(i)10 b Fo(+)g(1\)\045)p Fa(p)p Fo(.)20
b(A)o(t)15 b(eac)o(h)h(step,)f(pro)q(cess)h Fa(i)f Fo(forw)o(ards)f
(the)h(data)g(it)h(receiv)o(ed)h(in)f(the)g(last)f(step.)21
b(Once)16 b(y)o(ou)75 1012 y(shift)i Fa(p)11 b Fd(\000)h
Fo(1)17 b(times,)g(eac)o(h)h(pro)q(cess)f(has)g(a)g(cop)o(y)g(of)g
(what)g(w)o(as)f(stored)h(on)g(all)h(other)f(pro)q(cesses.)27
b(Use)75 1069 y(p)q(ersisten)o(t)17 b(comm)o(unication)f(requests)g(to)
g(send)g(and)h(receiv)o(e)g(the)f(data.)22 b(T)l(o)16
b(accomplish)h(this,)f(ha)o(v)o(e)75 1125 y(a)f(separate)f(send)i(and)f
(recv)g(bu\013er.)20 b(Initialize)e(the)d(send)h(bu\013er)f(on)g(pro)q
(cess)h(i)f(to)g(b)q(e)g Fa(a)p Fo([)p Fa(i)p Fo(].)k(After)c(the)75
1182 y(send)h(and)f(recv)h(has)f(o)q(ccurred,)g(cop)o(y)h(the)f(recv)g
(bu\013er)h(in)o(to)f(arra)o(y)f(a)h(and)g(also)h(in)o(to)f(the)g(send)
h(bu\013er)75 1238 y(and)f(rep)q(eat)g(the)g(pro)q(cess)g(un)o(til)h
(done.)21 b(\(This)15 b(ma)o(y)f(not)h(b)q(e)g(the)g(normal)g(w)o(a)o
(y)f(to)g(do)h(this)h(but)f(I)g(w)o(an)o(t)75 1295 y(to)g(utilize)j
(di\013eren)o(t)e(features)f(for)g(discussion)i(sak)o(e.)k(Most)14
b(p)q(eople)j(w)o(ould)f(probably)g(do)g(a)f(sendrecv)75
1351 y(directly)i(in)o(to)e(the)g(correct)g(lo)q(cations)h(in)g(arra)o
(y)e(a.\))166 1408 y(The)20 b(Blo)q(c)o(king)i(C)e(co)q(de)g(is)h(b)q
(elo)o(w.)35 b(This)21 b(is)f(to)g(sho)o(w)f(ho)o(w)h(it)g(w)o(ould)h
(b)q(e)g(done)f(no)o(w)g(in)h Fk(MPI)75 1464 y Fo(without)15
b(a)g(non-blo)q(c)o(king)i(request.)75 1627 y Fb(MPI_Comm_size\(comm,)k
(&p\);)75 1683 y(MPI_Comm_rank\(comm,)g(&i\);)75 1740
y(/*)j(init)f(your)g(location)g(in)h(array)f(*/)75 1796
y(a[i])g(=)h(i;)75 1853 y(/*)g(set)f(initial)g(send)g(value)g(*/)75
1909 y(as)h(=)f(a[i])75 1966 y(/*)h(process)e(to)i(recv)f(from)h(and)f
(persistent)g(request)g(*/)75 2022 y(from)g(=)h(\(i)g(-)f(1\))h(\045)g
(p;)75 2078 y(MPI_RECV_INIT\(&ar,)d(1,)j(MPI_DOUBLE,)e(from,)i(13,)f
(comm,)g(&req_recv\);)75 2135 y(/*)h(process)e(to)i(send)f(to)h(and)f
(persistent)g(request)g(*/)75 2191 y(to)h(=)f(\(i)h(+)g(1\))f(\045)h
(p;)75 2248 y(MPI_SEND_INIT\(&as,)d(1,)j(MPI_DOUBLE,)e(to,)i(13,)f
(comm,)g(&req_send\);)75 2304 y(/*)h(do)f(send)g(and)h(recv)f(p)h(-)g
(1)f(times)h(*/)75 2361 y(for)f(\(c1)h(=)g(0;)f(c1)h(<)g(p)f(-)h(1;)g
(c1++\))f({)147 2417 y(/*)g(begin)g(persistent)g(send)g(and)h(recv)f
(*/)147 2474 y(MPI_Start\(&req_recv\);)147 2530 y
(MPI_Start\(&req_send\);)147 2587 y(/*)g(when)g(recv)h(complete)f(copy)
g(result)g(in)h(final)f(array)g(a)h(*/)147 2643 y(MPI_Wait\(&req_recv,)
d(&status_recv\);)147 2699 y(a[\(i)i(-)h(1)f(-)h(c1)g(+)f(p\))h(\045)g
(p])f(=)h(ar;)47 b(/*)24 b(add)f(p)h(to)g(make)f(sure)g(mod)h(is)f
(positive)g(*/)-32 46 y Fc(1)-32 103 y(2)-32 159 y(3)-32
215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32
498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724
y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40
1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40
1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40
1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40
1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40
1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40
2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40
2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40
2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop
%%Page: 8 8
8 9 bop 75 -100 a Fo(8)899 b Ff(CHAPTER)15 b(3.)30 b(EXTERNAL)16
b(INTERF)-5 b(A)o(CES)147 45 y Fb(/*)23 b(when)g(send)h(completes,)e
(copy)i(recv)f(buf)g(into)h(send)f(buf)g(for)h(next)f(round)g(*/)147
102 y(MPI_Wait\(&req_send,)e(&status_send\);)147 158
y(as)i(=)h(ar;)75 214 y(})75 271 y(/*)g(free)f(up)g(persistent)g
(requests)g(*/)75 327 y(MPI_Request_free\(&req_recv)o(\);)75
384 y(MPI_Request_free\(&req_send)o(\);)166 490 y Fo(A)o(t)17
b(the)h(start,)f Fa(a)p Fo([)p Fa(i)p Fo(])e(=)j Fa(i)f
Fo(and)h Fa(a)p Fo([)p Fa(j)s Fo(])d(=)i(0)h(\()p Fa(j)s
Fo(!)d(=)i Fa(i)p Fo(\))g(on)h(pro)q(cess)g Fa(i)p Fo(.)27
b(A)o(t)17 b(the)h(end,)h Fa(a)p Fo([)p Fa(j)s Fo(])c(=)i
Fa(j)j Fo(on)e(all)75 547 y(pro)q(cesses.)166 603 y(As)d(an)g(example,)
h(with)f Fa(p)e Fo(=)g(4,)h(pro)q(cess)i(1)f(do)q(es:)p
75 648 364 2 v 74 704 2 57 v 100 687 a(c1)p 167 704 V
50 w(send)p 305 704 V 50 w(recv)p 437 704 V 75 706 364
2 v 74 762 2 57 v 110 745 a(0)p 167 762 V 68 w Fa(a)p
Fo([1])p 305 762 V 62 w Fa(a)p Fo([0])p 437 762 V 74
819 V 110 802 a(1)p 167 819 V 68 w Fa(a)p Fo([0])p 305
819 V 62 w Fa(a)p Fo([3])p 437 819 V 74 875 V 110 858
a(2)p 167 875 V 68 w Fa(a)p Fo([3])p 305 875 V 62 w Fa(a)p
Fo([2])p 437 875 V 75 877 364 2 v 166 943 a(No)o(w)e(to)h(do)g(this)h
(with)g(a)e(non-blo)q(c)o(king)j(generalized)g(request.)k(Create)14
b(a)g(p)q(ersisten)o(t)g(comm)o(uni-)75 999 y(cation)j(request)g(to)f
(send)i(to)e(\()p Fa(i)11 b Fo(+)g(1\)\045)p Fa(p)16
b Fo(and)h(a)g(request)g(to)f(recv)h(from)f(\()p Fa(i)11
b Fd(\000)h Fo(1\)\045)p Fa(p)p Fo(.)24 b(The)17 b(algorithm)75
1055 y(is)g(demand)f(driv)o(en.)24 b(Begin)17 b(b)o(y)f(starting)g(the)
g(p)q(ersisten)o(t)h(recv)f(and)h(send.)23 b(Eac)o(h)16
b(time)h(one)f(of)g(these)75 1112 y(\014nishes,)i(y)o(ou)e(w)o(an)o(t)g
(MPI)h(to)f(call)h(y)o(our)g Fk(continue)p 964 1112 14
2 v 18 w(fn)p Fo(.)24 b(When)17 b(the)g(recv)g(\014nishes)h(y)o(ou)e(w)
o(an)o(t)g(to)g(cop)o(y)75 1168 y(the)d(data)g(in)o(to)g(the)h(correct)
f(lo)q(cation)h(in)g(the)g(arra)o(y)e(a.)19 b(If)13 b(the)h(send)g(is)g
(done,)f(then)h(y)o(ou)f(cop)o(y)g(the)h(recv)75 1225
y(data)f(in)o(to)g(the)g(send)h(bu\013er)g(and)f(start)f(a)h(new)h
(send)g(and)f(recv)h(if)g(y)o(ou)f(ha)o(v)o(e)g(not)g(\014nished.)21
b(If)13 b(not,)g(y)o(ou)75 1281 y(return.)26 b(When)18
b(the)f(send)h(completes:)25 b(if)18 b(the)f(recv)g(is)h(done)g(then)g
(y)o(ou)e(cop)o(y)i(the)f(recv'd)g(data)g(in)o(to)75
1338 y(the)g(send)g(bu\013er.)25 b(Y)l(ou)17 b(then)g(start)f(a)g(new)h
(send)h(and)f(recv)g(if)g(y)o(ou)f(ha)o(v)o(e)h(not)f(\014nished.)27
b(If)17 b(not,)f(y)o(ou)75 1394 y(return.)22 b(This)17
b(seems)f(o)o(v)o(erly)g(complicated)h(but)f(y)o(ou)g(cannot)g(cop)o(y)
g(from)f(the)h(recv)g(buf)h(to)e(the)h(send)75 1451 y(buf)f(un)o(til)g
(b)q(oth)g(are)f(done)h(and)f(then)h(y)o(ou)f(can)g(start)g(a)g(new)g
(op)q(eration.)20 b(Since)c(the)e(system)g(calls)i(the)75
1507 y Fk(continue)p 237 1507 V 18 w(fn)g Fo(for)e(eac)o(h)i(request,)e
(this)i(mak)o(es)f(it)g(more)g(complicated)h(to)f(relate)g(them.)166
1564 y(Belo)o(w)i(is)h(pseudo-co)q(de.)26 b(The)17 b(extra)p
830 1564 V 16 w(state)f(w)o(ould)i(hold:)24 b(a,)17 b(ar,)f(as,)h(req)p
1472 1564 V 16 w(recv,)g(req)p 1662 1564 V 17 w(send,)g(p,)h(i,)75
1620 y(recv)p 160 1620 V 17 w(activ)o(e,)d(send)p 409
1620 V 17 w(activ)o(e,)f(n)o(um)p 656 1620 V 17 w(done.)166
1676 y(The)h(main)h(routine)g(whic)o(h)g(calls)g(the)f(non-blo)q(c)o
(king)i(op)q(eration)f(w)o(ould)f(do:)75 1783 y Fb(/*)24
b(this)f(supplies)g(the)g(init,)g(start,)g(complete,)g(and)g(free)h
(functions)147 1839 y(for)f(the)g(request.)47 b(MPI)24
b(returns)e(in)i(type_req)f(the)g(new)h(request)f(*/)75
1896 y(MPI_Request_type_create\(in)o(it_fn,)d(start_fn,)j(continue_fn,)
f(free_fn,)h(&type_req\))75 2009 y(/*)h(set)f(up)h(the)f(information)f
(needed)h(by)h(the)g(calls.)46 b(Thus,)24 b(the)f(extra_state)147
2065 y(is)g(done.)47 b(Need)24 b(to)f(put)h(all)f(the)g(extra_state)g
(into)g(some)g(sort)h(of)f(structure)147 2121 y(associated)f(with)h
(extra_state.)g(This)g(is)h(not)f(shown)g(*/)75 2234
y(/*)h(Initialize)e(the)i(request.)46 b(This)23 b(MPI)h(routine)f(will)
g(call)g(the)h(init_fn.)f(*/)75 2291 y(MPI_Request_init\(type_req,)d
(extra_state,)j(comm,)g(&request\))75 2404 y(/*)h(start)f(the)g
(non-blocking)f(operation.)47 b(This)23 b(calls)g(start_fn.)g(*/)75
2460 y(MPI_Start\(&request\);)75 2573 y(/*)h(do)f(other)g(stuff)h(that)
f(can)g(go)h(on)f(while)h(non-blocking)e(operation)h(is)147
2630 y(going.)46 b(This)24 b(is)f(not)h(shown.)f(*/)1967
46 y Fc(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967
272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498
y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724
y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949
y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959
1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959
1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959
1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959
1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959
2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959
2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959
2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p
eop
%%Page: 9 9
9 10 bop 75 -100 a Ff(3.2.)29 b(GENERALIZED)16 b(REQUESTS)1076
b Fo(9)75 45 y Fb(/*)24 b(now)f(wait)g(until)h(non-blocking)e
(operation)g(is)i(done)f(*/)75 102 y(/*)h(it)f(is)h(not)f(clear)g(what)
h(is)f(put)h(into)f(status)g(*/)75 158 y(MPI_Wait\(&request,)e
(&status\);)75 271 y(/*)j(done)f(with)g(request,)g(free)g(up.)48
b(This)23 b(calls)g(free_fn.)g(*/)75 327 y
(MPI_Request_free\(&request\))o(;)75 440 y(/*)h(done)f(with)g
(type_req,)g(free)g(up)h(*/)75 497 y(MPI_Type_request_free\(&typ)o
(e_req\);)166 593 y Fo(The)15 b(functions)h(for)f(the)g(generalized)i
(request)e(are:)75 745 y Fb(init_fn\(comm,)22 b(request,)h
(*extra_state\))75 801 y({)75 914 y(MPI_Comm_size\(comm,)e(&p\);)75
971 y(MPI_Comm_rank\(comm,)g(&i\);)75 1027 y(/*)j(process)e(to)i(recv)f
(from)h(and)f(persistent)g(request)g(*/)75 1084 y(from)g(=)h(\(i)g(-)f
(1\))h(\045)g(p;)75 1140 y(MPI_RECV_INIT\(&ar,)d(1,)j(MPI_DOUBLE,)e
(from,)i(13,)f(comm,)g(&req_recv\);)75 1196 y(/*)h(process)e(to)i(send)
f(to)h(and)f(persistent)g(request)g(*/)75 1253 y(to)h(=)f(\(i)h(+)g
(1\))f(\045)h(p;)75 1309 y(MPI_SEND_INIT\(&as,)d(1,)j(MPI_DOUBLE,)e
(to,)i(13,)f(comm,)g(&req_send\);)75 1366 y(/*)h(completed)e(ok)i(*/)75
1422 y(return)f(1;)75 1479 y(})75 1705 y(start_fn\(comm,)f(request,)h
(*extra_state\))75 1761 y({)75 1817 y(/*)h(init)f(your)g(location)g(in)
h(array)f(*/)75 1874 y(a[i])g(=)h(i;)75 1930 y(/*)g(set)f(initial)g
(send)g(value)g(*/)75 1987 y(as)h(=)f(a[i])75 2043 y(/*)h(haven't)e
(done)i(any)f(yet)h(*/)75 2100 y(num_done)f(=)g(0;)75
2213 y(/*)h(begin)f(persistent)f(send)i(and)f(recv)g(*/)75
2269 y(MPI_Start\(&req_recv\);)75 2326 y(MPI_Start\(&req_send\);)75
2382 y(/*)h(register)e(so)i(MPI)f(will)h(call)f(continue_fn)f(when)i
(done)f(*/)75 2438 y(MPI_Request_register\(req_r)o(ecv,)e(&recv_id\))75
2495 y(MPI_Request_register\(req_s)o(end,)g(&send_id\))75
2551 y(return)i(1;)75 2608 y(})166 2704 y Fo(Eac)o(h)15
b(time)g(a)g(request)h(\014nishes)g(\(req\),)e(y)o(our)h(con)o(tin)o
(ue)h(routine)f(gets)g(called.)-32 46 y Fc(1)-32 103
y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32
385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611
y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40
893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40
1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40
1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40
1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40
1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40
2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40
2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40
2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40
2699 y(48)p eop
%%Page: 10 10
10 11 bop 75 -100 a Fo(10)876 b Ff(CHAPTER)15 b(3.)30
b(EXTERNAL)16 b(INTERF)-5 b(A)o(CES)75 102 y Fb(continue_fn\(comm,)22
b(req,)h(*extra_state,)f(id,)h(status\))75 158 y({)75
214 y(/*)h(this)f(routine)g(does)g(not)h(bother)f(to)g(check)g(the)h
(status)f(of)g(the)h(complete)f(opertion)f(*/)75 327
y(/*)i(See)f(if)h(it)f(was)h(the)f(recv)g(that)h(finished*/)75
384 y(if)g(\(recv_id)e(==)i(id\))f({)147 440 y(/*)g(copy)g(the)h
(recv'd)f(data)g(into)h(the)f(array)g(a)h(*/)147 497
y(a[\(i)f(-)h(1)f(-)h(num_done)f(+)h(p\))f(\045)h(p])f(=)h(ar;)g(/*)f
(add)h(p)f(to)h(make)f(sure)h(mod)f(is)h(positive)e(*/)147
553 y(/*)h(see)h(if)f(send)h(has)f(finished)g(*/)147
610 y(if)g(\(send_id)g(!=)h(MPI_ID_NULL\))e({)218 666
y(/*)i(send)f(is)h(not)f(done.)47 b(note)23 b(that)h(the)f(recv)h(done)
f(and)g(return)g(not)h(done)f(*/)218 723 y(recv_id)g(=)h(MPI_ID_NULL;)
218 779 y(return)f(1;)147 835 y(else)g({)218 892 y(/*)h(send)f(is)h
(done.)47 b(note)23 b(one)g(more)h(stage)f(complete.)46
b(See)24 b(if)g(done)f(*/)218 948 y(num_done++;)218 1005
y(if)h(\(num_done)e(==)i(p)g(-)f(1\))h({)290 1061 y(/*)f(done,)h
(return)f(done)g(code)g(*/)290 1118 y(return)g(1;)218
1174 y(})218 1231 y(else)g({)290 1287 y(/*)g(not)h(done,)f(copy)g
(recv'd)g(data)h(to)f(send)h(buf)f(and)g(start)h(new)f(stage)g(*/)290
1344 y(as)g(=)h(ar;)290 1400 y(/*)f(begin)h(persistent)e(send)h(and)h
(recv)f(*/)290 1456 y(MPI_Start\(&req_recv\);)290 1513
y(MPI_Start\(&req_send\);)290 1569 y(/*)g(register)g(so)h(MPI)f(will)g
(call)h(continue_fn)e(when)h(done)h(*/)290 1626 y
(MPI_Request_register\(req)o(_recv,)d(&recv_id\))290
1682 y(MPI_Request_register\(req)o(_send,)g(&send_id\))290
1739 y(return)i(1;)218 1795 y(})147 1852 y(})75 1908
y(else)g({)147 1965 y(/*)g(the)h(req)f(that)g(finished)g(was)h(a)f
(send)h(*/)147 2021 y(/*)f(see)h(if)f(recv)h(is)f(done)g(*/)147
2077 y(if)g(\(recv_id)g(!=)h(MPI_ID_NULL\))e({)218 2134
y(/*)i(recv)f(not)h(done,)f(note)g(send)g(done)h(and)f(return)g(not)h
(done)f(*/)218 2190 y(send_id)g(=)h(MPI_ID_NULL;)218
2247 y(return)f(1;)147 2303 y(else)g({)218 2360 y(/*)h(recv)f(is)h
(done.)47 b(note)23 b(one)g(more)h(stage)f(complete.)46
b(See)24 b(if)g(done)f(*/)218 2416 y(num_done++;)218
2473 y(if)h(\(num_done)e(==)i(p)g(-)f(1\))h({)290 2529
y(/*)f(done,)h(return)f(done)g(code)g(*/)290 2586 y(return)g(1;)218
2642 y(})218 2698 y(else)g({)1967 46 y Fc(1)1967 103
y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967
385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959
611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959
836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959
1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959
1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959
1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959
1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959
1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959
2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959
2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959
2643 y(47)1959 2699 y(48)p eop
%%Page: 11 11
11 12 bop 75 -100 a Ff(3.2.)34 b(GENERALIZED)16 b(REQUESTS)1049
b Fo(11)290 45 y Fb(/*)23 b(not)h(done,)f(copy)g(recv'd)g(data)h(to)f
(send)h(buf)f(and)g(start)h(new)f(stage)g(*/)290 102
y(as)g(=)h(ar;)290 158 y(/*)f(begin)h(persistent)e(send)h(and)h(recv)f
(*/)290 214 y(MPI_Start\(&req_recv\);)290 271 y
(MPI_Start\(&req_send\);)290 327 y(/*)g(register)g(so)h(MPI)f(will)g
(call)h(continue_fn)e(when)h(done)h(*/)290 384 y
(MPI_Request_register\(req)o(_recv,)d(&recv_id\))290
440 y(MPI_Request_register\(req)o(_send,)g(&send_id\))290
497 y(return)i(1;)218 553 y(})147 610 y(})75 666 y(return)g(1;)75
723 y(})75 948 y(free_fn\(comm,)f(*extra_state\))75 1005
y({)75 1061 y(/*)i(free)f(up)g(the)h(persistent)e(communications)g
(requests)h(*/)75 1118 y(MPI_Request_free\(&req_recv)o(\);)75
1174 y(MPI_Request_free\(&req_send)o(\);)75 1231 y(return)g(1;)75
1287 y(})-32 46 y Fc(1)-32 103 y(2)-32 159 y(3)-32 215
y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32
498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724
y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40
1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40
1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40
1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40
1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40
1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40
2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40
2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40
2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF