[BACK]Return to tuning-openbsd.ps CVS log [TXT][DIR] Up to [local] / www / papers

File: [local] / www / papers / tuning-openbsd.ps (download)

Revision 1.1, Mon Nov 18 20:26:53 2002 UTC (21 years, 6 months ago) by pb
Branch: MAIN
CVS Tags: HEAD

BSDCon paper availaible

%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: tuning-openbsd.dvi
%%Pages: 17
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentFonts: CMBX12 CMR12 CMTT12 CMR10 CMBX10 CMTT10 CMR7 CMR6 CMR8
%%+ CMTT8 CMSY10 CMMI10 CMTI10 CMR9 CMTI9 CMTT9 CMMI9
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips tuning-openbsd.dvi -o tuning-openbsd.ps
%DVIPSParameters: dpi=600, compressed
%DVIPSSource:  TeX output 2002.10.08:2044
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}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{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]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/IEn 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 IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/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 A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A 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/CharBuilder{save 3
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 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 A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 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/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/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
%%BeginProcSet: texps.pro
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{
dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1
roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def
dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}
if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}
def end

%%EndProcSet
%%BeginFont: CMMI9
%!PS-AdobeFont-1.1: CMMI9 1.100
%%CreationDate: 1996 Jul 23 07:53:55

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 62 /greater put
readonly def
/FontBBox{-29 -250 1075 750}readonly def
/UniqueXX 5087384 def
currentdict end
currentfile eexec
80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98
74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730
48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f
15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff
da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427
bdd7da12534ba078ad3d780414930da4f8d58abefd45db119b10eb409dd89792
3c6e705479464a4b33ae3d31bfe98efe259f07f7950237bbaee4f7b64ffea83a
757fa717d50c3298392891bfd60e34a056b0d6021da3fd9b8b01bf78b0b23dc4
ea3b0605150d20b27ff9ea5f2524661019d982a2e47cd7c21ee5ca9ed9227821
f8d07119397de26838c11d7b35bcedc43e011626e300f8249ed846d7b5ccbd89
02550cda17ddf113df658fb13f8162681013766863784efac128e01ef997e1a4
30312afac8f3d948edecd7d5090ab5c864b91d7f6e80256f0e1fc99f1102b74c
61cc456e2e1bedf0e627d5f70f738f963a13666405c51ebf23ca077e97570a2f
1118536b92e585cf1dbd5fbf36a0a5d197538c05304e93a15f3c931168d91d42
483ef428b1a3f1b7e548fd1d23b80f5523c8b8bf450b02804fb689f915c86693
f7dfb1c43f681627c7f027021aa3a8179148f1819cd94b8890a9ac63dc1e8a68
f254b64f6f173c3d02e3ebc037da05074017c8b113e94f4e2d26b467ef9da07e
afd7ea7c86e025af52c5ceeb835951e67e02a38daf1e9e698bd21996c1071e84
ff7fbe77f6ddf9d06fa92b16ecebcbe0370b5cd9d450d0f2906a105cadf93ed0
0abc7fcf2c996e7c15e452006e35390d99b9cfc59925f1444c20d9c3e1fc2910
32cf9fa9d580eac1bc956334da391b870a757c3bee6aa3e005b20988d8587876
3ced20c6edf2ac2b22890e37ff7aedeb0986d85ae05bc84339bf2116df48c5d1
cc888bb33d409b06dd70ffd0618b2080442aac439aeb39c20a87ad74ef10629c
f1604db8611e8e4224c5b21ab0c7ebddc77fe9a283b3a8c6a2a9508f6836e3fc
3eae1366b4da4f44cb7a77fd81d278c17775d56cb28b70f18d894bfd1ec1827f
fb16b0d4c1a4ce155da066810170fea53e0d24874d6b91ca943e60e0abd086f6
d1e19ff6d69e91310a2f1afde9b4ed07bb6b718637bfc1093a122fb8b8746b5a
eec496213ae78a10b3db0364bb3b25c79eb3a0ee4e97f16fce9fd90220619b6b
25b99cd6bbdf76032606cb1150065aa61e6fb778049097f2c1578e2c8b89e522
83834c87bb65531a81b01d8e800baa1a9066f5b7d6375704ddd81dc58ba6c6c5
b304cebc375e97207f8ff7a37f6fb5643af15055bd801e04ea77ddaf1f05e84a
3510104fa1362ee5033ff012f6292826450797b69983202abdbf1189225d8f03
0341979d08f55a8a04cae428cafcd1bb663783f5d5c5800fa0581ab3cfb3cb77
369e11052aab801adb8606
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMTT9
%!PS-AdobeFont-1.1: CMTT9 1.0
%%CreationDate: 1991 Aug 20 16:46:24

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 37 /percent put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 61 /equal put
dup 63 /question put
dup 64 /at put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 88 /X put
dup 89 /Y put
dup 90 /Z put
dup 91 /bracketleft put
dup 93 /bracketright put
dup 95 /underscore put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 124 /bar put
readonly def
/FontBBox{-6 -233 542 698}readonly def
/UniqueXX 5000831 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486be465959b1188f76df7824c135a7fb382c4e1
1b0ddfe856b6f34552ca48c24b57dd8448fac257c4d93fb122e1218fd36b99b2
d79dadb8a66613ef11039be77816a7a2d6781fe0d69cecc36232ae87a172afe0
95532a8c7ff40bdd4a5fcfb6ccfd8f73c572231734e0609c6743ee11010f6579
820b367c49069ac1d45760c0ce8dc1e67e2beb72be6d287910547e1b4bb52465
b75947d224998223275a2c340a1c14c04328cc2935c53ee2723f1de6357a291e
14863f6c1411477b3ea074052b30a4c1ef03ab324d678307e1cb02c7aaffa90b
73975378b9debcd3f6aab626a361be8068c60edd0b2be4a7bbf4efa21cc23607
bf7e2556c17b5923d7b0fc036d5fea743c55f2bbf72e8a61995bd63d7104a085
b8dd5a83d9077376a4ae8f0c048606bb9e84c640c52d0a95b35d48cfafd6ebe3
d6eb0ed88c1212818ca93e40614740a77c446b792d02945642014a5d55ba970e
f97dcdd5b839f621a052d1085a1e668161d3ac0227c7867324ede883589b39e5
d152793009cb5a08eb6719a44dd01b6147e3436bdbb28215ce3d29a3b1dfc72b
d942f8cb3376b4e12cff53a793d935346ceb2afc3428cd9313c671ec1911252c
19de341556999aaf7417aa5085daa35ee71353fdc2c7d83ec2dedaabb1b89b99
e4cb5282159cbfb45a286f8d6bf3abdedccbdcebaf6994b17f1be07d10f00cba
47f2fbf66c0cf524494c53786b0f88f5d96a18a086fbfd22b6cd3108ee918369
8b342fe978502afdebf98632d63bc149de9eab94230a55327fb96b72a85ef6b7
acde791164e8f856e95058b875b02a2262b85a2ff02fddaaffc3a476f7abdb58
f5b1df019a4ca14695cf1f238756b3ce61ffa44d543341b9c1a3b422ad6ad0be
db2f2ef0ad1d60a8589decb250451260a0dfafca04c4435a350b80b75f198c1e
ccddca12489fe22c127dbb5c933103e2f510138a3617665e4bfb3614b7df89a3
6f4c9f73316c6609a6915740e8c5045c052e24289ae72ec8b7bfbc14ad84349b
8cc2460c66899089a130a9bbbc1e0b5b480aa6b36aab3b3dcf806cf365d688a8
048330cceaec4395d5ddedaeaeaddf393dba2dedbe016342ce8a46ce74262ab1
e49db6a5bb050fc7364df85e5408f728a49276b413d92ef5515a3a5223813905
5087ad4a786d33dfe24fc73d18a3930bcddccadc735d430e0963a3f116ac6ab8
6b16e808a06d6b92dd41c0d12b47425843b6b1e2ebc73e5a471a25453bacfe46
b5cd0280423ead1dfac535bdb4ca95885f1b3a9a3447f69b5a6a8e6591c889b1
181134cbe9adc643cac2cceac8739bb5f4d85fd712fb15e346bc439f074126ee
7459cde386d11f59ed2ea44da3a06a01020b6474646dc3c95becf88d8ce9af91
7ef36e7781a8c9d7986c02d85a82284e02112cd035590e619deeaaf8c3680138
f5f80ace21505f5a0bfaa45c4b3a2b0ada7bff7ee55b5862f995a318cf5b89ee
5249401be3b871b8f8d7cadfb3fb3fa445e96828c0e5fa7269117febc7ac78d3
8de49bb2ecbbec5459b691045ed276f5c553f5930032e9466b0c4639e5a5a356
e4295a4ce109e96d5b8ff620f24ef5f3e0c66cbc0568886859d95fb40a91d70c
a2f1da6e8e7b076bf89a9d4e5069c90b6f5020dadebc4be22b309711be66973d
b589351d1650f35edc701da59a2a3f4ab072f39489742d17aa2b2815a6c2754a
1e990df37bd91942f33ad93f521220f32b55c8bf02730e6a423e468f6f0b5e15
ba8189e0585fa8d28a8ae233c4e8ed4bd22d4fa0c781d71cba3ce3ea311f0e12
8a548d0e591f28fa853fcad32e60260f122eba422f6a23e05396051d7cda1b42
07578caded65ca0895ab6c266aa9cf6d3fa6e7587a484d6e9c256221dd19457d
a08b05afbb272cba3cb2d7a801b2179b5e4877fea60af1e88fca249d60feb96f
fed7660a18824180a6e300d81e169386f9fa2a3c786a40d0cef98197b9a45da1
3d75bcfea079e68027b07ffdc6c2245f7cd075c77b8429191e55cf23b9d2b5ff
7753323114fe63bf7dd81cf7c7a4020a9a98c6a26e4929ee7cf22dec977c3d19
9ed4f458d346a1c12f715b6d097d9dc281b94cad42c3e9855041fb7a914621d4
0791793e79ec79a1c89097f949efddbbaa95ce25f75529115d4c7196b994b0ba
72d77771898670e6dd5691415dfeef58e073bdbc9dc924f352a26a42da614bb6
6d9b24981c2273f5db21cbeab3200b0004fa4b25220d24d374b5b58ea247f2d3
f6933bf03df8d46c43173acc19e1dafcce81d7add9d8c37b16673b411f0b9724
c7b74d34a1b0e82b4df16c9ffcbaaed160f9b46aea6398eea5c38c358635548e
0089d2b107362903708501f4bedfc7ea6c4601b893b7a6b4da65073a0f58e4b0
8da9d5ccf6cf974a2c983fc74c4b265aa14c66f7de80992aa2e973733336be5e
d20984832656c40e3d4d95ab14b441b7acda096c1ea69aaee6d71f5c72a28605
0c36c097031d6e70db95c613bac133645b059c771a6ca05015cf0f506a1f79da
f4cd763505d8554115c3659ac2c139b59c2f579dd0109ea35db199755671278f
4ced78f4822df144b8bdc272e5d6414acfec99f7748d76f3e8d3d772c14185cd
b36c5b5d30ab8f7ea4d1bdc684621c898b3234ea5a8dba9c5ff7f877df91e78f
935d71d1f96bb74f2c93a19bd1555116e4647b2992beb28d5d4fcb1ad3e0e792
3f9af329e988f21e50d876c44ba73f21075cd60c7b2250b0154fd1acb983c651
e85c1bd07a0ffbd344ae1197248db471e1fe383ecf1ad12ad9da2902c7286b1a
ceaf54f5779f01eb3058cc1bc324d3aa551c43582c17ea6506f7f7370f625e39
204e84967efc287c15119e55ad00d9060bc1d9c4ca077d8048ef5efb3a2b661f
efebb5951953f794208d6fcc3f2faa70279492fc3bf5ae914cbff8c5c6ee6d8c
6e09f92856703d12cf1ad09b5ec987f09e7ac4315d6a6e7318cc0e133f1007d9
588a076c50b8083dc78022b3a6a47ea716cbfdd08d1963c9ecebb0b18bcf28fb
c3b72d8aecd6979c2fc79433608b73dd48337a84e6f9d3676d9a8e996c2bada1
17da9e7b1a86597f0dabf8e99f6e6dbe7f97f56d951fbfe55b0915486bbc682a
74002757b0d87b23135247f784780d0532edcd76462297ce7233311f89629166
ad1b8897cc25e576805d22479f557630fff96e9a41af1d4409366bbf87899dc0
ed6eb63daab522e646aa26a2bc69f2241db2aea2ea46d777d8a9d6e03c484d28
9e781d183ce8cc7474897076a6d1be9c1636b54116773160210eee7c4f3312bd
1a74527f8be865eb25b810b658b4dc71a058174ea40198652a8cfc0c6ab80256
087e2b762b5e0580f5e6a2be4b987832fab0019a5ae4cef40617021807461657
a219c762feb91d4449e57197dd4ab312f91b6e47dffd579cbd86c635bc160ba3
aba6bb58701dcb058c15edd7dd24adabb8ce9f7d6685223111fb1ae7cd54d204
829cdec18fd7d8428ebeb3936539a0c61480988bda524301d01dde586c3ead08
6c78aabd324edd852736009549ed65d764615ad0e29ee5965a07945731441933
47ab1414eaec531fe1ac3258fa3097ca5ae9927ddc6891dbc4a29f62ca043e87
b6e7c859c423f19cc7ec3621623b9b9109cbf4ad764fdd1b3ca7686fc29f1eec
8aaeff15a5079642b7e83ac3841e13de5ce7a60f555f61c25cdae9aaea9cdd3a
0736217cb8e9e3852064aa63e0f99fba13545b1c75f6e0cd9648e451ab709f94
6cbe43a3acd3fc01b025e95e662d9168baed7e97499f14827246ecd3b24a298f
c1189d8de53710ec7465b66e60415e53c48f91da2269a8870fdbe5a48a4f50ec
39d3e2341178af77f20e36df38dc1b2d5696005b8167ca227819e03731e6d015
833ea5c142e53fa81769fd624d31270d16708ef9aef67e31d95d5663332865fa
abd2f92e551bbba71427af985c4cbd880159135a1151b749ca24984498669225
7f3292b6eada3f68b41de814547ef4ee0ff0cb5506b3a7d9e4ee94374780a53d
00db087477a0e9ee0ba93775143bff8bb477d76a58a317a16ba1e6bc404cf1c4
89c2774adb348a9d8b4aef520ebbcb20f817ddc46fccb7d3e7701fbd4f40201f
993a693714b35a2ae7fc0b5f62470827d2844dd743235eb69e60ed57400f9961
caa5759083d135f2cac62b6fecac5ac9a38357040bc5a4488c104211537b90ff
833e3014bd9c02035dcc94f86c002b86d88c86cdbf0d171658633e4595bc352f
6b61ccfb56c1373acc0da255f0ac8bb9e5d2e86e76357d0ca8e6af5395588f9a
34ce66ad5c7a47f69ba140e1e62c1c4bebe1b5d1b0398f2ed13dad3b31e6fc43
436747fbd986f99bdc354349d67a6323f12a419ba35665b825cf433ecfe25b08
1c0e09900d7426f258bf38fec03ec45b42a459a1fc4713c37d0ddbfdaa1c4788
859628847481cb150a53fb421fe81bcd055dd548daa97564065ef2c6142963b6
1096ba3a4bfaa2f2ca1f9bafc65d85463a3ee896cb870b1eec16b83b8b6d0509
8284e6206ef0ef4bdfeb2ce7bfda95064bceb7957b81d1db9fbe484d31d33c42
2c6c02e87cb36663fc21778110ddf89c9495ff18e9eefc81cac4435adc0d2485
715bac2cefc5d942d13b290d34a4ab4d134b484437e6cdf292866d9a1b173055
a7b30e07049676c308cbee7902ccb106b44c4f81a557147b792e23e2f1344fc6
33afa316b0bfd90d348b37aba8b718526209142e26f89c655ed3ae6c9ca5567f
8e3b41d8599dda72c125ffd8d49f9367f20fe1d5479a5a8ac2a1cb34843b960e
1d3181193625cd318b3fe39891cfe7b32f8a0d4dd59e45c32e1fe00d18e61e61
0bb361c1624563b2aaae025191477e70a485e2e1e355ccfae7ea7b72c9a0f88a
ab03aac93d161b3676947f1cf95140554225045a1f3e186ce7638f01d25bed12
0d1d65c4383b173e72f82c26085d62c050d08fa8111ffd1ec8010890c319eb94
bb4dda4227ab05c711585be8e6f9a1a06c008972a966176feb11ef78f3b35bf2
f412a582e710f7f38776a4ea78123495b40043d1582d1159f9c50aee54ee1672
02e41bfd3a8c363e9389839603323f6723bd8dd1d1014125f2867b67e5fddcc5
da5a4d8bed3eef6ab6462f3583a3afae1b7c3b7e1b6ba03d5dbd9c515c344f92
152b32e934d9401866943a3e0cb6fafc94467d882a9d293985d141d0f328ba7b
2407d42802408dcec056fc1bca1f8c7f8b0dff1981866baae460f58538e2e017
67d5315ea752b58f908c28b3900eba69e798132e7175f8d41c6ea5e4af483e36
51d56292c8ffcc8f61e740d1ec91805110adb227f4c5e59d3fcf0f436150aca3
f624d04f5b36bb1406031ab9bb5178b51312bb98d2ccd6cd1a3dfbee21d51e90
b64b21584050b7f759dabcd83cbb121e00b170d731e474da28f02d8545d759dd
f974e78566786dd6dd1354d6b950f64c3846f1c4f89275cf4c6f2690c3be55b5
b1bbd135cc94378b31ecd73452e6d0c714d59dd6090d57fdcb60d7133d1ed8ac
a16f5cc5822ea23dd1adeba0b25e88dbd64c85532d75ef03e0a5d5ce4e945659
f6c75af53984f9bef1f30f62f8acc0b55987ea5d3602a3fb5d5351798a57ecc9
87fde6cedaaadb9f8ce6b01c482db797d0867b926ad428bf68a836ef0a8ac3c8
49cd312aa40ce86cb091df4c948bf9211b5e16cec0a532b5ebbd7e0f00fb6128
558ddb837bcac67ce2c472c59b71435be8d8efc0efcd98aad1997738ac3514f3
086a6aaa715459911dad32ef6b7df90b09712d54f9d5ee9e71235debc2d9b5b9
40f973ab24245ee3045f4ac946682ea13bc1316eb47b159ddf7a36c766af6632
9dc4dafc31e7d42f5095f6389f63f70f4689bd8ea39ddf8d8383349033315d9e
1d2c1ce5dc2fec7b9edaabebd22ab2ade3bd3eda7d03403cbadb7474761380e6
9b6b7f3ec2df56406b43473f1c796a14d3c07a504740d8e7f7ea696cd15659bf
1326b1cc2102ccecd9a29b2644f8a02e365b0cfea329ea213add3a18abdd45f2
14d61add310c1fede2b6d0d59324114f22a138e4720249c8b19484000fc81385
30bf791c685431a7bb8399476167eefbf118454cdd3998b395ff34743312f5eb
9b3e1894c87d286734586e737fb679f8d06ef909cb51a291d20f2de31ed558b8
d7edbfff1b478334739f56fdf86fc897d2c981137b90b746aaf95a788a839509
f4e3e85365e85a99d20f29fa10bd40b88934e4a9cef0e4ee46a7e55df9c5e094
9d61a43b5cba55b5438f329631c3af1fc6c9f9ae6c4cf8b6905d3fc8cd069e34
ff0f9eff449865caae28c3d43ea5264b451080e2efc16c4ab5aa2615ec3c9168
61bfcbb05778d65a48debaad825de9a6bab45b1fd05637f132328dd33af860b5
78616ccb8c64efc09570ee5d9456372488f87060e22ed1578fc995284260b685
268d4759f3870c2269cfb81b9003a7499d2e06caf2fd24aedfe9bdbb08cd8c1b
889ace2ef0dd18fb0a429ead01f2dfc08ccdb4e70514c5856946ca249a78d0de
7f015f0014cbfb94697dd682a32471a8fcecb8967ca8010c168b4330a0ddc5cc
e93fb6b206b0cfec37dfa3c25bb6a402bc6512166b1fd1135d8885ec6a1cce64
0d3786fd46a2406d360f705a30426af32ea38ea7a97e14c9f30db1f11c6ab15a
b283c22e808d37ecc0d280161471665eff8a867fc201e6a107fefda69194eab2
2d5a3bf99cc67f8113040a4cd9c86fccf864dfd21d42b7950a646c3fb0a7b763
395be78426486a8b69eae6ea78893b2a954a641cea67519be17923b682ad9916
35d867ebdc797826b5a2fd85e84f06d7929721a8595409525218b25c0f79eae5
2e75de9159740edd3193daf198049ae7b810aa53a60e349f57bc1be57c161892
ea306478bad61c83e66dda69bf1703c8ac4f7cf28621bee798577507fb6b1959
a09d40590b3dafe6ac1c6e0c428ee8dda6a82510e1ea77c2d2f32a49f5f7c395
d06b7d8b6eb641efbbb53012f3e3ed202f8a439f62de003bb945594138581e92
3e633a83213d1d4f6dae96b508833b4173e5c451f685ff89ca3df227eb1b3164
69a624ea78c018f487c251779e8d353aef339e2477e4a22390abc512f674f443
717ea1f22b71e6ade75faecc550387e8b726bb69011c3aac831af592b5f2f53d
0659bda6abdec09f3958b32ececc8b6f3fd8a8abaa21417361959cdcff0e3e9d
f04ca66c6c2d9938c54ed5ad79a4f60274b62ec0bab516a24368e1715ab7439f
b556629693e88cf1c73f994369e08b8d68c4b721b1193c417f026939bc5f038a
45c2f802a9bd76041b1a5a9d3811dae67e8d24442173368cb902dd8736846c48
19562073576d8d95f82b0b5d0de6185ad923e21c67748fc55edadafbce3cb4fa
6eb275ded694cc0f6301b945c0c67c8ee1ac03f11756fcdbd65763f8e378edf3
c7e5f7236e066f67f8b3cd8f4417dc12a6110231bc9f23a82cffcd7a2e29cdf7
b033f434fa8635aee4d4287dd6cc8017cbc02b996b5dd18057d24647dfcc6436
1af110c3f86259dd23d253cb4e7d4d9b8eeed4293f233660b935ba9989b75d72
9d55305d5509670285efdc68b959f5a851b10530694ef2f1604be5d442d4e116
5093fae63acdc4e2145d250b434f290c33051c7dce3403e0e3591e21ff07a922
fe41c3309692609c150a4a892356de2310ac212d2843833b36948edc30b50d37
7b2bc004731be52b7faf4bdde8871b1af1e4f18dc0fd13039a225ef791d25e27
d42389b83092301881d3dcd1e919f1133755efc300ec632210028ab0cc1c5399
c61393360513da2bac6c132ce2f0078eee435d89350774fbad0651eb5ee31dcc
1900beefcece355e906922e9dec813e038fbce41f6d98bbe1d840d4f0fe7be8c
9268d721c651331499afa916f3baf550fb992f4d7ee57f64259bcb6dce5a72a3
d5b1afabfc59ce825dc954762007f806eaf8bbff86862e14437bb1cfa21ffb17
d2e9b80c92792c4312e7e8012c4cf030bef14ccf6dc0d6f3188157f638f6746b
fe4b4add7e04c10764f0dd1a820cae8319978f3283998636673a6c68fbc996fa
c3be6daebc0af4b2bc5a5f9de0038d4c824eaac33f30dc9a9fd9e1ff4f89714b
ea9428f014a88a9d278b723412c6cc110f056c9513cc0ed46a74525111f12b07
95bc5e4647253d32d285b8bc08b7dcbad2f1938c0a901d75388da83951f5dc25
e240fee6c648a6e2d89ba32cdef52aff28d5f421d392de72e86269d6f5b16c81
d62f45742ba2c1bf2e011303bbe946d30a45cf37ee49bef5adaba26edf2e7be5
6b894771c6d1c19a0a6c0779b3c8aec6cefb08de68b7d138faf16fe01b3c994b
0e15039b495276737a0962a34da755569a92cd6ea4628d5da4574d9ee27bfab9
dafa930d5eb54bd63495740acf38c9627d3785a7a77c53ff647f18e38238ecb7
8635aa79bcefa51a4c7ad37657c13b80927dcee34f48d43edb6e929b0f727dd3
39a4b46b556a5f8c051001ad078d0d0e4325123982bf60f1e46d8b8219d7c3c7
547dc32b4847097551073e25bf92d005e5b4a5c2de1ce8fb8ecbb733ec2096ec
b6524582a6c3e759b4a4407d1258c2d1b2fa7873958dc5397f757152a4228e3a
baea72c0483b96ecfa90cdb076b2455b7db252b29b8d0c1b91e126da44693d71
fe09a864198091f6bcebc7254f9f2f2b1db4b9855a868c7c84dea0327451cd33
9bcb7f1aa11aefa6de5565a44514a7f951979c046391b86d889403ed7d10ee39
4a2899c3ed003f9dca82efc2bb8cdf613b48baac79f3d5af8e17321e4e712d7e
ae02eb7521f1299c1f97de903c8d1bfbc7cbe90622758064af62097968fc7021
1f3ad20ad942ae5d86c5d1ca2ccea805ba379060e14735064e250429f4b81939
c3f9d86ca0512945b9a564c33772630ade7b0f43d23810ecae1cb1bed2ae4a3c
9206dc840de82f0e8c5b05d9bd1ead5ae4a0fe5059db0e2fcd74effbe0ee7a36
20aa98b8b437546c97e75541036a50f3cf2227c40bba0fc7494d4237902d0c47
3d9edf2f2773dc14f9c0023e33efaa5215bb894cc893b035e39d349e849fe370
0e977f507ac074626eb24f6eced6a915340f408ea98e648470e05f58928097cc
5262edb044d57941daf161636b13a2889e7475406a1803502b535511025d5eb4
852cd6117d1d356bae599e63a5f09c0c874fa7d53e54020a8701efa8e442f061
595f28d887008d8fcc4cd7e5b5233063a25379c8e314ab86f2ffd44bf3edb4c2
31107a5d3e89ac4317b2ba734cb8f62787857402fb24f6770107e0f8ecaf8996
f22f7820125fad03da58de254bf8dd1cdd47af41a65e039e4596a0bc7a61330e
88deba2728c72a9628673e45ac07e9b440bfb615764d913035dcf4a039b40ce2
8f2143cef33df17fba87bf6fc50c3f1e3f8841d4614e8e5ebaa4b7613756bfa4
6b44110ae9c1d6d9fecdbd0e667c409f851333f460fc63d08a34ecd2231b786e
832651d8a658ab9daeb7fc18c2fb80ef570522adbe68af92c9ceff1013e69be6
63fd85abece75d5263c20a47939918d45eeff104470dbb52cb1c9f96f414cefe
92135ec3facf629d0710a55e3f68080d82bee709902927340c291ddc08b2834a
80809c2ad0a8b02af3f901d2e828a1cffbc6c1c7956bcab10426a20667d2ac6a
8966e376b4e457835dbdaf3ba8afe0b80504f7be997ba4f9196bf87f3af1212a
9781919b8d351828a396dd161cc4ce1c2cd64e3d34afb564692b0025342a03ff
957d211e87db975ad36095a56956e145e69dd0f86311f2b0a6ca1fb9280b7d69
6ce5eac48a832d6cfaf4f4408d6625acb1509172c63fbd16bfd3d9a830eabccf
6546d8c053e8d07788fb36054a1fa0571ee2191fe96f79fcfe150fbb9d0b2826
fe5b060417ab8fb0e2facfba939f5012771e83373470d7a482ddf4fc35181f3f
555b8e9a39b8f2a828938c4a0ca3d7956a8a0107176538ae3fa9bbbfab0c9efc
1e8e0bda9652fb623c5f632e3294c49a0d8f7a78d67a04cb4a077c681cf7b983
b98e8c7f3d65ada914f3041a94f41b2b29edb37c9e96a99e68dc118c935919d8
10b0923906f0e75fe4e7ca7981475b431b2a47de85db6e7c62f1e15ef801cd40
c6eaee832ecfc3d862b86cc784079cad9add85b35a30034fd4b9ea06f98b213a
81a579d43c163a30a3ac1bf21d7c07a65e35a11a29489008b549b0ca24126319
5546859756a079696fbeec81f2819e8cb460ddde0ff69d0e0ecc6699d13d3fa6
7d3dd2681e4c8e22e70b56580974ce9a08294170e06d06ebc10498faf4e954bd
f58466128bc9701b8872b906c301bb3f81296d36d25c8b015ad1c3ea92d3143f
5eaf896aeb195e5fcb737c13bf7214b971206647e7eb9ee69405005c3030d126
b2544845cc3f51799a83b95c77f7b2fd8105c9563cc7a9258688b79ee5f99e1d
da493ad3a626d884202fb7f23de0b5434732af72ed118fee6f264724ef16a3d8
108ec14d2b8f64ead7cbda7b2049e4866b1f035c659868bca9154575b8c01137
32f9e77a6a3780370fccc4a00ae18ffbccf5153d86d6aed4348489a935bfd8ad
7b9f4e8c6f0e7c5d82ba398d574d53e5e4f30e2896c7536507829499d83701b3
df33ebd02a48c85a68f44d3925e0fbc83766cdf62b586477614337ca0850dfce
8a8da9a0ad942bee83bd55a2ee854458c135f22a5c6c22c390d8e3ecb1858d18
1422974a12afef4388b52f44ae9e3ad77f43e60176baee703a23b7c66d061c21
74d62771cae7ea9619aacd472e83cdf5b9c97b57bc4d09b4d3757765ae40ae17
bb15b23894e2e153ae3eb34973dfa3bb0388a2d7e89fd76dbdc545e20e5fb4e2
82ec3b6e35580513e679a00992b825247f5a36dca77c386c0fa6f256008fc987
44b132a98ca55d97f1dbcd8a65d6b529c67d1597fb81a85cb05c83a8f8de7abd
51e8c14f707abd0708c3d9148c852ec9c3b636981d7c2c431a934b01b2f9bf34
00984840074682fdbaa1cdc2d6c1775b1ca0ac1c5a025b0e6164667142f9570d
dfc93021601f3f8973f5efd2b934c58a470759f639a0cf3da2507cdec12fd6f6
1f5fdb41e8b85174d63f2db6ce925b98cce341b1f91e19fc5329f55c0af9724e
21da1f6a5f7db957c580bb8d9dc91d99d8bcd6eb84b2548ae1c4d9aaf34c51c4
0f206f3b2169c59c6eca33b8b1923713886ff9b83a249dd9b23f533c9fa3f203
d4cff9ff8a3c283194dd9d9b59d82c16e7e7875d6e8af53537d69514d59fc280
afa6c9b3128f58e109984b1ba1f67bd2861a58e1ef708e0b62aaeabc512d91d6
eca16a66aa72a69c1c9d66510a77fcb354c6d4099cc421702f318b9acb5373f6
2363f29160736272d715f310865ae70312b039beb977974aebb5fdd2c097d3f1
996c90cd8b7159fbc58f0778914f36db6f3616b18d48cb5bcc3ca5372fbf4e53
147d297dac5dcdb3035a1752e74b7779c52ca542655f1da48c13743e3de939ef
2addf8452f5ec3080bac0dafc92148257461360f5ebeaa51fa7415e41facf7e2
eea2c56218d822594aa3c7a1eeb6a02b3ca6ca7229da60aaf9777bff4f7164c9
18953d2491d332866411e16990242d9f00724537b4d31812c490510b38d31321
2070e793b29a873d799f0f104a1022383567f28739c6edbb83388c46517473d7
8e64a2eacedea660f34059cd5b02b1debfe06d553438de231261a2c2ffa3dcd1
c6b24c641829b14acd089b9a9e9b828a10fe23ed7fd0834b3d873aa858dbda03
e1d7c97321e3a01311fb58bdc11bb918ff65b091a1da8d36f9025d3f0f976702
c45a51013ce97462e2f0d9c052140d6299d27cc4c6934c684df678e8cce551fd
d02cd2f7fe2cb5295f7ac755c833fb381beeae7d7a0514f3094d002b4af15d80
15fac238366a84fd830cfc6e5112a18b192ec3bffd891a3f2489551369e36508
699970709d6b6d399d1c2920fdd98a37d93a0e420e7ae13ce39105b1c551f058
559b3c8c93b8617cd33ae534d796761cd878f5c6261433332d0b25df85fa5ce1
e8b074b83773d005e804fa5e0cc71f1b5bdd22b3300455836aff4e677cb943ba
d19cf833c2c1ddbdff2c08e6e53ba6e2a2130e569c601add518c89f794637d92
f98b213eaaca1924aa1a6bcd09b7ce4bcbfd55d3fb351f33582832efc808d2c4
f515579ff3ab1c9279d684de22e4f7fae41272016554c9eceb8f2c63f3ffa5c2
61a3e620e541c4edd1294c496a5abdbbcf07c5a3fea8c6fdccc9321e1fad4adb
0a56de2d01e1bd7f8525c42090ba8baf15d450e448457f555336e9ee8c21984b
230854d14d94dea28fc5709e4d0cdbcbd74056f510760ba2184d0f5e2c2220c0
3f8a0d0a7fbedba3502e3c0a9131ee665ed60ad27c76c152a62c44bd6bdb5adc
1b605af0961ca8c2bc16cbd924a21168074c4cade013545175f90e24537c7973
4f6049a1590f9ff865ebf1ce2e251fb9d37d2e772d142f3e95c0da766fce66da
dc226094476f18ca6488ef0a46ff696ede91d7e400dc73d7fc9a085e44daa86d
c3df5aa14d3335b07e8ef1d2434011eba525b161caf811fc77e64b4f4cfbaaef
a997b74410ae556212ee824df99adfbab8c899edbdf965bf2e326f6310e1ec86
755da7cdc11f7db5bfe49e23b174cdff322b9ebe60468e4cebb839a355e46013
564b2a62aafbc57a71e22754d1da86698d5db63f122397b05dd2c16df42a0305
46da87b8f78275ff3a58ae5a631c5501d0c7f51a1fcec09f45003563fc2fbe44
d5b524c966e6ef7ddba98e47717ec04d34cd13d83ac39a588f6b49d12173f7d8
b988cbf5f769e0fd82cfecda82ed3e7b3ed7a736f356f107a728c157751f4737
178f21082b6ecfca358635dc5f9be7f7430c11e930a72018ddef199a32401059
d799a82d119ff81f1c98d10efb166bccec68fa93c3a216aba0e035c99ba1f8a0
1ed721d2105916fb95e83768f65884b17e0afda9f1045999b886999c3d0a063f
179d5c9742354913224288c4fbe380a9254bb3df8099d0d18378aa75bc4ba4c5
e51e5faa0930c028cb7ae2a4bceb5be1f0eab4712bb58a3ce318ad86d360ec58
13cda198d281c1c431d7b9ab7fb1d5c3b7147d65f71c7442fbd0d047e68f80f0
2f6ce162e7dc3c8722e588b9530eb900becd268446255da5cbb16001e12b8bb1
d246d6cc0ef72308fda1df5334b3a79e28b25aa25c7f8403db3e04248ea4027c
3be703ec5abdaf4392c02da7cf5ac0572c4c540f1a800aeb3fb893b3ee1be60c
8719fc4d030993a144c05647a7472120c752a2488998ad1910e1b8151c432acc
9d700756e2fcacb32b898a603d9951e8c83b2ddd2b92cdf26333b433fa2026fa
db06d7e9c1801c08e53fff14596489907b2b675e280478809ed8eceeee9d70df
7e8393ddae12927f83da03393f114244de229a0e88e50f6214a713674c371bbf
045ab30dbf8a49496fbb25e836f4206a75eac02fe0a6c59902164ab8bf3ab615
813c69d4914fe7c6625bbfe5d111bc8bc6d53d305bb1c74a4c5fe51b18536eae
033453073fa1bd5f2cc612b514fc42ddcb5493102e0467576daccbc95ed0b2bc
c81a41181de39b1ffc9afbe4c587f7033900fd428551a9cb61b8a0c09e3aace4
3c8a69dde61bca1cf42f34083c1c41fffd87e4673de6edf1d33797a5f2a49b54
92b1839f899b5b9376ec323e4dee85e6a18b3002d6ee3933f2247b7470e1ebdc
62dc06e93890df553ea710e3265847972ec4763c8c6a72f8bc17b21ea6be23b7
0c5b31bd242b4238578329c1f50033c121d57f090a93e0a776799188af109cdf
74230271ffd85d0b3d08dac4a89d8e21e4fb5a792e720e5c825f6f3e099f726b
4022f4bcfa7a8462e7cb4993fdbc0ba358f0b3350084a6d8f461d32148a1f673
ab5ba2cf9ef23e04a3cab79b372c9af2ab9d4f2e0a62e1fb2ac8a1c6a2c5c8de
df34cc217a36b6b66caf4b9b07d92fd343c21c3e5a202339f3fcbeba8e5e1afb
12720759bf8a78b65b50e9aadaa78691d3288009a54fe098568845042d53ff4e
5611ce5b235cdfaf2731550ad3dd8dc21b529fcd2615382fa255e05fc454219d
2bd4bc781bb9ba2f90a80fe7ce48a58a864d0fff93cb1641c66b84987411bf24
ddf5fa3ab7e2ad40b0a31da1ea3cb7b6f4edaec853ec6ba1bc1f74e47a854d09
01e4a8066c33bb1151912687c71afece1579823e4452eb82dc7a264b960fbde6
e38c18546fce9027775e9dcc87b85c9805b33154545ef9e6b5695fb8623049cd
1ee1e91b376483fb625617bd0ebf5f6f23e5e8ed6e124dc00aaef505b5331c5a
0f126ada68e8d297fd587eb541e7ef4c8f8274a5d8b921d3dbe4362721fb16ce
cbc353f1f1f47e9c99714363ade3fdaa563cb98befd552b39176d2e87d884760
dc8e75d4816b025ba88a100dda8e9aa2725f0624b9f264f1f3070b85521d731d
ac19a73a35f5905f1406044d6e2dba6b3fc7f12eab2c34e87b6e0e1562bea781
f3b3fdb8f937ea84eb1471b0e75b1e2091f2d64704539c8182266fe719e85911
b0053a21c9d006336caa255a7770c620c7fb6ec021e8529358c64f249c9a7455
a3e80e2a6d9280ec98820d915e0d71d6eb612ef47bf9e300faf59bf20f080e4c
d7a5688c8484053b955e779a02caa6b051e1a56d485514f9798cd8e0406002b8
61930ec44799c590d460977e560a9425217995f7c0fea253d067d68d52fe6bf0
0abf2078e38a9d2e28ef3a518716591f7a844e1f57a81ac7836211bb6e9c5d10
d5fe38396ec4dd5a7f96aa9ca3f13006128bba29507207922eafccbdfe004197
58bc0a77f14d5354c97df06c5bf382cc0dd1bc1008105895d9d00beaadd8a11b
7b6935917a2de192619bbd8084ab9a561c3e0c33ecef57ad53c3bb5d983861c5
d6eb3f7684454bbf45fdf5699d370781da932e6926161d0e7158bdbd83fd1b7b
5f8e4e23dfe87b0436452f6a87959a1f5e1d01075ba2ffc8d952b44188187533
69cd82a7b088587f8b16d6067df486e75524b90ced50d9156db25f459c44c6c4
7dcc147f156ba07184123aadf52d63ec7888927021cf2a5c10ca7d3d76fc48a5
8aa68b04899b20721ce40cc7f396915da89e2b249d8c7c48ea81c8385bfcb48e
ad3ea60a86d9992e485aad1a2fbfb8f6bfb0e4d2ff85bb9f2704c66cc427fc9e
9ea4d4d3e196688e0bf462b701fea1bfa62b7edde9b41c775c72fc1468e05619
656365f7ec4149fc6dc819ffba5f1f617ad55ca703f133eac3e0747d36895bea
1d629e6a8aaf5ca1f9d88d95184e3c885b940d52dc60098d687e87b1d3c9cd50
884d5132e9c3298e1be01e595aee9986ae952edadc75aab4a46e1a9bbcc0aee1
edc600a43271ba40523788686f3f264effdd60628cf3d4d9ec20429ed52f67ad
a5fe67f48c861cdd31182a908e2cfb97e0118d824cc7e497dbf73e510a09d20f
6c0c16c8bd75c719c2e356636fb3fb958c0c5ecd1eb782385bee352188d3b39b
778ad23af46d3b935aa4754e9e2956cfd0dfbfca0ea911a659994b2547cb0c38
90395a13fe89b6709e2dd1025ca3524d9fa5bdfe126f7c65ac2ac6aa49d0b24f
cc7d7e01937e0b78ba01bb72645c47665ba7d1fa248e568f6774a08cffe4ea18
67df148d988f4281e19be860f6c83c1ddcd5db40b4224bcc42c4c1e40e007559
f1ac29e4bdb107b5d100d029e79028cffc866ec895afd37395222fe5d89a5ebb
0c98cfbbb37a75dbacbcee2549b8df45045dc44e440afdbb23b4524daa1fa34a
8103da156043a2c1ff36e22ff7a7e935509482bec66228a379673dbd591de7d3
cfe5d04c10e5b7470ab9ad100d5bf8949f56c1e32f64a57fb6e565f7c20d1653
264c4577ac6b14e7dfa092bd1ef784d7352f2e71a1a13972b3e27c29792e58b0
15fb518ac58afdde4197d23f8aab56483d636d866dff7bf1e72c747c57e1b595
36e801c1cfe64a50da6cb3d3cc54095c78c629cac5a02c09dbcb4ebe8ca69e4b
a1a66f458d79408f3d1b5588c720c15f4c5133c8d45fe33262ac44123c824046
15160a19dab820355f2b5279042cd8914c3b616a513932ad4d4e3da019c2ae4d
083bb40099ff3df60f7b58f9453fbc2fd5266c88a4dd80d96e6746167106cce3
42955d19a661f03c8676b1a7dd4261f47e857a4240dd124ad79d4ee60018cd2c
26ed39b68160d9314dd5acbf4ca69fc08e094d6dd215a754eceb4afc31a25764
7f25cd2c96407c221ab38cd4490ffcce7ce37c93420ab0c48f7586b2b5070a5e
effdfb9c46efa4572eb4d4239047ab0ad510c8664695ae7a503a7fcb3f2f4ab7
46dddfd80ecc0cb97dfc1d65e7b6714e1ad9e071fb823eeb777f14a31205dab1
3ef59e753b467a5693037420cee55a459655af1038185561344e0a256af08093
254f963ab42be4fc6bec0f366ced42fcee0ba8b96898e421a5bb508fa7c156e5
59d1324ac30f14a1f5922e1103f3d7f53ef3044cfe4603c426ad47ec72cdc1b0
b2c42bb1b6e46a008ad3d9aeaf041feabd08d720698357cdd8550d92180fa5fd
ff786a99d45cb2840fe56631bbd7afdbca294ff0715b54374ed9c955d16c8aef
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMTI9
%!PS-AdobeFont-1.1: CMTI9 1.0
%%CreationDate: 1991 Aug 18 21:08:07

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 50 /two put
dup 52 /four put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 73 /I put
dup 80 /P put
dup 83 /S put
dup 84 /T put
dup 86 /V put
dup 97 /a put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 121 /y put
readonly def
/FontBBox{-35 -250 1148 750}readonly def
/UniqueXX 5000827 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f
a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e
fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65
66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee
ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7
695aba81f0260cd5248b9e649cd800bcb325468c79ffacb9cd3036f2ed7bb65d
cc883aff8d6350d6e8af1a9c1d2d7fcddc4c554c7e350f2420586f43e2124611
487cdb176d453854b51cb8f9100bf241899bbef87d57f1135e589813995c4d86
ce91db2b3757948f365186c2a4f32d845f659a8e95028f9c0168851997135c67
ce7654f2de4f22f51311aa78f440e5fc2c58f6df901fd071b2d53b2697bfcebc
43fe4508828b4756ebbe1f3e8512514162b3bb44493a65f11ab56deaf152fd01
bc8b642e6021af01998edc76b6a1929fbb9fa4fd1a430bfd4464b53f75075f66
c726fc037fc23cf09a178ffc60908f77d8ea9dea79c1e21fcb5a6a994e5a8e5c
c6d6291891df7695db58a2dfcf3bc9a17888c29559ce8f37dd35c0ae35def3e8
daa6d8d574f457b0385efd1611c048b9ce76393fbfa006fd23d742cfe7016035
5fe95302b129a824c7794a9de47e463a7fdc42fd72b9da3fabc3e65d90258ac9
c1ecbd3654b103a488715f9e0e649b57146b786aa399c6ff39f362816306a1e0
ac83a4c83410030d740e15165683e843f69579ec1824c36935ed4705962f494c
401400303b590614e5daa8dc53fdda083fc854e535fcd575b38aa43d3d5c4a38
d56bafa926fb9e7fd69be1af2b502849500693dadd5f00b3185a8b18a0b64f28
9f33f5f1eceb14d6945a22d0def259076cb9b11d899318852053d98c379de350
8a8a7a3ae6c9a73e878f7cfaa856e64b993b13baa4ea8ad693b380171f4f04be
5464e1fde8190f963ad3dac489ca9154a9d35f479635781233c57eba78a4b34c
5b3f74db0cde46a05e26de79e8b958f6a99a3bbad79d0b461621fb80d7f5992b
3a4a42a45d55ac22fff1ca04d5e0b14713cddc23f7d69c6c672092d9c73ad09d
6cda0136c2563df97a3538f9eb3f04e4a2bfb2be69d2570bf1e9ed354bbefee8
2b107a0f2b039cd5b72e21782bb72f8cfddd64450991fa106948805a57a65ff8
02c6eae808d748faa4cee99d7c42fc20a13fabdd56f02408586732d25a6c4227
5d5cc062ed18c3f3ef116df19c2a8dbb0036634693057cd0156e4d78fd7248a0
3e00c5b34ca3c3b163fa2680c1b6639608d05b7f09b495c79f62a37aafb3e13d
e3520bb7f9740850c37046d96647b9b63e322809819e8a7a7e25171d171dd97a
fa2e10e1cfe12574185a4a2eca38ed4b37d742de82d4e58ea99c647fa502f987
719d7f6f0c1378c4090202856d2d7c8da8777422c7cba165d36bea4bf47ddb0c
a70044cf5ee3139edc4b9a9dd65755de286d5094beb6f4b0365d9551bab83a3f
7d0332a4a9bde7ff8b7645581a937c2c02d8a5aa73f834e87c10f2390f86bdcc
fd1c8fa1673342023b359aba77648bd213fd04e4ce49114a50f6aa13ca72d314
00f6a4f387e2660df6059bb9b89f09926273a1f9f9933e02d11457a8d709476e
52d3ee597bcdadd6512a20cff18d9a89e93a5f8f2beab633acc46f8a1bf87465
7c01eba47da495fee8b815edc0eb0bd788fc53f1e7635a1ec1ab943494d28a51
31d11f3dad8a9a0e1997edd05b30c803480dded6dc2d0d707312e5772714d4a1
9a4477f6974ff7a3fc8180e85bb1435bcc25390356bdd624089250484aaaedf1
ae3354038137cdda0ff28b5f0eb4c9494f94706a517d3e120a0e8eba9edb1eea
983e9e3f15d9cccfd03ada911eb1fda56ed6cbabd065f502a36c227298ac4918
aeaeca1d027443cd50b7b8860af9e72c769fe8c1bb2f6a84c28cc0c9b9823c67
2d5ab279b8883149c18b807eae78cf07ecb0f78da0213e8c82e8dc8ce206f9bf
d3ec5a22f3b6a072c179ee3c9c16926de1bc3ee621285b45e57377b3ade1169d
8292490756f6bea50a720e03c8f399a405a4587684c9f19a35cc526d561d5151
83d8c0b4fd3b640e7d287ba7fb60c3ef470436eb11a91f43804d983501492d1e
b158c5ee5b5be5cbfe578bc2572cfea963d8524ebf28a5d1d4a39310a9cd21a8
2a38fca12b99e0b15959757a3d9a009e981bebad3514f676f704e56c77fc5eb0
4ce1a61f94ab5eb7f68e76dc97b7f4ab659dcd53c9c085516708343cbc377907
80b5f03bf32d2730758412eca48879e56b568f48d8aa24da00f40047c21acea9
fd47dfccbf545fe9afe728ad4d840c27eb6c6d27171387c07faa3116128f0db3
b25e581969a614c5cc4dd05f82438cf9391c14e8dd8bcef5cd129b32ab2020c9
ba8d79b2aa6a33b7ea6524e5def3b0b57339679d9abce4d561cd5322bff3329c
a973bf3dfe99d06dd8eda13d1ff2e99dab8f0358ce20915f63a0771fe805e77f
a107ea3f3590c0cf06f1fb3d6bd3af189a9c7652c215d54f899188f1395a36b3
1f7b657d4e4ce1cdffc61a0ca30a0023da36ec58e7cf3b42ce15f0ecfb1251d1
98e2ed97c40923ccc4cd0f6e23584898562ccba82687972a1e37f522b923f234
aa7532b4e29365819da39a05fb0fe84d7bbeda0edb296397d97bc32d98c7acb8
face7b782f92c44526c3255320d6c141a42866339abf7d3532c75a5444eedd7e
ccbf221d89a87917bbd3dc185556b6ed6b53081b51f2aa48a81f7f94c80fc9a4
485b9b7c59c25eceb49520931391d170383051152baefdf490c9b3dab9c302ff
3658d15cab258b486e5358e8e5502714c94ec1316caa0b17fb02d0de01c2ccc2
3cf2bfe6f7a044ef935b2443cbb31136b20ecbb2aa058189d36afa0a6f95c2d5
a52c45e44cc5186b8f8fc2b9ad68d6d8c7784290e6daf7a246fe8bf236247887
c689fb3fbdc47e6dede5429d1f2172b2fd08e5cf67f0b6a3223f7272c7ce8373
e6d2e418142d557063ae7c113e182f5e310349870328214ed7ebaf28a9d83414
6a62bf17a6c5d5fc151014e4a1d79fececb5cc2fbbe33567ba28b92f3ca4fb03
c8d5983b8564315b37370dc4c9b26ad05b6fef704707ba37489b283ad6eaf402
959d191775c8376f939adbb78afec3b7321a0a3e2bea8d8faa18c0dd8863a704
a1d86b9e81e6769f67f669fa1b54ebc00df0ccc602890256d2c73783f2356635
9b4246527b5edaa13f067627f8e7df4afa312396944f474cfe66f3a187d34291
b031c806dc2ce5493cdd933befbdb0decee912d43a28b7a9cc2f484bcc2494bf
7c6d0c5ed9f313a0fe77a0f46070f6e941c4a53e59dbc10c648cbf79a8d854ab
0dca46bf27dee9ac092ffcdcd80d2dc23471ebd6605bf51883178a8832e4809e
b797b06aff362e6b6a975deda6216090df07fccd4ac111f5c34398a40c6b0214
8c2b560f90cc9a09551794343dee05acefa8b10c04be495680815ac192d49663
38f08974d3b6d4e02d2fac1b82b96e8eab5af4fafe9548885b9a3e379c93dfcc
f04c3b7e5c9a8b84d41141c5fc08ad6457e1e8b5523d9c1d31ab80a093f6992c
65ee61dceed4dccef10402aff9466d35308c5b0f56f8ebd6be233ed16f12ce32
1426f91647866d5a12378b1cb769d58c35c79e81a34391c32fb4aba5a7648d4a
e4b35bbc534b369b02fe4ec193300e7204b3bb96a74c96706aba1e18544a04dc
6769eff41a9e6afa7546efe0fba91aeb438a0cd3b03243a4c664079c827e6221
4c4b2e8ddac2f27a2e85529b9bb697bfca4bd94ab3e74162f133d0a1f47ba82c
647af0ec1eb8b68b33fe4e3a5007c4952220f61f0a206b03509a9a6b997e21b2
33ec7d257b5755d3d8745308b3abb7da0a2da2c26be2186772b0bf1e997a12b5
0d7c779519478eb7bb7ef7b9b8105360e20e723b60d2cef0a74e8d7262d7f4a6
75aab59ec357c5bc53c2dd10ff5ba15b6fb16042843ad3ad5b0573d55a5f01e2
df963a57ddd57b2dd60515c09164295f8e60d1511ee55748983e3b21f6917222
5d7b2e0ef1c80b4b8d98ad22bde945364b97752958c432f58cee2ce249839f9a
93dbf6646b7d468da390b4c38b1172753f2af090d832328082eadb2e3286453b
f52c21e1c7aeb2984e8d781917f998f9eeb38779be3753cd74921dc0bd2b5245
9d4add87622a968568e9f6e39d1e30af3be783c7e8607ee1d416069b80740f0f
e3efa63d94074cbc7e4df4291debe7819acddaf1aed86e6afbfffa73fe0a1aba
5352f3aac96dfc466b33557402b08849ee73b3dff4dfe990f2746b18f7e613a8
d95b2d611e95942bfad4ee76ea35b8f6327b4ffe1143145c7f60cd374ce5c7cc
87215ccce4b2090bf41017f7cbfabc1e648cf1baca0325bfd91c7517779a60c8
2efbaafd4b6912f6c98b46a6f5f3c868f0423bc8daac252780209b1078e1c5c9
a84d0a9a15b1a45525f385083b3dbbd1a6a45974fbac608b279216f3c7a98c95
cb127832423e2b53aefcc148eff04b40d66958b51cb5a240f35f265e1583952d
f62c93edcc2db200330994b1f5b896a8553e15b41b3a1b67d8a98e5320f59a8e
15bc9cba4b481a9fd0b3a36d6fcdbcd1d48ea9dddd9ac4bc99a299214e6bee17
4e760d8bfbe808a3804790d59aef76e0ebe1c2f2b05a604b11782010a31a21fb
1b865b37d0cc140571677e2b90da7442379e6895b935f52c05af793336f1c9fc
877522ec2f5fb76dafb5ee43ec94b900d304ddbe77a6bbeb33c939293c416e5e
036eb42fcd77180db18b01a364529afc349378100a388cda75f16c9268dbdd00
7102a14caf29fee5a565f30c5c56d6bc2aa0973549f11a44760d2645d704ec1d
2683288ab3ecbe08dedfed2310f96eea5f384450540305ff10f12b2887bb03c2
b053f63ad1940090b38527805b0ea11807f1fd4287d31ab018c97a8069f29a3e
3e0b319420eba5c22893ed2517c6b7c7e8b39a63df881fcfaed2eab694952c3a
5d68acfb56fd3d5109e41a697f1d5cf9ba5c1133e29396ab43a6914400b32c9f
c5e48fee33d7371869159238112be4c5f73fafa47ddc2ed1417ab821de993731
c77721e4fbec41eac1766947e4e8e6ffb39d82e0b710cbce4ffb271009fadf2c
ef52139cd5e910e64f7fe4ff879261f8abd9d8eba60832d4a45b062b9f17de2a
fa3f3b4c63eb97008222191d8f036026b84f8e0f7bfe28e484c886ef77720bf6
e00e0e67861dba6d252c9cfe5b28384f991381d015373827bed9e4a28ee9d7c3
364653156290ecb60d70fd6eb878036c4e70b72769514af28cddeb59c83b450f
9f7b0d9d7be5044de83f428f3389fd97db27bc86c41607843fd1054de8673706
4a3b264d0b603c01135d49c3a5b2015187648173512379d7fbb0b027226ca636
e20d6bb09c96ecd1c2d202fd31e9c93aacb557ee8b0f130e12fae39ef86b83d0
4e1d4a4da6b256fe68bc29ed8e69b0a52f86dceafee790338aa88aa6d4dbfc1b
2a12b15d9c65cb5f5c905f9fa999f74bb0750eb23a6187f6717ea1ab61c762ad
deb8df9b0862ac090bb3a0d44ae3d4e970a6232f7ce803982a93e8e880c30ec6
cf9ca69d85251aeba30a945b018ab32ba68b6c21056477b0332e51deb702e209
9363eab7502f79c54b055e7399f435ad2d411eaaac8822ae086f65a036c60e07
b4328be7c92f138ccce786652c00e2de8416b2cca8eb442faf4913a843badf70
d0eb0bdf5c0c2d1ca8bb1a2aa4e059c04c0cc167b5dbd22443f9f7b9d692d3bb
019baa195e512f047301f71ebd12563d4125c1216c9ea40e2a10bfda580fae47
06eeba7e8dcc658d56520d9680a5ad6f3fa210a030c9a38eddd831cfc17cf4bd
5b0853e9e7c61a0174b389ef43720cc8240045706be85bc7f1c2d4b39a2a1375
9c34510c3c57c0b7fa28238e105f12b6422473e5ca8518d8bd11586f8807d3cd
dcfea083b52d976f3bd7f952ba9415a77e8e6644e4cfcb28128290cb3058975a
4389902de133b2e085a0c9e9ba702ff58b8c8b7504869a253405a29456c81f75
329b58abe8f82df0180656acb4f28b6cc0ae5cd52c635d3777087b423add1928
902bdd9883e645df03557bfce23bd4e232fa8b93223423dd9f81533f3f1bf758
dfa72d6b32c13da4f70ac026cdeaacc1386183e9509b7007ec90e0c3a6d0d64d
ba96b202db4faee46218518503b26ed2771bf8b41fa723c3ca44525240f7d9e7
5ee0645bd6d8655e5ec5a770ff432ba5a14cfe4fdc0cf6196449937c6adc44ba
492cf296277d185ddd87859d0a158ee46acf22fbdd292e457d509a36bbb455c7
0f571077f01ce8c0952e83280dd7ba08423f777da607e0d56417c08a72c3be68
71c1027c23eaaef1a325311a48ca30a20b3fc64bc8d737a2d87fbad2c5d4dcd1
6a78cb25e9a6627c56856f2fbd62fc6523dfdd106f221c15fb5ff4922a435090
a63fe545305c640a2887d30815faaa6e8e69c1ae4978c36702a6820141dc0da1
f3f1ad4ed8facdee0b97495f43874a29083b026945888ca64e41ca3edd18b02b
873e4304ea4852354f7f0c316a38f964df40e06e26600bf57ab0cbdaa18763bf
48ef693058a67e4f0f1a22f8965032127c54c63f3c35f26992890e16969976bc
19e4a9bd8dc94b88b73a8716bbfa8f021395acac1b53e45c13035139db0ffeba
dd5e50b3dbd0f45c314e8bb1af75df6e4fa8dd92f1559bff55dbe4d0ef6f3080
df4436fe162a59fcddda489cebde7afbd3cc1e1950ba8208c462e49475721281
066a20cac60aa8917e6102258f682b7a412d14cc0703429dd2a665cb74ec53e1
9cf3a27d571df45774488d017ebbdee3e8221a5ce70beb805bb676546a9f5148
9d6238c1b5717a5b95da5d348bcb2b73345c7d27a7ffbaea1aa262d640e0cb6f
af554232ff2e81496980782a83fe231c97a903faa12e5b6f532325e13e957803
aa3241d8fc6aa613eb9946969199c1b144ad474c584dae5329ddb4271c490a07
53ebe8274becbc31e8a17035c37675f93d74886d00c9d60d3a50d8f9dd994a17
53c4a3a7fa4ae920da930a8dacc23d0dc5d2c6c1b43b53bbe95fbfd2f02d3eac
557d5f6f91f70cd57167972e817919e7acdad6a2114e113ac2141cf6d96e0689
1d9e5fe7a1b0b9b8912793b7ff914630493242f245a0031dfeb9eebd7d8d9584
2128af3114178d307f40646291150b9b2bbdc3d09702c01967bed7316a1ed7d8
10503da1d082ef39c096f207ecbbe2687174f97b1cf4c24a210813b9186fc46e
9eeaada5174e53bab0c937917bc3119e498daac8b396a0c2ae798c8d6465d508
ab042ed37e427b71b12218817a255908d16fb2923bfe63c6c22ea3f5ddc36fe5
79e8a92b0a3e51ad8a128739b23ec61d228c687aebb090f799d02aa6fb97f913
78a7ed902ae504e9e48e94ad585fdda582d2486dff8a1496275a7b580c04e488
578b62830055aeddcf06dc818796e85f1286077b6985bfadad930dd10135a47a
773cb0bf60ea968b72eded450762ae66d83c961a5224d6b28d14501ba7a847be
eb48e0a0dcd28677d5fd7dea8fb361ec09722499d42d876c5924c452da8421bf
6bc316e1057e6f800f3bea6b161f77e2d50a0c0e722ec02ffccffcc9a45c6ff7
ca106d37c140546c5cf17682cae3a54d85bbfe10ac00d781c92ae7037652759c
2c8288dcefbd0b10603a75cc1ecdfc116e1616dbde0553a769169c1f8b3cde31
1d465ccb8e9477f81cce94f8812071c6c7942de880b14c3672f087989cea069a
eea6b097e062ba37195f1c36458d5e15f29a23197f43ba658fc1db4a31d15832
0f1a6b17894d21ce79447adea42b5f90358870ca029fa856b51ce4afeba728cb
a2a716fa0fc8a9a16f3419440ed1b259742cb1e98f7adbe495794ac58ecfc10a
33dcdfd87a181c3f4e241107c05fbfb0e0a8962796047dca31c44ef45606f19f
d7dc6cf45e9af4c8ee88c55ceff25bc5faafa10f62207ed5772cf75886e16d80
cfcb80ac6eb1cb07f7abe1d0a9c2a577baae1015faa6e5f126a35fa4a638dca3
e666ec0f0341cdc96d74ab175b8adacf04764c79ed4cb3dd64511fda956eada5
e5750a31b8e8db29f33a7f6c4449f0d0922c6b292ed56025f050042051d3db8f
6d40d9bafca36363396645a94efc29046664c4e55258fe2a614260663b33e810
83534710b1ef764c175ee4221fd21984d8046ba9d341c904f5f158c7b6625d4f
93fd17b53c3aeb4097fe5bf25e9591c300fcded710f4a79f42d863f99596f292
44ffa7eeeaa7b4d341870fa07e35128882f3fd95f57f147ddc68affc9749b897
472eedddf9e00174e82b832a618b7774c4c17e183518d1892e303b4d537b8f52
777ac6aaf3cde409ff4ce02b9a8423c398202b31d91885658d3f8bbbbb074844
f5dfac08461ab5d3fd5470e07c2a493ea6837a1c2719ceb5e86d998b0f39d7d5
adf57547401090ee4aef74a7cd1c843be94af99da8f465068154725ea1fefa05
1a4b573de61830b118ba3e29b49c3e415d576561810441528be73ea05f6b8fff
79a8d6863a7be88c8e955a508f0ed89297316f1826e03150eb7020d6341ed28b
12807ae49e64cb808470e7b0dd5e1296d25b4598be9edba50c6ba699c11fb347
cd3ed5f7bb6a74fff89751c52ee3a106667648aa4a6b5a846823b7fe0523d7af
253c2758e4df0c6e877479a160b9ead903c389c9acfe2bb6f87dde86683bc96f
f6a1d386570dd83eb69f35974736f8d0ed0244190f56dbfa5bfc6a2ea386836c
a67a65a811bd8cf40566d91faf223a0e1c35ae7ac07eb67217e53bdcb603133e
0f29de3430c09a1e095071fc14dae47e1bdcdcb5c9cd80fe483ed0751f8be558
0519419de1f710e4861c26de79419795faf2b240938b30ac837df662b4033de4
dbf5151be84574e751af844dce51dbfc9c2864ebcbd0a5cebf82f4724674a453
b8c462a60c595ccc8dadd6967354b8161d6acf30856108443ffff6c4c4b6419b
62ecad70c14574405f05d816c2a2419989aecb784bf2c799f8f48687ab987c73
8d919f59cf1526989255f9bf29fa465ea3fc5c5fa6230e11d96a662b8770a9ab
56b0dfb43dae34c95f8a4e83249800fb8f006c2594d2c2f7a71c1cf2ee66d3d7
8d73f3e7f9e1366fcf793d909e84898ce4bf5e81322aa5b8c37133b4859910f2
137ef44d6405c3c4ace92dde6fb7111b7b64af6e6e9369b6f1fa54f996a11d4c
39f61f50a2a58c139148ff483aac19bd45072bf86322f813ee2ff2235a41b218
d7f9db5a14048ce7778d2004ebc3266c853876a9cdd17a17c3d1c0e0fe04dcb1
edd2cfa3644795c2448020596275c1fd165a7fcdc6690d7d86a3fbe3c73b5358
5405fcee7bc81c23bd4e1b4c41c5a543181bb71cdbacc6196c086cc8f3052549
f3b385a5cd2250b02b74fb973f8eb1c8e101be0827f0db68de67d8
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMR9
%!PS-AdobeFont-1.1: CMR9 1.0
%%CreationDate: 1991 Aug 20 16:39:59

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 12 /fi put
dup 14 /ffi put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 63 /question put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 91 /bracketleft put
dup 93 /bracketright put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 126 /tilde put
readonly def
/FontBBox{-39 -250 1036 750}readonly def
/UniqueXX 5000792 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b448685bdd20eb05d5e7c2126132e33a59a7170609
dcf4871a5d023c9ef57d3362d9f2d7a440bb69bf653364105f16f4d0f03582f9
aced3d05cc76489b16e3fa8a446094d30038b06ecceda269f2eab9d19a99c7f9
39f9548f206c5a457a19270b2b82c43b091dfc5573468eaa3e7a4a32f8042891
d85e4b180fcbcb3091d2800e54c87d84ce9cad6869b5aabbbe47f40c68799893
d22b765295e1e69e33aa048b7ed98ba480ceca91f3ebf8ef85fe9a3976909626
b95ac5940d53f9b02215d84a44837ba25ed15cce0d504f1d335065594f3bc824
5405407591cccb11cfd4645da60d960c0b93f187b0cf7b105543c0b70f89af5d
264b6c026e3ae646acf145950202ec73282111e3e601cf2bcde22ce3edf6db23
516481420f26552ff4472d749811f27768150450d0d0ebe3c79f999e99b5c0f2
2eaebb12d97782b1bd91b2a1f62a76412548ad53c0dd411d4a08c0f071c2c218
63d9adb75a4621803ecb84c2bb235b620b658984b2d8e0c4637e2811bc8f0d04
6c8935afc70141e1b2d9c23bdb251d304b3378faf8928bd09686aa0340fb0cb1
dc48c996ef91530ff078666fad227a3589f50b605267212d3a65ebc1019a8eec
9a0739a00279471a01e1505c17658c10030fae32f274fdc8c8774b0d5406c384
a1d17068dcb0c2575c562fdc5a2176609bad9a2c255e426a4325a4fc3053c7b3
2f35f7bbc9aa50135f30223360fa2fbf019294b2e1d1405e078341097090ddba
1561f22f8738fe105c0e3b84532bed145d51428c9cb1807e655408807dc69161
1109a98af82680d6dccc987cb312835dec4ea0645f47a15b6707d654ae54846b
3d3301d61150fdea8ae2da33e79976812c7764050a3e86a2a819ffd3c64c38ec
16b2d0bec3922847fde375ffdd82f8f8bcdfa39c53068da393b35277ba7af682
9e48b1607f22eeefd7d0eea93ba1e2fb9b5ecc6c6fe1075db980999f0be7a234
5d3274b66366f698ea7fd38fcd321329b223febd60ffa18d353dc40584e5a01f
8bc3965696aa71aea379d748fe325e57816bed4864d5cb458769c05ad7928a9b
bfc5b889e6cc82c5e93d2d09da11610d4033cdce002e758e59d4952711fb58ad
44d506ddeaf55fd46d890c1fd1a9b63b13c0e833362eb2824be0d01162dcb221
defaf26c7899498dfbc7b5464c9f853cbb15f4e0be766373e78f425d12d16b31
d7cd926022d05e4a86a147153a1a05a0c6675b839a98766f6b977a1a0de1009f
9a33503dab1c05be3df8b5c30109837377e0bad7674152c516b164ad650784c2
20ceec890ab9e8be4ed848e0d755d52b1cbafa95d9642ba831392afb4697fd7e
cfc82802a209e87fa5712a069e3de24a797fa850e29023e818202b26404ce357
1e7a6d6a61eab3ec5e6a6d32587381056818bbb9d1ee2031ac433be8424b9f0d
3c7a6794de205447f69336e5e740dbd3df7503d5c63533bb8c5f4dd8f8715bad
f35d1ce1f64090a203849f8b13a54d883667f1b886daa8cae28a369e3e9be530
8528b7180c6dc249f79cbfa7c4db986300b414ef076fbf879122187e6355c6e1
89344892dfaddb9d6b7cc5bf6380559e304c63f1d760bbbfb46cff0aef91bda3
f8967f56d1618d30d6e81ce83848110fcbb44e14accb364579d602d190c2f114
ec3c63c62db327c55615684eb31c0514d0aa7cd0f5867492184b147e3a7466ee
9fac8cbe8b55fd812583fc9bf74a4861e9981541b561b8873b6cdb2eb7d33328
2a9e37cd05c6591de8efc7cbbee023acb5a99995e676ae87a992c7b42d7b3aba
983bcb2264909212860eaaf768d09e9c86eb568de25d1cad884cd60a782fe3d0
ff03ff99f0ef798ed8f2d7386c97a38ddd6fd6ba3ca4a17bc4f0ffd31206aea5
215c04b5749fdc00ad893276d014e03aaa36212afae0dbc1bb2b8e439a44b7dd
a9727fd5191a0de4c34c92611c56f4b7608620e453cc5840119221d18a2f99c7
f5ddc69fe833065f81c55e6921b6b49d912c10dade855400e6708c9a436893a2
2e059e129cc1056896c57add2c466da8a04a743033f2a0701105013f03d79c8e
701d1209e0c7735020a6be3050a0cba45c49648275a06bf34577b3fac8d2fd43
c65208875167ff5ad6b8e65d8a7359414b00fe12447c651fbcd6383c512c8f15
09be1c1660d6aa0be2563956f725aed19b7786d77f966372be2fedf1ea5adec9
b822812894de4cbec38608a68bc3291320b0b03e518f2542431368059afb3a54
fc61ded9a10035c0f9e14b1daba9107b653d0cb8f4d05591f1ce49d5e2acb2a8
f05ec58712688141acdd80410cd365b4cb685a299384c5be115e187a1399d3bb
d519b3f079ef5d8ac261889c3198a74fe6385188d1b7c9f3eb7505d378ff5859
a782c4df80e7d0c3953cfb14b88616fe7b7ec299f95d8d151bc40fcc475b7833
961c573b451de56b0606373283445dd331c9cbd70eeabe2c7763e814d61413d4
4794653edc2e00d57a3be0efb4b3fa5165893da719b71e59bcb6f373b930e4ea
cfd246499180ac5b56c85683c73e1d96f848fedafa0fa239ca6618f02a81e711
1a03309b74f34deff09da74d9aa8446e2bba2ec9639b434df60855d40e6d3451
288d61c8f1819ada4f88c9386a345492ad24d504e99c3ea6fd55dc03a597af3a
e70a5a43fcb5b0033d605b04df95dac3caf86512f6c9445c98ba1d25c9db442e
effd666ed5a7801b0781332a6d7ff69218813b09527152b605ccf4ca0d23f6ee
791debfff9a5f72f0a179c88170c6c4c648a7700f65d5e956d5ffe3f3fc8fdad
42b691862e648e7966848745347642de4192bed57bc274202eae9a8542a640b6
db171edd41903d4d484363d1588892eb8478de9228d29c3d7895ff5ef7fc1344
ff0a2cb69868aa5407586f757f1a122738fab9473bb7f7a41365b2273e4ea469
23387a57cbbfeb1d5878596d6e074eb38b304360e4c17e7e1bbf36fe75e7d48a
16f13d17e8c6a6c9a7ad3692b8ec816c9073ed97c5f0422c7feb123f8f8476d4
b28d045700a2bf1e9c630b915126f3a946a6509aa1791604112cfb8b6da24fec
e81ebd1ff10b2675e9e683e069740dc64f1e0ee7574bbfbc01afd068a4e90a29
8e1a4e2f7027ef5e32195e91db9ab74400e838dfa97ffec4b53f3601cdde597b
2a0f8a9035c4e4e41f19876e239510339b74cd4fb7db3d8e527514acefad4db6
29e0ebf78a4882a38ec63b9a8b3692a2bf4360d39d1519832467e444ddcd397e
41504c5dd1f4c70e10559302c1be496b381636ec6528640a60e39d6199330be8
f9c3f900585520e570c816750363c3e68b1ab973be7dba24806eb32c14f11412
279fe900987f912eb8c76192fef73bd6af5c4a48f5c9d6e2dde7941a14a9f8d6
6fd8f971dbb66a3a981d5dc6b72a5f27b9a9bee4e6bc3988726fc5beb3a41be6
9135ff7443040d4ec9b3a67511e514ac1ac9dcce2f3963ff91d4f4660de6d977
828c7502305895149327d8a59359b11dd123f84323eb24ef47ad110b1457db50
bbdedfea6257aefceb6970280673da320c59106305991f5ccb17cbaa7f6d68a5
782616854dcfb71bdcfa8bfb218ae1309e2e38209e7bf2b1731776f7fca7413a
9519d0a501fd4dd09f1a3b0228692d8c4631ba434f61c16ae15b28e1442385a4
bc1953ad286f37333cca141dae68ec35c3cedb3cdf9e796a147825651f7a6602
aa35279b3ab3cd9c48c6841990ccf41e990393c6f85122e55cd19707b70ad019
aa6c974eb6401d7867a193117ab4804c8d0ae4f8b3a21018d8ee1f7c78dc3ee9
8da7d5e05a5960464b59f023b3a104889a463c087e6c8940d1b0d049f7050234
bdb591b1d5b11b3dd69ae7502b05059f282d070578460d04a424c1980af70f1c
eddb384a96900b421ac0a8d2da945880a81f90090a81ea62d0983869bbf0f4cb
0b42633c0269fa50bf1645ddd35cea74c66c4d4f08e0861a33808d7572b832a0
67e518a055348e78590cff7d5ddfc4ed2447e790b5703ea3b0e6621bc76723de
fd44640553df3084fb86182eaf153418c031ad9da5177b8e47351d711f56725e
b50615baa39283a0c1f851bec02d9f31d561b28a14673ca8db723564fac191cb
6d72aa5277b40c4dfa2f695cc7e52f8b93c43c372071ba7e663a83c260285a90
10f6e99fe14a7b8b98409b0be887cf0e70b09615c8c4bfae85f5194802b7ef34
67cf7ac6b3ddbfd795244d062019a767dd28156df6fc3926f6fa33b1c53024b0
3dced70bebba4053b44f770540f417979923cd9cad76939d82b3c0762adbd4fc
8d1f6e91a857fccef7852280b96e92c688e0409f0b01b893ad0ce7b8f44403a2
568e3a13c7084477201eec2238c7b6606266deef504206daeea2bf904ad43aba
5f006db8d11d6290e5bcbe22617ded8ac67b25141dcb2e840a74aa754d7994bb
207d7b73b6152b7424de24471a4eb7dc062edd01256059320738d99419266b07
2ceb33a1e1e47d05b5e71732f5e29453332cdfe693f8469e1931eec0b63915f5
b53ccf72c1601eab65d98c154515c18b61f2b7badc413654d2feda3cf077fbc6
833dd8810fe18b04cf801cf99b2f6d1f699e21c52c384f37c01a08b9a4d048c6
fe1ecf7774099827ccd63dd936d825961e7f5f81a2c41ca3b9f719c702ce27a5
9d2bd8195429b600bb0a91799f055f0df9452d517f50af7ba244e464e42b3e97
e92b5422279ec14267ffdee31141cb27ab3d9ec461e96650bb52aaded7a28e96
20020b00e36097cc14e4af05d18578f317c336e483b164012c993d487530628d
297c1b25ea7b94225a9d5c60b412f1ff55d30b6eeeb03a0bf7b1c47df32b77d0
0d77e0ff652fa096d57bb871cde2ba1e54d7b423efdfd62371eb272751c46c6e
1798703ae5980d1de5661b8494bc281e4e05620faabd34fbdd1542dce741cad6
18c853f5911ab78db5a0f24dec2a66cd43aed5c58d5a5501c31f930f7d051ee4
d68c17f96e825d54144bc7085e7f89c5141f710e08814c50069be2c5990b8323
9e14454e841f82414577c06d4f30bdc0b8c1e3ea7ec9f9018b159cd8408a9414
77e0f1d0a7e3bdc6c92e4d3b87cff5b0a76864833b9c7303a3347a9ecb539d79
a2c89568c8102d248f190b70bd115773771bedc3f76ee96cde44f4531eae8e44
544e9b952963c9b23b7670da5b134dde93d0cb2fd516bcec45b8ad0f57d5ba75
35e86f629b72b0068eeac4b4508d6e3d9870f0eafd5d3ae4fd31d1ce9d46a043
4bdb571bea4d59603eec7e6008c843df2e46c8329a4f33424b6bc977d3a4d48c
8dd286bec9c89b24b385d38236a069f2ec5d31a1ced2a191740fa89a9932d82b
c62b53706286ca0bc3b7ba00ccbca6aa7ec5a000449e95c037b6c7eee3834af9
2c2df70cee947a9efac7525570a3f98575c8214b49f5f1f7caedf6ac03a3decb
fa4d719dfc4556a8eaf33b0700b579654b5dff719ebb71260a0feab57acea8c4
da2bd1b086d38aa0458b932e7e213319eb31495f4e6c6fc20cfd8f8ec6998171
f7fd1e1f2009d992746c133819eda487cbb76a23342a5b15de1f99f344bfa0a8
e32198bdc3af0d9c021df22a753a2538e031027037337f797b052a3ad43eeb0f
b331ec3acb7a6505ce113073721f2466d5ce362c35a82c4d0e7e6c3c8da8b9dd
7113d4c6c7d74d7bb57848bc226640fc10ed34d2045019769e81eb4f98b5cc23
e360015753aa67fbfd0e9a2291fd24f00b558318bf8e82674a4fbed79609fa35
1b8a7de275f7b59ab868186923edeef5988fb2ff52f89cda6232ef79591d5c1e
cfe22735226844aaaf88089ea6cd01ce82564e498271aa85378d96201f430897
9a180476639fff1744adddb6187e226b1df15b313b9487ea2d507aa0efc3c88e
5ce5ccfd6f4e1885c590938e060cb23c5d6fd088d7c751d11f68b31691ced9b0
ba2a8858a98d8985a686fb6dbe8e585a17eaa03c70babfb2af1d6aa6cd777dd2
3710d963c8ac664538648c9a1470104daef4c40ceec8feb58c5418593f837fc1
ca04aea11617106481e712af8517ff52b8cb61394ec073a9e2cdd0c4af7020fe
235484cca4f8e70aca8b7e321888f55693e975f9ef21829670d62c2eb32b1f3a
5a103b7906a36d00e1b30f3650ebb417f3dbedda49e20a90ae4637d8fd1615dc
6a143997f99b4a85d1b7eb85fb7fd185fa167a443065fbee5913d450f8d05336
0ef23518d6968aed216369eb64d704328e5a23b42f2ec30a105fd1e318987fc3
fb4f8bd6b1d511d73aa80293fad8fa2b7aa51e62a245dfebb8222964dccb53f2
d1ddec3fa846c58eb6aa49d6cd0315042484c79840cc03b6c4df2531ce20bf24
4873a3cd7a2b956f8bbee3b3bcf1bd267fda0020e1c6e0cfe345dd48069db19b
36569833f4e81d3f33bdb9dcd77b3034acc55226659cc16e40cfd14e5cdc1857
5e3951704e3f3417836f244d9700363d83d3d405a7a50532ddce2adc5051990b
55c71fd6666c4dabf347ff37001f0f3258ebe23f5e435ceec99cf3b320f6ea51
f52d41f5e28f68174fa9a1b72b85491083da6a6638858cce3bf080e8268ce5fb
83f8bb05ab9b05dfcd364eeea6bd736a27303ce0742c4dda32cd7c01e7c9ba61
fb706cb91a3a246567fc81d03c272a250c7205179fa17eef5f7bb1db695c7ec1
c5f16df81f0f3b73ff2ac284da6caba3de1650715b2077b3655b8a7b9d36e3d4
88be9ec4460166fedde19fa37885c4018836946a100366f1618b32581562a05e
f57ba820caa39be5ed428481d95659f75297d60d7f566411ff2b1f06c0bcc782
fe0e365642e97f7eb99f1ee24a0ed10ac57a91e0346f4cb4ca8af35f9150bbab
2170880a8117694468686d14d45ac3dc358b2fe48dd23fa0bf3299ec07db16a7
0175964ca7fef569bcefeb44439bb67a796da6b2c4900944537dd094e6947d69
67183796ca9db0440feb12486481531b2a65532dc994a13cecde676442cc985f
daddfa9b552f41153390c4eb87382e500c258028716434fa5a60bc173c7d4557
9b908ea10ff5bed379461147a91e9d3cfd2c29edee82de56c810bd2a1864e857
f9f1e98b448bb155e96452ebdcc52b3154928f70e20dfe9fff8b60090dc56337
b7e5c70aa71fc5f0973b93aa6f7e994622992b7e35eb53cb03289474814d5ff5
919eb15b02b6ba29753649b237e435fadbddf2ac14364b76bd3ef39fb95860f7
e4d70fbdeff6331693ff9cd753bb7497452bd75eb74b1ea68c9c65990309c0f1
d50d3182ef000c7a69625bfdacdb70d5ead862a57f4ef41d4cc3e9c058525db6
a1a90e3086c960656182d1d8638919e5b9ed0d204a649b10eea2626b3dc4081d
72b0a4cb6477be7428a8998038ae12b4d5ac06dc6d3183a337cc5c22b3ae8b70
636c44953023e94e53594c4cdb36916caff38c285f04a6bbc6b5851da78a0922
3385365da5e044ed11559607284de825f81f81a530794602c025532b7fad0e90
ceb4e96b723309a776db5934a2365514ff84153e76051e8b563e8b93e39b45a0
193795be8615b8176eac6696d9f95a798292d652a85270e578ca083a6771b400
c83791693d9d31e43067a70cfa63022fa7ed412e535f4fe3a96e0ca05df445aa
5af6428fcf4e97b804a2defecff261538f040424c0390c6ec67b1946ed542a55
73159997eba302f113359a719bc16f7f66b41a1140ba61e6e138a896eb30b5a8
3a6a545a8a71bbe7c492d5f8dcf07cc74b42f4c91c530cb2df4a3c0cc0c1e05e
58ca0f53425f82f54bc4ebe90277a63cb173ce8231db6509ccbf6da59cdf9c79
e37df12349939528b48a67bb18ea3a17f9b83dc757f01b876f61572fc6f49408
81542b4d16202e7babfdb724868368663b3a9f9546b4be3912ba81b6418f817c
7a431644ed5f563be349894e2ffbc9d229749f181cca6201cfa6c3abe847ee56
e17e0cedfaa12b77713f8e75d78d96438de3d0a8bafc6f95077b4cd8dfebe4a7
a345dd3fedd6e2ddd041589ded87844df735d84a8731aba7e7698c8b768cfa33
983efc672f286ceebdf8430c0083b046607690824d731b21ae73fd327e436a19
f790abf61a58410bed1ac39476a3fe6a0d23911c6e6779765e714f880cd37185
0666e97cca138036f54f076f82ec4a5ec50bf60c9502e35925d2a6989488c9e8
c259598210b5029db8ec93a141213c755977e586da77cb0aa8214e3534f494b4
32cd3feb1fbe2a52c2f08470766df045a3bfaf726050d4d541cc85c5c25d0d15
d95f6b875640b738349f8f4e4eace06f18ba8017bda38bd249995daea9886cc6
13b10c94d1cd2ff1d956a5482cf5ac649ad91aea4c308c9b32ff104557955c87
ccf720d4cb7f701ed87853387e6b98ef29f635c635b97e5bfcd7c42245e34d66
dedd923a962f5033e91e8bf8b11ba2b377a10e437fb8cf2bae44e4ce9a99a703
53b0ecd3294a678e0d68d03536984b04818a5f63eeb8f7db71b796e5d9f48eaa
56e854fab35e8be61e053b7789472fb77dcd3a02be420baccf815384457fafdb
2c0b87ea9c560aa93d51529784cb41612eb07c76c1c7581a61fdb4a0b0cf5996
0afaea6d4bbd5c826cb53878ee0559640dad0199325ced60641f874c7bdc9add
c88d0ca35156e07ee07485447ad8cfcef6d22a83c344623b369095d11e554cfb
230ade3042741b7a419103f56a83eca46bac8a8346c3a711395717f379a507d0
81c609ff8dbe3750b30082dbcd5b853275e5f78f6cca0f88e6eb27a187b10984
c0345bc7a5388603464a3327076510a3b6d755670ff86489a183455fcfd0891e
7cd6698dcaec7d60ac24450b304c3ca9e9e5197151ef9e6273841054ee81f885
7c0f042d21249055f22f3953edbe050de7c83d46f415ed77b950ae83253154a2
1467958016f19e10eec746f7824348926317d34f25052480b73f8afb2eaa5a24
14ac67f8107a9628d1cebcaefd432820f6cce064787b8162150aa4e47b44d657
8ef7ff8f7f58772cefa9a2c08728fe277e1e6c503307f91f257b52e101fd9ecc
7b7f9540149a7ba88d2b803b5f600671ecdec6e997cc56b31d24a76c3c600ac2
f851e611f615698b17593df3dad4051f064b51439e3f4427f05169f98c8cdfb3
1e5a3a2d6693dc4fd8cb9d3d0b2e648c713b345581cbaccfdebd9c2fe20adaa3
d34c21d391e9735b2f76800f07d38ec379d0bc1335b2f20a6821d735abc762b7
2390caa4a0c9d117ae5ee592469abc9911ba37d7ca69fb9f2046f3e3d5e6caf1
92bb84a71e5413998df5c874227cacbd2b9ee7fbece4649fd7a2a785e173e8b2
0ef1c4eff103e099499b85235f1f8f6af240b7172766843511444cf08e5d48e7
569a442daac95e41b0303ecaa993b66aa964514f90d23e187cf2ebb31cc3519f
3efca423793aa26e6d8c4338242d9d272955fbf946d2abb1b46751466d0ad269
8563e614c1f669ad211bc10f80342951d70912e9c5099d756a082b50943dcebb
9a2d71c1b58b7fcc28c77b50c1b84ff20c8379db18ab95524c884af2420fb937
57fece5e87213d159a83b1b907d7a977e503442f9c049bcf88b9c693561f10a9
d28fd566b7421096a9e420128638df9db7740b58c7ceba601c7ad7c8e1da9022
48b85c1e7459c071e5f981f8f657e2fdd5dd1fe77ec1e0d76dab881f38998e10
56fb532befce30201d5d1b38bd8553d885227e9165da7bb790963e30c7d66100
e8f76f330baf07c3b78242b1ed172abf4e72fed853afd29bdb3338022242100f
e6605e25bbe00e2e076791498c9288f7d0045b98e4861d14cc09c02f657d2d3b
3de9f6e0ffacf574484fcd388abdba940481dcb7425189035b8704196b7e0b24
543d01019de6e33c912338865a54e3ff13b517eb9fa1a58e96dc4bc81f61218e
499fa169118ed748365713475f86539ad120448f1aaccab04ff01ad3a6512cd8
b581d840219ebe4e0262063cde2c7c09d01f424b1122a4b9a4629dc8182abae0
a9e22cdf14671d3f7ff242cd7c3d46a27694c140acce2e6b48b848cefb883ddd
e2656fed879fe640bc1a07649da2d17274d1a50bdbdb205ac57aec2a72e7b8b8
58d89545b5620b219702602fcf75b13b6e8fc7c8256f33947ea62c40b253bfba
97f00b05e629f53724fc27b8e962cf8b69f2d8efb1be7cff5d8faaa476aaa98a
d95fb394456657d5832f58a39a92222c802b4851a51c12e32c1a2761205d7576
da45287547867ef35f6a4dd3296a2d35f0d8f16f9d73d55daf2bd87796750872
bccf91bba28224ae4eba5336c1eab0cc75e4e4d2ec6456534be0daa4d72973cb
15573342df20ae1c476cae2c494326c93c257456fadb430ec8ec8f1317e4154e
d7b3efe5957f9f379fa23254bff49630a49029f2cc66eb8c9689975b4469b1ba
ddcbc3b5ca84aef16a5fd867298450d6a4662b1d7784b6de7fb7eece70007996
a91bddd92e87b566abcc4f038686ccc626f0ef30c77667b7c66f7df640f2f6df
95c2ccfa4442c629808ed3a8d84b67f13e05821b86131afab41289305bd6007f
236464b954ea3750f7c9e046211ee0e86da12d2bebfca692eb4855587404e6ef
2ab27f35cb58247a58da2b4cf830ed1829e159abb59289defbcd0a7756765526
cc47fb978035980a7bcfbb509f561aae9fb441522a812deceb16e19e7fe93bfb
756a2784d1a9c18617280eae1e26bd884d52be84695a984adb2bbf553f8721e6
a3565aac56139bbd999dd67e5f0cc412a29791c55faed56085d6d9730690c62b
0fb1e52a2de33a4294a113acc9360feea7da02767489cc63d2d329ebc06f8ff1
adee1da58ee3f5d8b715db8b60c5d40c615738ce8c269ec26e9ff9a58070cd23
dc604c962cb55e6d3683f80cfa71092a26eafb878b395512f8d9576ae545ed37
4360460a9917357437274f75496bb744fe315a5ed16eaa146f5bc7a1c4a12fe4
6d33336468c5968879aa13479ae5a8f471a3afc0a33d6c611ca2cdfe9ef0f0fe
ebe39b6729ba97f0b52f3f1348875cf9fe9c856cbfd0b75f8e42a39e318fa55d
b416dabd37e765a5bf6fe4b7c79a4bb04fdb1c472ff036273059e058cf51801d
fee72cde4004aab31cfaacc7a753c3c70d547b85dc7e089b16e1b4208f4c2968
c53e93ec192a24a754a2dd212083646252be2b75f9b631f2c6a5e134b342878a
7d624c691e5f162e6f1aa321a30a5de978760071d0de280267977ec1aa01edc8
5dfa093d00f77afa9fb409aebca7fc4b2d765d41d18a3cb4cac95b8c5f430527
5c9d0da42e0eded7a5d97a96c3a600dc6c9b0b6d2e0b4820c0cfcf5cb11e0dd6
eca172887938fb73a3cf3004e8967d157ad18e43579076f803bfb791efc60bd6
132e028ee145baae3ac1dd1040a4c54cab2339a569a103b1b1ca7d9ce6f6c828
2deb68d00152a2416f23630f21d18597b4feda28f68fb6107dacb65d7b1c00e4
1d87f8b117c30b0c7f2021b6db18cd20f32be86e7ef5cf2a5d706418ce1a8768
3d126d7cb9439ad8ff560e1e6f90923941d0c08304e14868449cc954b5194371
dff2f8f128ab0cc22409a993ac84d6a2efffce5e9ff77bbba1dcbd0679d0a624
8c426555992203ce68662d0b5e6c9943001fa11e47902b8673f4dcfb87759f3d
59fca37708d872ccc5a0f19b74403282894b6fae5ddf786d8a91ce4bcdf4145b
9077bf816cc189c25b6f703fe4c63f76a1ee7df455253769c2b86913e84c8d6b
165cbbfeac9342ff51ded8a16c6925da617beb0d170b0f8fec8e10ef4bb6d055
f7f4fe164165ec712b1fe1ad4e4258b0a6b049e84c09c2010f40bfa5e116af59
8537bc763aae8323c661f59313cb8be70827d39a50829a215c248a78323c3083
ddedb19a7bba188b6e6255bdfa3e74c4b05757a0a0e2d6d67c5a20b65a7bccd5
5a1e64dae9fc09a34a3e131be68d8460c0d68f17a82c359487f8d0d71ff44116
fcbb379def60327cb2113622c0464860c43d94cf0c760c059c2d341c5a40806d
fbbeb293dec09882c5bc19673cfb378435e586ff5701ea0f4152430ae22c8bd1
677223ce20c44557249cdaa13e4e8f212f1ac771319461f0e9d9787e6814c546
d6ca2e70805cf57eccb1e5c084af1f4440e14e7af1410dc50919c2c16709ea1a
c991a663aab906f2d2977515bcc317c067f73e6ae842b694d78a30c733c4d929
62fe7fa43eef55e54442b85e77424b7c9168e1186958b8aed0f36a0722551ebe
df45304906c70e44031adadee50c1e83fc1c5f3d8ebf86334ef4b6ee4eae3d5e
860a5dde9a89756af17802c4342ad4269e2ad8ac03347e9afcb09dea90285a78
e8e1854aa37d4c6e51e084512c62f709cb1a7031e41e389673b746c316002697
00ed6a388d4da2e093911aa640b9f08292b08f5e66123c54d2abd64b5cd2bd0e
a933e0c4b6be0807b8649c8c02f5146d333510ad2510a23f781d30f08394104d
d5db2f66951b1c157d2619f869f6d29440d0dc099d83696788ec557cafa2a440
fcfe52e39947e161ce64792b850842c59d674ca9caabbdf3a1cce313e44b21cc
cebd19b1ba24658f94a208baddffc89655caaf63ecfc60d219f65b8a3f227cfe
6240a7cb9e721cbcc26b49752f3b126fc88c0987f9e2d2df8b4e8665de9cd372
04e4317834fb9fcabe0aa3ac9c6a70b23dc31b949b753bdf45f40df238c1a647
41f94723bcdb59914c1c476f54545af8f5e1847d0be4d3d0d5cb1f8a3dc86ed8
791816642921c8a5910efcd71440f268e7c14f262e9acde2ad48025cf2e224bf
7a1cdd6a8b624227d2b6c2722ceb3d3a719b6558c9a78e97f2b3785874fa12a2
dc03a79479c2edb59f358674e5bc4ecd3045fb1d155dc69a6a9f8b07bfdc8897
b2164f227698b669f768fc8981a79206f737e8fd90d2605df97a2dd2682978f4
b016fe131fe14d99a7dffc0739fa6ad3f75c7e47b2e9b9b0cfff3022b5ed0d0d
395e908484c0169b13bdbf79a357b4300e690af6ab26e116a4e913d7d1812127
ade041b7bc017359df3af99b904ea6246e445896e0f245dc14bd8b0050cb8ac5
f7ee5f25d37768f34eb8160457fcd1b8e5f6bca8f3cf1b66fe9f253b722623d6
b2ef81e5acbb45d9a5508b11d7613756956f19e7dbc9f9edd3fba90cf743eed2
2e8ed0b351e0dc93167963c5dbfc091abbac3a2b416027e3405a007bbf50ccac
42fb6255dcade9ba48abea50877b6f4f9ed1fc8fd35c5f7619c2ceae072c8b4c
e7f5f6407ce62a2e18f08b7bfba603b09c6b4d6e63014108b586a4d352c2aefc
6fa99fcaff74aecee80e567249fee559af179ac298812fcd2212482a28732f55
62f968cdeadba2776bf022aec948751464230cd9c975e995c422fa60491f722a
c66c722187589faf4e2e0673c605302474c446e3bfb6b3c8d3c392edb2708715
db96c337597d7e4d2f304e2aca54fa98086501ba5e30925f8e9c9dc702b30409
1605546110b78de09f1505de044effce5f25cc4409d81dd44ba8382a9e68ad0d
867ae8389334174d814b7a43486a97f363555067ebddd85d559e6674374d23bd
87ff0eed36e0ad4721b2ec32a9f15235955c26d5d7a2d888cd88f76da2ef169f
28a2d6c6b53c45bf627f18bc14739b366ed3865c0a0c5f41aa35014819271c35
d8bcf9aeedde8ccec83c06a6bf5ca681966ed2321fa2861546f82f906267a70f
38ee8635ec29acbb476822cfef828c14d06559469dc1252bd76a1ff3599f9c79
cbe0107b05053ec910bfad3871d4f00cf39927baefb50ddf879a12f0f3a570bd
127ff0be0385278a43b749c3b7a79a290ea20bdeb2b2cd534124dff78e6658c1
b814d5979a912a8e8cfa4b4d8d755fc548246deff1c3d63d159108383f3ec6d2
bc9d3d86737b354e1ef7160dd35158084a8bcf02b308f922f7ba17d9ae8e1bdc
34326c27f68533ed6a7ec48256b65aca02d06374f8370a58300d054483bdf462
eec554570fa6f707d991c1ced819c774d98325473ea66f2c33e3b76c81590ce2
ae6663f3ee074f18f26210f364f22b1dd589f1430ecc556a97d418f8f230237a
4971390d183a5f34054afa5276420bd274434ec041708072df41904b47c40f72
a7e68d553f6a08118a13c89c378caf7ebc249c16f07b166e31e6e433c9ebea81
113fcb697379232d190305ea9950bd73c6eb29fbdff8b2be2b9a602b5286de08
46d586425f06e01e4061c19f1112961ef85303063b060a6796f25442b6612d8a
d2a38baf0066f7d8cad6ee0f80a052a982d53fee764906696b3f53abb5c19883
bd0e3e4c881be3e2fe69e2898d93c2fea48f22add256be3b5aedc0e8c1eb3960
1c1c3dbffc558184c49bcbbcdc1410d53bd3d3eb0d8e016ebd5d28778d5c03a0
b016b86c3903ddb219daf9805eb4aef0584da8444d0909b2c2448ad20f27d3c7
2e8baf1aeb25556b3a13cd5dd869053e78c691476608c2228fd77c361cab0900
89bde39a87eb98051174a9a79f3663488ea07819146134f2034fc14565165b70
c413055d2a9d5eb97a37817fe6883248c4e1cdb2cc57ba0c39ed9eb60d76546c
1cef3a60959927695b8c55bc0397011658b56f000a4b3c53c70582b3a455e759
abbac4bb7f40c2cf9b1f7b59ae886b19d357ee2ab89790af71fe5302d3553d59
31607846e13d89c52674a30848f285de6ba6f3abc0840360eee367c34bc842ac
c854c378f3914b46c43a8df52d0070775c051d9d63b60f476985490b94af8264
9786add5090f901d080ab59da9c56f1f1a3791a6f1d7e0277b88a0e7e4c7f829
9e6ca69826dfa8bdd171dd2ae1dcef85dbc56829348017f582583375b8fe1ab1
3df4da07b233dc3e7a1dd0895c71187bfb6afcb20b496632414b29fed1659e08
6c667235290a9715264708a19c9fa794fb4f6fecc9ac42f32bf7e3171404e713
641249e80581f5834891d963f46afb153e0664f1022f8710b313143df4586a81
d5322fade67b37ec10a181b63a013b577a2925050f3278da2621cc3ed89faa2b
6e3215a055dcccc41e6e8e56c5ab21b46e71a4c76f9b8c8386a50eeb00177182
451d4456a47b7bb6c16b1523272fba367c3c165f5e0e005b7a4543963073a0a6
c23899e572cef904f06c256c60235b4dc63ce5adf2d874e0e97fe30b4aa89b22
99a4a809c24c16865ebd8b1e836098d4ee31ed59e730eeec6e72a446ef3ee38f
bc5e5bbe0e5b6ba72da7ac45c7977013ef9315717f455a45302183c8ec48720e
51ac1168cbcda0d6232f0e20196c54c8731382cac4aae1bae8aaa99db6300090
ce8d922a978afa4f97cb8a0334aafa27e4f93a569ede4f419f0312a0ae51889d
5815a46916486ab84103737c2d3e7226c68c26367930dfa1b3a6bcb0a68f20f1
c138f8f0815d2666d3f5adf6f76ea6753c2424baf66e24725d9695333f61a313
35a690aac7a8897cab0290e92a609979d89c55332b685254b3a4e79093d4d0d1
4cad42d9e1afb890e8a77340f2b8093371aa5a22dc59f6546c0b4a54fe1d95f6
442bbdec8267bbc1a5bbe119b275db4daed8c5ffe5541b585960ade435bd9b3f
8af56fe93a0c188b0ab392a1852897b914f3a809b517776ec9f69004304ac25c
20f662aefecc384510f100a5201ca92252a4f9b01dd539eb705417ee68064973
78a6ae731681fca382615494cc7bbf286dc7ba38dff2afedb29f2dd641f92f22
95784f1fb25ddea5250a63f79fae212fd8609dbf206acc05c5b2f3c1c842859a
af0c4f045d604ddd6322c28e9f0d1fc9747bc2df74ccc88052daee9dd777f587
c459a6f7568d4da21622f6b5dba977e99183e678a0018ae7ea9ed29ccd823315
3066ca17a9149a63867ab084d8e20fb6f636f56f400c1e37ade5805e066cc642
ee9a239f5b112a70cfa038c3eb9838058c6b67acb71672902cfad10933a149d3
37e7fd389ffb7f43d69df7316ccc3d461de03e1856fabae934bb69d24dcacd29
2c33ec98fb31e5ffe312dcc498fae299ae05842f1c6ed24c41b48a9879847720
80ba71abc4131a128c44d731e569f8d3f6533975f1cb1ea447ed79d7a9d71553
e7b93a15763cc9353d3f4c4c28986e7493ef5b932e7b9549b5258d9358f1b983
bb5f64ea6c120ddc0eb60ab06ab738bb9ec3ddcc27a824b09e957a8e3fb815ac
0edbd032057b9f7215a115eceef5ba9f8af6de79a3c5b8b6d972a295a2a5bd25
830a15b6a75393160ec588badbe5f99e1e66c9b2cd08ddadc0d6df8005fc1f16
50d1e620c76189b8b68b36a725ddc765ff7a7365bda43ca02d10ce4c84f221ac
ebf8bdc3e68cf1dd3fb7b330b8f1126e0a54d0f66f4cff20dbbb6c7891f76d3f
92ab5896ddaa41c1599b64d790d403e66f766ed82be25b043f19405647e3c916
b9801f3deb922274a61400ad445cde00a031fd0595b2d36efbdac94671d1957f
24e7d43d2e0457c442e402a23ffcdfae26a8636a6606bb3e4c11772f49476c3d
4ad07ce26bc242464b185515c74d6f029ef9b7cb4a7229e12bc88ba7dbe6c347
56ad8eb7ac28303990b740c121334ee44dcdf36357cb45a5ec05aa48a6431146
d1404d616108352e6025716d586eea47e97511113d93d71f10e18b150157ea26
6614f86638727c938e2dd9a7533765ce32981bf9cce7e664c3a982e5b83951c6
6968fd2616f1d41a70884accace6101251893d58e6b9537d1247b43d54a4f3fc
95c491b8796e62ff2421d5ed53f8cded2c1210b0ccb69c15f4beca8bddce7a42
411a5a1ac50e5e0920c12640a7895163b663fd43ad4b7d10569924ba401270ee
b543bee434a94b35e04dcec1993c113c2e7ae2f7c9ecabd969bc4699e0e11f31
94749508078e9f8a996f4cd3a4f90ed2fa6e1d559395fca6cd20bd955fc83115
0126104a32ba36d13027d16aad6a5fd74ed282c208de78034cb716371f2dee1a
acfe7234a51906abb7961e788c2a5084bd6c63aa8af2754269bde9a4edda4579
ade158dc4f07a88d
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMTI10
%!PS-AdobeFont-1.1: CMTI10 1.00B
%%CreationDate: 1992 Feb 19 19:56:16

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 75 /K put
dup 77 /M put
dup 86 /V put
dup 98 /b put
dup 101 /e put
dup 102 /f put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 121 /y put
readonly def
/FontBBox{-163 -250 1146 969}readonly def
/UniqueXX 5000828 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3ffd20326947b1065649b533eb5e9e3
a88a87fe987918a687950b26f647d6e08bf14d983ed1d4a8ca1e2da8d985f944
2eb916f5b6ed0697ac7c33e1e36a3bf460d34ce45f1631871097cb04f18e3889
4cf4ac1538eb19481311d24fe3be7beaa4a3730e8b4831fe59d6d9ce2e46116b
629c7ba2f9ce3ecba2f43bc162a5a077ca1b2882a42afdcec3f4b75b5d63e0bc
8e5dc95257766d8ea467ad9cbaf47be60f797580cced6884b3a68f70c91f4fdf
80fd00ed9139e7f480dc3a76af72ad9b434187730bdfaefe4cbfe5c7edcaaf24
9204fd703011932e5a3c27be468b7dab69daa18dbbb6335ab8ddfdc607961c7c
02582763fa069d43563ba17704029945cf42fcb19cf78c51df0ec4d851086d43
c1ab38e865ef36865fff3a08b01cbcb070ba4893f7482dc7819ad03d337e520e
7d8cd83bb8ac7aff4df36751f4f12aaaea2b6d7260c09a26e987c904003e0723
7dbcc4a8e4e85cd3259f40d3caf55c742cbb40ad0db1044c20a4f122a63f7b81
1d945bfa69662189ce4d089464d2ead9f6ed60b581b04114d5d45e97be27a576
35154e9b8464f2a0df18da855eb51b8f64d3054b0b2e84621f025a0776d16fed
b988a43d2d64c32768dd106b9f541ae8e68ac0bb7399e16f4d4ba074b2152d0a
4e9b5bfc21bfa0d531e28165e518ffc054dd4ed0d74eca079d20e79670419f92
e03bcbfeecf3554d661596f6f29e12170804d15a250d917ffe7a8b6e8fa53047
1ed97ba56481589a65ca13619129f1e26affe6c22f0c38540f8ce37efb6e9e9b
60b51a5a9cb4454fd7c7f92f2f9437159687ab590f35b946a54491a7739c9269
e0f1fb48b129811c82edb3171cbd5105fe65906974db8a7da92f4f43dc7f6b36
6981146d86d23613a0b38d9d6191db9fea0172e982cb1cc50e382f69da1b377c
1be9407f88a2a761b56f398467a057f35d18c01cc377e006182c891ec80272e2
2e3a5c7123cd27eccdc87392a9fdf63bb40f02b7649cfc53ef933c6518744cb8
9cbbd437830ef5b1d58b00b67bbcf4426dc1e6ef583b0b4ad3aebd741e3ff0f7
29ae271f032019b1e7268043fd215be590f9cf24da14a90f1683afcba8006cef
5d5632c2481fbc1bd8224e8952debb7c4596a237e5505ac143180956ca1f603e
ec70cdb4a33e1c4ca1744ad706aeeb2c12b26a02b2f19a8698c0e96668179290
1b572ec83f35fe7b30f03ed45a2867558a194ba83a6279e52397a2f2b7a8ada1
528379f5c95d41a9ad00a194ef03fe07399722f4e7906c75025a6f47ca452da5
f447740aa05acad2a1d814c39eddc0e03d4e8520ba241f9dd9d68287ab6081a4
9958576aa5bc6101f2b410da4a93605d3b3c995edb85e2598994dbf48fd18c78
894534d5bad1a720ac782e3f8be3ec66442e56624640070abaf2453e13a5d429
f3cf07268645654e861c143342ce8d45bbf241d962e053eaa7de11a082384db4
9f0c1ac822faa3ec330777e9cb1f1ca24d50fe62b08957b6337dbb83d71214d5
c341301e9ccde9e007e9f868b7693ca73522793104cf810e5957a13311a4e4cb
cd81b405cab85cda6cd1183dc036de36ece42b0354e51f1b2c49c30222f5167f
387cbb70f0ce4e0226bc895b01fae6cc09ced83684d8ef2000fd86eefdb3d4e4
21c3f46437afb234b274c28818c241240285062d25ff45ad5fa35abd11ad24a6
26db840030d2be49f468be5a6beeb97c957bc90a4763d710e53422424b8292fd
9978e4fcc4f5e845c07b11ff5f361bd738dc2bc5749388520e3091b522755b95
8ff99890231b506e9ce7390dc6cc8bfa8f59a620f677cc79ea1e523a0387e057
55a3cfee29650c37babda26da139922fa4193e46f626fefb217ef8a09fe745e4
d75c80f75768d02f719f70914e2d767cd113cc8a57623daf6b8b5830e6c6e445
259b4d6c001113b1dcaaa21d6e8e438f7acebab79b8999aad0b0206903ea510b
17cd549dceed5b74310f9e83d92cedf99c4fa45f28b2db13e2f8ae109fc00ec9
9cc8f24381d3905182335729dbdc252f66960bc441b015db0d6bf43ed484adff
ff7462d7d8239ecedca62eb649fc46008430c4a15908f2f02f17e0369193ea8f
89ebfd4d2b0b82e263ce5042df7c409cb2a7f65e55a1a9645cb045d384813885
b663011422cbe1227cc223a2a1ba35cde8564725449913c1802e223b211fed9a
95fb1d56dea5dd4f491f76d49f0182f9d0d1e7406a08d46b1bd29914e2825fe4
dd6cfdc4fe35a1e52b7f17a0dd5e759aff2f96900b91b290384ce2bb530c106c
bcf3111e085f1805cec7f9816c8842260ff748f23e3cbd6e85a2ea0c14968971
2aba782f1bdb7d3415ee5dad0b344b7439e08bc4e47bf715d45447c43a34738c
b2fc32bde21cca51aa5d4cb3732030766c38c9cc90d067a916331af5738eeee5
5392a1a35db1311b85406c58517f5184fdecf61efaea874dde176c4d28259245
3bdc12b26b7fa42aa0f0bc8f989e2944512e012beff50c65c77761773ae6bd3e
a91bb38d68033c3250eedd269385846d1fdac6c134823a2097928162dc040545
68e0dfddc5329a3de33e84d03212ec83eb56d91a3408d45f8c57912aee3fec85
246031c22f0a9bcb1ad5f728511bfbc5d9ab69e8c85603f3261449e04e88d7c8
ce933153799cb3950c05a059c89e0c50116ba11c2b63200958c1d03b0de844a6
55f96bb06a07cdd952c8ba4e8f5203a7bd90583e9258019451baaa86de7d26b0
80dcdfa60bda228d5bcc65e2c6e75f9dfb9f08d1b710a92dbe4d0ba8fc2e89d6
be2d9bad7c635f62876bb94ce48373f8ff596591912399d323d9c010b415ed54
80048786093051bacfee65f925f262c7fe76d6f2e9596a74dc01b445a6df7ed1
bb61f49112c01cf974a85855a83cd28676600df6dd0a3096371ea0b98c98c023
6cab96286e9c80ed96f1080b705b25ae70e400e05f6fbcb45254b5467a31eec7
e2884d306ab47163487f1f49ac1909c554431e3dfb3a21806b5093904d11dce9
f12c5ed690fda311dc60fca3e4034e9d1de1fe70f5f7df5add47ed9233ee15bb
0f58894ce3e06a07e65e1f0765608073305a44869c18e6f4dea8ab784ad6fc99
7d34d7ae8f07511d4dc3bb2ba2d64125b93c33f34d2d6450792a59811efd692f
f41a71d50e4416de0450059422d87f732465f98175b2a7afb253b4f1795ba3b5
2459ddee9210d447ed1e2d785fbf2a0e5dc53688040d15f1e57f3701eb2ff7bf
a7d5f2deae4b570cbc2c9935e952582d280e375782fe59be30336bba468856a1
2bf08134d750ceb5d03a6cbaa4cfd651219978c1ad933670af11d4d31e60fdee
d656041df516dac5708506648c1500201979fec2dd46cd53b1b1135c8a9951f7
d4cfd2bb8f81238ac64fb02db05fa0b509b8f46d787010f5d95097a2ad376674
a36209484192b5d97f16b098b8d485d724d8ab99e222f4b9c94de2339c875834
24d4cea85bda1fddfd854763dca0a4bb72b1656f3e48bfa762be9dba6f21be9a
122f3246464b148d7ca2718db343576e2336f8cdf5634514cc32645f57742a0f
4075e51f1dacf029b3fdc106c661690c2b84674b8e06dc884ec878dd1b3ad6ff
cf2c31d8e19c2cb1f500eac3e5857c7721dfb9bbfcbbb998759ab377a00b1f60
a51322f94213fdde1840d6729e0d66a935f2583c08b0b7e32c1447a93fbc541c
137447b8854920748c066c5e51040020bf191aec1d81ed069e224f16607bb212
daf7b4b25a71d0eb68f3cee8cde47ec04fe5d9476072d67c1c460297c34d8187
b6e0e336436e161799bd5ebfd164c8c30a2affc722af8e133b7aebd9cc6971f5
f6b2db85901a2f88412ad2ad606857bc17746b7c6b8bcf7b6d429364c7d0a11f
6577ce12bb99f72ebadf6631e2784ba0193d1728d65b7f8e9f4fe314bb5dd952
a4f87072107f2ade291839eb237eea82f838a7f5a47adeaa0f6b7c62b07861c7
b8f3ef51035338b0a7a072565a6bec441c82181ec827ba726a61477a34b3e467
92f1d04f0d2fe83f05ddb0f5fbf649f8da25f754e0a7bf516699ff1e67e90c59
9e3d5556bdc1137ce196070953c9f345ae235647fee7f0125e3a67fe994dec37
1add22281721c54e69cc2a3aff96b3f8c5d4ff3cd1d190a68189c275483e528b
98c3a19ea10068bcd5174f7e522ee07897ad58d8a3af5c7590916999f8425ee8
7a942d86134baef293e897466ea672231e5c929bcd0fc170354f36aaa30ef573
5b28346aab71e40626e0fed069a50bc3a25e50163bd40111fc4a52778f29e82c
870d84ef82cb1900bd83ef996074b78464c7dde1d56a9b78a5499d0d3379ba6f
21ed9bfdfa9384a94c6eb9150a4042f2fd0964ea77705b60fc6f75ae6d0711d8
7c57f36997a09b9c1db5e0c4e5cb815f7919d5728ec278f8d3e2ddc1847e48c5
6ddd7f56cc50dd75447b30f90480d870eefba2aa287f1e60a24b09cd52399011
7c47dc8c3019e23b7d7386403bf1b950034b79044622d5d33ea722790455b80b
7699d085b41dfd9383ba49ebb17688a4003b858ba9a9b3a3df5d392f2601267b
2d4992e2a08e639ec8593d6657405a7efc0e250e3fa3e8ba085678bf2d075e04
4416c787e034cce0fb624243c9a0a5111bccad737db496319f70ed2f85eab010
ba6ee00d7ee66d7fd0ca59eb23f81e1e541abfbcb385737f04f9c33ee21a67c6
cc542bbf3e102063c3bf5e9ccfc59967f20812b0a5444036c0dbe57d85173326
c1e644f5db3e515bda847003a2c95f11d2aa1adc5b7e74318799ebc5141de1cd
062cb07275288ad5bbe83933b5033c6d28ba79acdbe4f0014fa31b6cbb0ba9b5
33efe0a06e65c3fce2cd734ebf4c864dad0873807cdcb02134661cf7fe66d34a
01378562eb64c539ac62190f8165e47e401067626e1373a80116bff0f1dc9c9e
bc05a4c101c7a30a0c60e05ee1f821072a163a0dbb44a3f3fc9f953c65c0c9de
268af036be9d5fe2a2a46b4148acb8c391b4cc5ee92e3675f2e7c3f3ca7514df
df969ecc3ca5c8c6b8dd61c5b94f05c354bbde0a0ed94709e81a47a39eb08bf7
62a4962b49b9e91b43aa6161d64d629549ca4346d5087f24fa4d9330743a19aa
b5da0797f5a030cdff91a3ba575064aeeaa2b04cad6bbbc2cfa8660c66ed268d
abf6ef4ab2592a481fe62febc4f3ec4406737e7e8732f0c9fe28c32c3306a5cf
b55c51aface6c0a5346a8e49d1f309d9613ad17f8d9c7218c8b432abf18b676c
c4c13eaeee3e80afaf33a0de7ad8d576783695167f170d9cbe9c43effea8728a
5d72a765a1e4b130a0b5b6dc5bd1d4164e1b120d6752a97f714278051fb6c60b
5462a1dde63779da8bec00aa7022065e316f2b472aa3dc0e94d9ea2013023828
0127d0a3912e7a47e3a95bf4817bf069784137b988f6c1a15e684af7ba42fb67
ccb755dcfe36fefb3a46d717d4878a128277d9339c5feabf6b261fa31c128172
a0ab133c1b1f1a7edba50118ab5261f2722740aac532f7f6aeca21de34d7a5d3
a5f16e4aebed20f5388053f14178fa75d5550ee3d45a75139b5c609437
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMMI10
%!PS-AdobeFont-1.1: CMMI10 1.100
%%CreationDate: 1996 Jul 23 07:53:57

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 62 /greater put
readonly def
/FontBBox{-32 -250 1048 750}readonly def
/UniqueXX 5087385 def
currentdict end
currentfile eexec
80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98
74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730
48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f
15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff
da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427
bdd7da12534ba078ad3d780414930da4f8d58abefd45db119b10eb409dd89792
3c6e705479464a4b310b58348c4b42393988fef4925cf984423aaf65fea9f0e6
4629953bcf50b919d968d99bd185f83112b2759cc411764e9bde677f57c5ee5a
c555448d5f81a16259ded1e11bf4119d53e8ab07a802df900d3a2d5ccc1c6876
d29c5e9effb7af3ef83400b0910c07873a8c56fa7b1eb1ba426043b00cc95dbe
dc6e136cbbbcb3f67509964f9f281ebf81fe5b018122eaf66c4a838487e82e18
6e006093042848a903efb3469ab6b4049767aadb95c30408dfd58d8a10f4cb22
168decd9f3ee100f07b49aa44c92139b669cc312ba20192454eb2375be6284b0
26659d964b96ae82d4942e758027fcf23c25ed01115af27ce7f20efe2a822bb6
84004f20243a49c9e93301fc21b80815c033c3e2ba58ef53da2157d524b395f2
b37abca13bc6a2f42e824ab7e47106176b0d6db267fbb795ac7425582df2e3dc
55863468a9200742bd7b552c48f8cf58bc21343bd3b95abfa140f33f37c6f3f7
8b0d8a5154eb7c1f62ec598267f13e841a3e64172663935ac8b665d86540d316
ddece329c008049c5e74b27d59022c5515059bc3b89370b1bc6a169c888bb325
e0b74282d6f053a50da4024ed1e433271a32ab8c17d41c632b41cf9f3ecd5fe1
24daf7aea7ce8a63047b245822930d517df7baaafa69d2d17f7d93cebd45416d
f3459365434123a76ccf883a4973bab19807e1f0c4bab03a45f7ed69ff2660ff
3963e4def11001eec4238c368a39d874fd30b3c14f4186ec7700fbce22abe468
eb32baf7b0164f8f21a9b5e706b91411faaa44467cb2180ab03de375c1ab93e9
76e11ab92fdd4a7280a6d1a8dc65c4c89d04c8ed6988045a2a3de9a4c7b1efd3
75b79ee3d49569213fcb818f6f1cf250f5e595c4b2c7c1af70ac5d2e0c6460dc
1ec49ea5e8512f7db9a3ea1e7f62d31fca3dcd885125f67623e749c6d05209c6
83be0545748dce3b76460f75c794c37689b1213e5eabf56332a51b4e9fcd612e
45a122463dd68f3553b127d8cce7b8f59941af67fd54c656a810ccbbaa59fb1a
05aaec0aa0263387e31854cfffb805e05c05a5a68f4ae4336f5a593904fff23e
9406d2b68176d3549c81865f832f71c467356d962005f580b42d709b393ccfcd
40193f29bcf84e1200f77ce6505d146a1cd2c9ac708cd9c2a8fe39504ed888cb
cae8be7c586701e18f68f7898e7988fa4c5f5d40bd926af409f1cd65211db2fc
513df180c0746e6cea0660
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMSY10
%!PS-AdobeFont-1.1: CMSY10 1.0
%%CreationDate: 1991 Aug 15 07:20:57

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 3 /asteriskmath put
dup 15 /bullet put
dup 102 /braceleft put
dup 103 /braceright put
readonly def
/FontBBox{-29 -960 1116 775}readonly def
/UniqueXX 5000820 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352
05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23
b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a
f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145
d026957276530530a2fbefc6c8f67052788e6703bb5ee49533870bca1f113ad8
3750d597b842d8d96c423ba1273ddd32f3a54a912a443fcd44f7c3a6fe3956b0
aa1e784aaec6fce08dae0c76da9d0a3eba57b98a6233d9e9f0c3f00fcc6b2c6a
9ba23af389e6dfff4efec3de05d6276c6be417703ce508377f25960ef4ed83b4
9b01b873f3a639ce00f356229b6477a081933fef3bb80e2b9dffa7f75567b1fa
4d739b772f8d674e567534c6c5bbf1cf615372be20b18472f7aa58be8c216dbd
df81cc0a86b6d8318ca68fe22c8af13b54d7576fe4ca5a7af9005ea5cc4edb79
c0ab668e4fec4b7f5a9eb5f0e4c088cd818ecc4feb4b40ec8bd2981bf2336074
b64c4306ccd830661fcf3c47ff3eae8fd094a16831b518021a877c9e4f08cf9e
034652fa2a58b797348c077218011e8bf2d777751ca3677e5aff2287f4f646cb
8b5498e159521e730d860d616df05884bc55663b9e77e70c873836bc20c30ba1
a2a80da3d1cb896435db9999d23da0c5765fec045ba0432816e1138d912e3e9f
5285156d4dde5bdb33c99ab1404fb58d154b8cc3814e8c9998f444d0d181254e
df4b8d6b015d157ca695a3e4877616858ffe1a10b3f06946a468e51072973111
1914492c68a08b17474aedeb5c155dbd3e872bd7d6e0013b1564c2c1878b48c7
1b419186e4d4c6b0eed23d0ebc712a84ea3730161cbc9c8798307e7ce25b6071
5ef26a236db43f5b568b6d1866382cea28b6c4d7d5510ee183db84cf2b1a52be
ad9f5af47894f95a80a8ee2fa301af887b08c139f758606e54343269fa0a8905
f6ec57e464cb41404b95b93a39f7d2f767583ffbcb3f7eb630cd95f3d18999a9
73ab19df949bd9d588512def1fa668f0c518aa5dc06ad2d47d00ac59acf19174
c990124c6825b7bd38741d57c6f17876efa6c5c0633d48ef04f6ac507b18941a
343656b8cd5c30cacc558c122492f9b528b3370696e309bf9eeb27e1ab1d5eae
597e96c1e5afb34a83f35f0b3d005679f46546d9df2a38bf96f8516fbaf38959
be36bbe3a2d5136ee7d9cef52bb05b4ede5b88fc48b08de66ba9be000e69ddd6
26bd3b8469fb96bf14ef95c6b4c4a41c3756ee56448f4ba3fbde643306ca844e
27d20da8b8ccd6aa813a20deaca29064a05196b96721064ae8edbe4b75d078d0
691ed793e4c4dc2c5096519d296dd27a98e09d954d6d33db30d913dc3dcc0949
f3c599741cb342957e4c4ba444524ca8196be3e7eb92cf71d64873a22a5b9716
a3ff9bedcdc917b4959bbd96b51fc25ccab8afa57c03130236fdedd487196ca0
5a7336bf3b8ed378b72ed14efba67087c54e38937ef639bd1e056fc2d115756f
6db4d7d08fd2eca6e177a43edefdf8969488463d9cfe24068edea27f9a5c859c
49042577c2ded6f086e5587bc26b4181dbd4099af03687dcd8ac95c49aad02fc
2c744176227418b1bd4aaa2966544e8e682893fe7fe66fef70346fe498e469
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMTT8
%!PS-AdobeFont-1.1: CMTT8 1.0
%%CreationDate: 1991 Aug 20 16:46:05

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT8 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 34 /quotedbl put
dup 35 /numbersign put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 43 /plus put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
dup 60 /less put
dup 61 /equal put
dup 62 /greater put
dup 63 /question put
dup 64 /at put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 88 /X put
dup 89 /Y put
dup 92 /backslash put
dup 95 /underscore put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
readonly def
/FontBBox{-5 -232 545 699}readonly def
/UniqueXX 5000830 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486be533de8dbe3ccd493ef4c9656d5d5b76d531
9e704539dd76b065f45e6d6f62ec499c9ab91923a364237ef75e1d62d52df3a9
43713cbc63b16c1880feedd1633766248fed9d060ff709951f2ec84ecdc06bbd
9cc4a865e1f275455525e5ac7e2e6289615e98cf7ce3763b6914d3a4c5b75b29
b8043dbd898ccd5be448064cf1af2f80f969a44b4f9b801c42f6d6a6d0c3ff42
e0b1cff748c1fc49b598eadde0c2802dd591c54b802ffd24cb7a7639295713d5
4e639514ac78460672c9c51742ae2014e4137ba4303051c06f686395aaef86c9
9d7f9a97009436c2ff55b770de3e80cef0d53f4df46aacecc21632c0c676e2f5
ca7bb101a239a0ff67ebd37a6b8c4c8246dc2c90b759dc03fb26bde8f134f552
23ef3d6496aa0c4a2d7b6398de6e6a0474ee1b0d78b2d865614609f1db92fc56
4ab5921078b4944e11a2162902f0e04f4b29448aaa22b4ea92fac48f8dc47535
d717dc7acd08b25d391c97c6c540ae0a98be5d6a8da564ab73e8b5d3b5e1989d
6e25c3a35ea44d596b5fd6b2373b30de7d59c1831245edb76d6a67816ab91a80
a27a6597c6dfd274db8b3e45cb01aedee59ba6efa1428e41ed557f051012a389
9b195ea44a4e4d0067398d9d40ea26195efbffd2cf785540bbeb8964f6391361
904fa5e187e4af3baeb4e8cbe7558fb7049c94a1769a2ff0b44f679bf6f14d8a
974bb8bdc734077371d2d1b09e1a5c2fa63222c67f004f7dc18ec42bff9736e8
04079c457059bcaf6c180ebab7ad3b0f93c0a843143600b18f6f2b7853a05cf3
97493d825b14c2fe7db788ace9408790c928501f123f9041610206d020115cad
3243f145df5577a91772a69c8edec1ce5b6ba16d583c83696f25a3a3061ba431
3196743b117ad89a3712fa486dceb117b99fd90039a656083a9c78eb5402b547
a08ddc567d4b415085f205b0b18c39716457b7498c815256288a304e0ebe2156
a6a906bd706484937da7650cc5735ef817f94a86ea67576628a2cc5f2c777db3
8507552c2557e029e1dfeedc773cee8dc4b2bd6e6ac2990da0f8a63a944aa38a
6dc3f3ace42648c63d81f8c013f412a8b0a8ad3dfec2a5bb6309c30128f03ac8
d60cafcf915cd411b1fc3145c973576c5b243fed4a26c6b26e3d5a58e3441d2c
e5b171bc929513f15b4deecaf751e44c9c0e192e38888457cbca5d221f5d8f53
43efbc9e8667a876a5a8cb27006b5b25e8e1df74f687a093d8b23811c5b6a7fc
19d2f18ea01c755f5ca5c7ab884d447518a15cf18f600643ec0d56d14cc8ec0d
f303fb3d1e2a7bf56571d2ffd199f8e49555490e30aabd54577e0a9326878b79
62a2fe299b219d08de4d542efd38f487d2103d30a784ef65a06462c21b190ded
bf77b6439f396cea6cac03eabf74a86b802f13393fc803d4914d34978808fa67
184efaf0ec459fd8dcac9d8cfcc04d8fe9a32f2ec119a049de4ebf5e7351897a
cd94655c66a6918e8ad188aed0bb032cf0bcf8fcb873d0cfbafddfdde505de9c
6961ac2918e00df9381599db3ee7fb44bffa6d50604bfc9fdcf5ce04de5f9092
519bfcd3f6953632b6c3de2eb9f393136c77ec6d046728bfad43aa611d707969
e452ddf69770946f59eb6258c238e5401c6467415edcc3e09dfdc558c17db9f4
d7382241d8287d420b0a84917c8ea17527717f791039e38725341d5d8f7eb180
c9cbcffe620be7253eddddefb3024667d6d05bd83fa73f0639ae88115b26d1c5
1c69be4f8ed9ecf23222a92a0c30a5357526f24e0b906928f9f17e225ffc31e9
854b421a58cd0c456f7076e523ef20b7f27a9f4d84beb0d0f80c34dd800a119c
a823fea9361220d88ffcfe7b4939ac2f3df0b5216953d3575daaccc6b17be329
1f34469673b3eec878d7f4fec19d9d691a6ce8cfd2497f4b043d48e6b420afd5
fa7907652b1c33667387925e68d2606cfd30a077c2a93788129d3160d2a4a447
e8776c0f8524f2d5b01cb87748093e6ab09709ce91b126521a8f83b38db99767
811f6648ef00a4a08f33052717f1fc40e40a427bdc75163c91781b205c7a7eb4
e7d63d231cc6977d6191a09d82b98a4ee9b8e63faae9c21cf492f06d6cfc7179
d2094a49970d303b448289b5acce2d94d43fc44b9a66210a5bd998bfb15af8b3
1e2a790958d406640460653fe16ef1cc736f15fd3d91fa689fb76bc28355d6e4
7f16084c715a3a3c2f4c0f47b745a618b72aec1167db795a407069fdb74373ff
04e262107f973a5f5dc7fe893cdeb6938a99057b21aa9cc62043179a3cb16bc0
bbecad390df65dec3308524a494c8cd767e6c2735a1edaab64a0102786a93d04
3cd82985ba4f63eef33f399ed4fc8aabb6a6beb6ad9912af13b6f301ecefee57
8f9bf52403478abd15f1bf0d749cd88a5e50b0c52905cb3111b5476067344b0e
b51293d9d2e7b6d6a4e365c3beef776a2552a9e46991ca956cf708eb7ee8ad04
3c1b38b076e1d8971f00d54150b01f4480d6692ae2397625fcea46fb1d592e35
b11241d1d812d8c02179116f39a33280dfcc4edf80fed133632d3e56f866aee9
bced24ff591ce7334943932a1e0fac587937756e1a13cd4c8b63352c0755d75d
0c56d20c8c50df1ef739c0c8bf4f501988f78f41bc75533cecbd27290fae4c7e
5db58764a48e1633655706a75d09cf5a062fc86ad5f7d6d72a593d53eadc6fbc
089cb76704c31a602c09df23565d18ed5b9882bdaa16860139bae27ea191c096
204e967206c031f19e7917a596c88d615baf8028672b2d5b3057a378154bc18e
81dc500fd32da8a305f9c19a5154bacb37246499f68fc4db65391d3b36fa7a7d
c215cf0415297beae31299483f6b88ecc2d79f0171479b3ae8a51f3cf2cbde0d
d8f132d312a9961ce044281220cad74992bf23fdb9993495195cb0da3bce106c
5ac8ff6726b79cb7040bca9b731dc8169d3750792035e7e56171642dfe7054e1
6452fcae01983d4385d5e3d4112e4c8514923e6a1c86a5f12adbcd5e056d0e57
5c8d4dab266ddbbbc6564b45fe73f282c89337a7c2b23195fdbcefa36e8b8db3
eeeff7f4bbbc1db37e625df47ff7cac8404287a38320e53b61f899e6b141b6a0
0ccfb7f7e7b47d7f79418c9d8415d487ee938e282972847a33f5455a76abdbf6
6b12756892eca95e2c400f2e92675426d397ebabdc51468d2264a804aa8a2275
7b5f95ad26b68abb21296a092343e2013db19715c97a208aeabaf633514b2239
40b0048508b859dd35e987e32a74f4e098ba51322513f94aef8319c6ef10efa4
e445b150f5be6791d5af5ed7f88275a7d300f5ff9b3e99c041c96042c5e545cc
810cc8764ba354f4d9f1eb164df037519c98a6af20f61815b9c479170e3975ff
ed93933b6b5299f18e36e6b67ab8477c4e7268b87d581f22cdb3cb45a2365d78
fc4d7c0c687454e53d0d8e8a52922208ecd77132864f3b96b39340e4c43ce385
e7114cb80ff4f2fa6200f8a0eb34d2347bd00784d86a732e0e181845ec856a02
7ad435835fe6bef9c355fdb5842bed12eec3b02885c15426e494a3b19cdc2608
e244102a7fb4bcf9cc6bb7f67effb12ec38ba9fb84ae4dfa7b7a3797939cffd0
202df399dc836c26cdbbb10094970aeb6fef0878b697197de59e859dc6f6b6b3
61701c387d1a612c940f0e800564b623867513b2e7e2cfaa08672266cbcf4c89
88ff99e8bc0a22ef8e266bccd6721554fc0a71aae7bfac82cdee03161cb9bbce
8262ace2b4b81bd8f4cc30d6aa31348d39d368cd731a3b9c5e4dd6ab8b162bf0
2a0c18c50e5f2b5105a54336a9c272d8ae5f6929b74878c1a3671a4de6e1a59d
68a52542515af886bb9fd1b011a0e1f2a56897c0fdba5609a2c6b31c055e2591
2901f0d31646eb7a6e53d6d50d6e354c988632615f58e739d0d7b2e02311fe41
0afd6f1f71a91fbf0b65b61c3d8465bfe5e2579ac14c7824b78a18daec8ad076
7c0364afd7c9bb16d72fbde3c462d08c386afacc5b4a0a85a8a700ef8f2b6381
7e33e27d18c1238dca0e98affa60bc19c542873e7b895531582273516987111f
1c7ecbda4b6b8794c3307f7e7de381dad6eda9e66db09ac482170c69f53b03c9
f079d521dc7845d56949c72e466bbbb4da17ef7b750bdbc85650a9ba2341b6d7
23aa6a9e7a711614d3e2ad0df29f8247f672b13d8f67a00d1d51516a3a7fefdb
29e45fe75e81bddfa8c60674ef25b0f7e0849f911ce928d9925ec09bc8b6dc89
5d98af00f25de69e7e56dfacd89cb5a3b8c30aff91bf20d4544e184b43a1c5a4
b9f94e31ff615392cf8b771a7ceef16cdadf733c5a01e4be22180f0d8296adb5
47dd60a012a542f46fea431d69efe6328ffc7a2cdcf2511bef2d2bf8c25db881
625b21bfdf3ffb6c1f5259fb21f497d993cbae7a723fbbe5f782a20207ff94f4
4925ffd0657374c336b8c1282a6e2e7081e96a4c65f7567e71a992d0d126c622
5c5113afd96f0233aded73e964245fbbea8315ad9a0e08638c7229c0f84f75a1
219a1f22ffbb330bc5e691b9edfdbf5681b59f503516f72a7c3880e104eddac9
fa74967526a00869feb7ef80eeb1bc3fd0db81647f54146069e5694b43e394eb
e950a72b2044cfbdebaa2595bd125dd26a84f2de862061ca53ef1954e29e01dd
2c24a2501ebe494f4496e4a3293c023b2f37e853024726663c1c54a3c50e0a3b
162ef7fe359de3596a235e5b76cca4ffde6acb9547bd20a0577106347aeb60ea
147ac50a5d35dfc0bc15a702c5f2ad4ed40681dc26d2b3126795dbfd5f6b07ef
813e82e70ff0dc3b03edef41c4becd340c953a8467608976e78af54ff5225cc8
646a0a72b9060ba481f3a5247c7d0a7fed65e9ad817d8f284e2aa08832ff9f13
0ffab41b1871899087bfbbb328161c40307ee089b7f6d6952cd02a895246e2a5
cf9340681e3ef1dbd789b274b26b31338e37812499e11e8c8f4ba77d4e1958c4
b7f724853d8c764e32ad21ad65cbe8dc13a40fa752843d074ea90f05afe3923c
0c1d14d44fc4efdaa1bf25043189fd93c43f8449b9a8b0341b6b689efb804ae4
ee3349bff4d000c602bb3e414ba47de00470e2a7f7e0a89fb630e6d065ddbd8a
5df62f22ea9bde4764e33174f10fc204600550bdf7d19510ddca71b8b1324950
84edcff0e7d4c25ac1968ca83db158a258485b79b57f34c1eda763ce8a8ad09a
eda9a3a3d90aea324eb0043aa3d22a35b135cbbce5fa60d4d4d806da4ac4edee
4c2ee38918ff1d17797337859b66c6d5535b58dc56472eedfefd6adb256d2bd6
b241bf0dc2e7778292de0527916e74c885dc28bd75b08bbdf9f55d93b8bcb97c
3054e6acfa6f41e4fc0c756d5e4679264b3228ccf54fb77bc19d61fac0637b9a
297ee880034f2f519f669833cb167857da25be252006830192b32676014375f8
9f3aff0d689065b5ebdaa4fed12b9d3c10de8e3c2ebcede040553e115f7e6a03
159738502038e3fdb6bb46aba378c3c20ce1c8d4d3f6e21f940b756f7c6e1013
af4b9f1b3c49b8071fe52b2a467c5084df730c6e49da8a92db32d7fa76c3d625
26e86ec559e3a8216c596a78ed197c66bfe08e10f54974e2527692aca37ac487
3329c1b6b4cf94fddd422a2e4b2e71a0efb91b664a5eb586ce2f7e42b6ecebf2
445483d816ddcc4379220ecb0c00c4f9c33e90d298b618f0ba8df180f4f7ffcf
5704f0267ff9f8e8b0ab5e958c61c89d531777b141e172f3363bf2ff30968ac5
cc20cd5951f592906948ae4329b028fc94511ba446ba4540ba81a181a6ffb78e
976f5106317295756b9d8cc8eff082f0f3e299f1e7969ed0fa3cb89779e177e9
03b64ac7b698091544feb470b3c52c16dfe2ad2e9d081e035d6c2df2f319eeb6
b9a8eadf7470b99b84d16075243a5fdd93f905707d161962099c64b47592a112
8ccef8a115b468201cabb46086f5ad74b5ab25c3490c006415af04c646d41686
bfbaa89e51269de1f65bbf042eda6fcc795243b287d04617fda2ea384f8b3393
3f70122ef34eca9eb41706c9558f27c97837bac7df1132e045c17d4457288f88
e354d0cee55c71276ff14274e7f51f8dd29346c8b46ef239cd32a0ef0a3289f1
f77230b0874acaf9d589a21f34bc3aea75e953562fa146a1c53a17670c32b244
3cb5bc0580fe1da580af4f21ab21ed4a4a5f4ca0e57a3fbfe12ced9bfa9c74e9
7bee93c0b1de67c28f6aff968b5701ba1c688f7d654d4ff74b2577e5b7c9835a
afa433be0bf57b1ebae326bd3ed909a174501514d864496376b35f36ceab4f80
c5bb3c7d6367f83bd145491fa90bae3efe5186e5d5eb2b3e8c4b4b71d5731b19
bafeefcbb23b10db2d225ed99a1c435fced464e18b56762dfaaf463630583810
68748e449980b48538a252d5d04b11b21e760d8e08d618053d9a8f23f1a26cf9
968cf0b9dd448af0b09e2923ef8447c12ab4bd9a7bba6eed64fda6a32f84b5a0
8ea9dde30aa70cf7d851f11634189c801d305aa522dfda585b071802905a2188
c4b1d51315705727ed7053a4e1ad864a5b85dc71a0b5e888ceacf0b78651f10b
436e57e5ccce24a6848297f099cf1bfee261f8d43ea1ef242ad284b818ebd1b3
f51fcac0a5ab10ebffd9c4f6460a9a1c4a7e399c41baa07af67977dc37b03b5f
6f369a49e6b9d42a3551ce51e2d6fab7376f4c02806e39b50abf37d5090c3a35
84188a27e689393b1bc7099617ede9242ad9d0a6e7373dce0c0a47e3e5f90cf3
3431f88dce05e3fc2382ded114c49acd05f798e1f69a4b6457b06734bbe78770
940ba3ec951c7a7787f0fe735677125477aa53b87c279a1ef571fcb13aa9e850
335d5d02d3c72d86b8fc0ddedef34c75d174b4695c8d03a5131c18cf78519e8d
93c6a63c193d708f3db72e37d14cdf0185e67c802fd85fb76b75573da7ccd8b1
00b17a73c9b51b1cf3c3df4a3cdde14334c9a1c36ab2e6bd90bb6624801e0fea
f76d1e04217953866f0a207b432dbd6252a9e892af8e318f67b970adb465ef29
f949892b1762b946d5c8cc909a0acb0d20368b1f733252e48013dd05fe905e25
7246155e78eee10cb24d6dd0cee8284b91202b5af0406eb3ddf3518a2b22bdbb
cc5a9fba2750498582e112437f476865208ad5ead03a5dafd902153c213e3ea1
3087235871dcef7eec3e3b33be4889e583039828b533f2c7b12aecf006f32a50
f8c4313fe98ca563e0ec413b444fb8a53f75360a3d9905f61eec671152c174d6
20e93e5456b0509a81e0d13c29d11d872537c0659f074e44c39eb4a5790e8c44
f1fc2e22f215dd402f8c9a5723a7379a05607374f7c9acf887be6348a284b1d5
d1dcd680ab8382293a805c171c6958ba9f1649f62f7af90766a287c94b4c4c62
7118112dfe9ed2638ecb3125c6fba2f12bb7dabbc85f2dc767135c17cc8edbfc
cb318ac07905dd9c94fc17316f8332662cb287d3b646eb14d4ac191beb000bae
7cb38bf1e6118084d1643ee49e0773ddbed078d0d2f3f34e10faa7d0b483784b
436884d87d29a54ff6d5a7dce98964342c4567d44583a14d51d343f1ef0d11fd
38bd528ad4a0e28dd2990d0fc53da31dbb886e22079c182aff39024d784ce1c6
8e0c7564677155edeb9edc7c2ee41d4fdd33c142f17105e2054fcc3ac42897a9
895eadb4050d2f3a58922b2546947b620abc56ce5e0c34ee3ea5ad1f0ef2c331
73dc5e1f438e3163caf377555f587faaf8d76cb5c148596d71e4e01749f2db2e
cf5d2b0ad95006a4b9092f91f2fbd2e816603972f393e78d35fa9d667340279a
2db7279cdc2592f0e8d5098c7443997293d0657df0a0d57cfa0aab7aef87bb76
23bf095d6ba0e4d21b418d466ddc04412eff641587699678767a13ffc8abd1d6
db9a54efb624968b8444ed3e624335a2ac58d6dc048f1bc7e33f824497a14c17
d3e540389aab46f6ac5504be3fd21ce74cd0cf39a995801ded92025ea9a629fe
d38a6250f179e271fee1c32e3ffacbdf834a8811d4f5b4b897a8612eb4e51247
a2c5f483e71782297e06898b21ddefe166743d7b553f67aedd7b135ff5efde83
385cdda40b43e859e4714ab11ad8d5b2dbf94b438a72e130ef5350680af53328
49f348c2d3fc16703ab07c7dacc711b8193370a745e3b55551e8c0b2af8f1b03
3e58c99ef7c5842d8e122b0b77261a5f1d89456956ffebc566fbc771d9fd3f38
b55a5c474257e94773424f13c9f336c19f45d6b536594bcf777120d70a6b5907
a98678fc410277752b31075674adb6e9323d9b1094f196094f32d2d2f28cd7fb
e6352c367126419b239d7efdec8affdb213b2c1998dc3fc7c2216cd56124deb9
30d5050bf479dca20fd84f0458922a848adbffbace2ffa20179deaca0b4b67d2
09da28e27937550ec48145e14d7c274646fd06ea20935f07465a1a3c1d31e0c3
30b3c278d7642fee942ec9e8f9a3cc2b48cd5ee2ffd2f4659a06a2e6c58b50dd
f90467928e0ec03f5081737a58cd47377293f598ab68225f7df27f18ada1b09c
a912db0a4cb3a8a8f377e3cc39f8cd8dd39377a223bb3ebd8164d2d63e7d8c92
332a20cbee00655367b81e92cf122c61fddeccc3f25275275c652f317ad0fd74
00cfe639c8f45a56653782d8c1b1deaf497576942c61d84b9792b5a41e5d3567
1fa5c081cc6a74e3e88ba2afad36a8eef0fcf5a02827417653015b12d18995e8
5659ba6d9a7634db4ea9418895d5c80aecc84b859be8fea6ab174ca7079c8cf4
cd9fb468d24ebe286ade7be8324163f26dc37b59afe55b212ea75466e1a74ea5
975d81036d227c500a9c4e21e8c50837e3934295c311f2283482240adb99d374
9cb3a82e689b73b17a5640116558284dbf4d03dc1e2d25d0d80cb60de7945036
b12dd62816620da91edf7c83c5a91eafb6223a80a17897c91794252adb700fcd
3aefb74f3c9b25a52b58b3ca3a65dc29b77084317ad229b463418a4539e57667
f71bf1ae5b1e4993769a086cd470061a725757630d6ff4ab4a028247c8aa5595
52cd32ca3ebf1a1e03c37eefacc75d91af2b64c4e0967660a484b0d95ba619bf
445792b6d3646b2b087996d7ec0becdc1ab387ec8a38ec6fd83a98796af0fbad
591a4237ea8872070afa5e63e7a92a4514b21f159e7fc9b4ad507d0d7ec144e0
8665f0c7d67409d0cf9032a1c31c132046f0d198e331545a6313c93d69fdbadc
8b9cad30139c3526650ed556196b915d2a45e6246adb0ccd0412ef6422493418
cecc0ed5338c86c92bea4ac077b768a3b9b4b600b8b87ca14088e555ca851805
f71d9917619573d937a40c50a496a77f890c7a552f92dcf0c61331a46c7223ac
0fff24d90dd4d0b994b3ef5cae871731d2237ecee629b80397ab8f15e122832f
56d114650a516c33d483815438d2c4548865d6ee9460cbf6e9a1df6f77ffa9e5
1e71b99381655dd1af79e01ea91cef491f55e1819de406debbbb9514761f5a87
4f05e20f5ca6682187eae34cb676cc5f17c5a01d75394e91657662bf0cc89d30
a2d3047e1d4d512a8f912f4f984eee353ef74df4cdbf2dd9b1b2fcb09c425ba8
85b729da9a8d24e078a989489cff06ecfa6636b8eaf81ce91af9d44038585b55
cb2043849432ad3cf0e4e39adcc098361cd819fbd331ca240ff6175dd4b0c6d4
e6ddc4c0086b10c9f48f80ec12ab69adf04a9f8cffc8d2c7054527a43590c694
dd25d284329b6de193b29449da0082e6a497fb1266d85bed904218cfce3467b8
feb610bd50efc80b0e46162dcce5b85c359ed081c34988e8cca1f62e2f80223e
24705a2081bc26e9803234e9a9fa9d2822d6e84ae46980a6b13fd57888f3460a
a9d0788833bcb3d2e49ae5cbfa93f63c503494e139e96a3eb12af46e6bf9d319
72ef98baa7a3b6d3ba34506ac55d76a2b910ec846c17d9c5052a6ef3e559fcda
d51c16fef870b3477c197699db2b46d28ddcbe4acab8edc383b52b2b6c09eba3
3fc1b5b3939dfd5be577c837cb968cae41bda4317413822d61c411ff2b5bb1df
c25f4b9206f1281673b24cacff24e0a9185af880b1dc0f1e7a95fe3b9f3b6054
078577bd36e4fd905a70ee11595d929032f388c851510e0978c1bb3ae0e02079
5a89bf306d2d2d0b0e05e703bc616201d8e2bd0f48b00e856da215f2652c141f
b3142ae1712b3a689647bad62e46a31725035011c0bb6fa90354741d05a4abc2
951b4ccdbf9ebda9b8d3508fb8a1ae6a9ea2e3de39a29dd40429a3d647ef8682
915b0cce9a3a6c3166e6f605ebb24e6e413ece6776536c437d31d4df1fc661a6
876614ddebd53e30ab851b2e878f44ab59baa9731f14f162ff14ee85f490e0c0
3a471224b08bf1ca24d283ded2da6d448a1316430901e7632a5501442ec6bd4e
428b38ca0fab8337a9fccd27ec6a77266ef356d51aa0c4a16ad87155c3b791a9
e6bca0d1ba520487f0bf191a69968e6d2182e7faa6855ec0a9d511fe3add8b18
0cf37a286200952e5a15b22ae36bfa3c77408944dfec046ecf9d2292005e06c3
c63aeaa15593bb755cd46d67c7cc4b61854c9495557d8f4fb8a0c14d068444ec
9f99c2d17bd59854764469337ce364cd2395a2adeaf4602f4d5075a94bc3e576
b8c9eff7dad2a0c4b023c5eeb5e937a7934f6b6cda5112e6cf5f479da1887bae
6d69971a3bfe29ba278c93aa49398fba32ed0c2c783db9f2e492f63be96e2017
6548c347f8c0ada85010b6c6c633b1e9ba9b6a0e3b0635be5ffd3fbef57df41e
ec558073e4700145b3dc2c70b653d51fb8a6cb82c0b513f17723f8de2f55c660
e1a27458d9e9ce225d50bdcc65b548a7684fe00dc83d526220797e791784422b
35bb1d592017b67f352c595a09ae8f810f0560d2b0b60737c535646e14fcf9d3
d4a1e543382caa344ef2f2b38595b9c4b7bc9491ed467f37a568357459811a16
b4d177031d7ee9cb5e72bd4612f01dc297af8307146335138c663dfb4029e33b
ed50b0509576eb94c23076f9f72ee922372eafd7cd79ca68e5cd1872ead00f16
735833e4172f2f84eea4bcf71610700f55a8e2febdca8f579859e161e809b79a
395ae501c226ad3448d7a11db9b1bdba002053a940c76a18f76103857362b781
d9a393bfefaa4242e938f78597b8332410681bb02cd6741720918d11406db481
9904f145b7538362c949a4c23532cca21cab7837f571e0bbefddb3f32839ad91
b290d3c9faccd78b62c81c43ba2ef664ca97c6a06b4605f04e2694327e86e94e
6c9d5a0ffd101e555c12f34fb8cfb60a21b83cc20618c1758edfc391eedb8bc4
e8296c3c1d2e78a9ef55a5c0dcfe049171f51f226035f16e20cd0e2240c1ae94
9dc25c80708f14947ef8700dfafa4dcdd89304fc2e07c69593e4927f1f3b39f3
9bb9ec73f3ad167756f098e90d0c94485d7c0dd3c2f97fb076a405081ea23f8f
6c1ab6d48287c2a1b373ea503f10e5d8ef7d684990701f795505b24320103c67
7b86a0e1f35b8f71894c290dab15dc2cc0d7f51591ce5dce6056d860b09e45b4
17984bb762aa2da0774e84eafd8b9ec04ff4e9c451d0cc720183cc7625927940
c9682ea0f576bdaf4622eda3f9d6f062e1c1b8f2ead9ef0c20d566e9e1bbb5ee
7ffe4ea49d8482b4af90ac3bb99f44c9a9a40d5dc1340d4f9fd7dafe7a8cd122
c4914e7af51cc2502fb4b6a6355964e974124c738aaf8f0b5bcdbc4d9994a870
b3246c4f635ea47bf3607844dd12ca9e0d07311e46af439b7a6f5259ae47eb10
7c44af3b0da1fd9ca785a93158eb9f55ebf055e5d2e0c59a0f5d4cc919f5aafb
580ec170e380e25160bbcef1c7f9a5ab271b372f7fc998c5943030c73cc38255
0f632a5049c4f6ac76951c72a88c96c39e935c9845e2c9a04cd725353530d191
416cfa1d665fbe4fd8e6f5e17ab4ef123f31b7f20625fa3e227516a57c26066f
20b9119aed2aedb581c0d779136ebcb06595e9833d9298c0dea02e1e7b160e6d
fd84e6cf166fb6b6fad4ff368673fddd3f8322a070841dde4e5b80e30beefafe
008b32981598e8c88e83487558bb5a43ac1621958114bc27ade5abb3a6415333
670fcd9a1b5e4f09f1000b0442aa187ec6a32a9f175623e9518803d45402fa71
2da0741aeed75de867d42be91a9a36a6319264ccdc8a10cab89f6a3413faf34b
f46a9647abb5c70c612d17a709754af64d869e1960051e3241280821ac95b974
35ee8a55668a7750117f83e222670fc8d9be9523f6ec204bb0a55b52642398b4
61f9e9a8cd087b45b9fda863210baf5e4b75be12a350d1f9e2488aeb1eeeb334
1439ffc9269775c7ea78fcb829858f65c959f9031cf4b23ed0139b9a2adcf1fe
2f52c5ded6a3617ea4e7a827005fa8829780d900ec1f299d64cb4acb97a8296c
d93edec8c7951ab019adb8aa0f7f64ea2a7ae41c742f0955430e02d3f0ef858e
2f95208acecc8532ca963eb0362ed3c3dea8abcaa09c2950478cb012ba4c9f7b
709396c2d3e5d729024d5f7a09846bb295c4fe367a4be9166d627cc20477c5c0
c6286b47c1fe1962fcfdd5d50e4e90bc038bf373f69ea1f97e237292f702ba6c
e051ec46984b8d36cb61023278cf92a9ec61d2866dd51e6233d29a1272a7530d
576b55ad7464a12e2b0fc2bc54ddddce142334d7bf82313ec08b4b110d2f9cfe
7767783f34bbe4a3a114d054f28a5a7a09e77ea63ab5d7194dba0f053fbd61d4
8f6ca8228f095427036350f7e18923af3826986ae5b71ab9ede892f629b8a753
938f436d5d98add9fc7448bafd45b20a253520534f51bea551133a050a19dd7f
235451af2dcd02f235938dcf18092a2f0cf69b1332fab39cc9676c13c5a12401
b46dd3be217cead88f4cebd3dc57feacde87f07875378c1a5432a1f19026dfd5
4648f7638da1ca4fef29773c8f1323673d49d589f6fb7cc193a4f070140a2c9b
2aa53d486c0a30c0075469bf75c3a442a10a66184d6038f964e7cb2cb2faa714
66750fc151e1505d3bb4db38e900ddb822dc7003b02b10b8880f6e896e9c376d
959c8b4fbcca6cbe6eee156abcd890d62ba356ca3c38b1a9c6c47ab505cac34a
71bfd12a13c1dff8131aea0c5f6b0cdd53397b674666c93030a8842c6d982e42
6a63ad701ea1289fb169f911a901993889da809c7eafac0c6ab4e310adb2894e
9fd63f495e2bc4139cf796dfad63f1ab48062c1cf8c8544cdb78849487ee8850
87be515eddc9df87eccd574843073ca2753e7db8673200013fd0a4673d98da40
3635ad21af5adc22bba037c75d579061752f0a5309c09545c5d72db85216666f
192a76c346a51482e22bf4f9ce2b7798af1e7a795d8656c43c65edcf96d6731c
27c7cab921e188a487e5adc6c99beea3f65cf633fc7b73106d620ff5d3acf77a
7cc3d2fbf66e565fc80ca1a023d38f16cbaf329737b8e5491025ee0b8754ab14
4ca4865584ac6f030f9c6d6f680a06b397f5a8aaebf102864d5414f752655a1a
2a01d01e0c5e6219918eba17df330ea3d1fbc51ffd8f75335f8915c8e40d9978
ffc8a1ca04bd921f19902d766d418dfb3fb9f110c2e507eb899a6bf4ad994b42
504976a9445768cd7756c5cc19ffc2b01a0bb48f5cd172d39d23d78a833776c1
902aa282ee77632d9cabee92fb62a0418539afcc0668763f17078eac45cc5aad
e3cf41c075c4b0f225d94f14024dcaacf95dcf715fb011ccb2a9a098ce9563ec
f028f9f2ea63a8fcbe81dad7a22c0b4dd085f80136b216f291bdd2894b63fe4c
6a34859de3b78724f52f52e88adfaff6f14192e1637bd51284f12c7c919abcf8
c8ad1dc77066b4764a4fb8e9b85639504759c9c9598a9027224e1a8cc4a29522
76605d27cee1e7d3380b9ce17736b7802765ea9694f6af7efc1cd6ec32f16f61
59bdeaa5e54013e11b900d3e7d53b3e5cd721d0ea4d22cb32773f555542d5d46
a3440392e1f2b90539aa597064276b304b9c3d80c776c56fac99ca78ee35e566
32914a2beead3c7b253f1b14aec27b4a321b8b080de584e0cb7012124c7e2ed6
2524319756c94ca102333a7f3e6e85719604eb6b352c5834dda11565cdfba4fa
346bfdaa3b17c8328c8074809dc7b7c8fe642084f1078f9bb606d3e35f0bcd23
6b3dd15567be39c66a6276251847cd43d1e6de06acb1a9b36bff30eb286d0387
15d40f04ebabc9d1ef647119eb4e3b78313470f6ccef3261e3bc7b855bdb4c2d
407a7536d15bdafea3ecf76ddfcedfb43dff7be6edb2321f0a50941e1473519c
c8b65310d6de6dae1d4bca95d103128d2f8768ffb9c68e2b1f81a9cb81674178
8931a2958357b1cbf6535d35fdb19e3f67c87ffd974b6da756c5c9b74b2a7706
e46e2b4165ee19b77aec4b64e153784492a7d7fcf514e3e02c32ffa604d14e91
960d1256421be4adeb3756578a2f5d27ec9d9ac5db3ff410b5e4716c02b1f355
3169746fd9114894252fe5b590834ae0cbb2b5feeec739d4539c7a396bf7361d
c6b9fa67d259229a70b307049d7dc8fdd5bf5701392ee971e9668bcc3f8a6ed1
51e59c6bec7b3cbe4a3d18ad2c5d1aab9b3f6acf18405729537065680cb8fb13
340899759f32d419da0e48883e4c0c5276c4c01a3a9e04506df15bc267f84da1
d6f3d74f395a5e50dc6b73180cf7808855b61adf6b435dc6a4f4ec3c05224e60
cabe7cac162da8deb3f7ecd359310802451bda9ca97ba1cbe961aa8d9e335e20
05c39fc5d300109e8e8ebdbb79a31d90287286603edd05be1af408123b5aab3a
322106ccf27340bc55301896fcbb4133f191033112d36c73fd6f4d507aa04f93
331ec1fa4273a8451b7cc3a377f4b810b78083ec4bd3c0be5325296b5dbbcea7
a41aead2b22ff79447dfb4da6c1b61b0840546594a575a40e4753bb1041dda6c
2d1dfc24c2cc2954cb7bcb6609cace2eba93a1c385e0a7148989f89338d1d6aa
e7919ff1c9a50ae9b696fe749cb04cf1a887f44b104dfc31b28a9a7c53221312
54c6669d8406c3684b3f8a4c3314abf32db5ccb5347241b47f506bea6d37d797
9b7f8f874f8652d453c6141a6effadf10695cd16ff9b62cd77ca8ba4b2b52b11
4a112204f07f753d7e4b6a09c53735d5d02f053c6ec56053287faa4e826c2655
a720aaa58a68867f46582702bfd1fe02752bc5160517d69622014c87e7b4a01c
1e58cf7a0289db16c42fe1e4f62e2b90d3b02fca8aa613d722bc7d10f392c6a6
3a5b30aa701563476dd2b985dcfb88be10990df26d8c954f58c6b719a0ca0415
f0c7e86fc0f0ebdca5b419ee153366b43d306ffdaaca5d7cc30a0e0b819fac4a
6ddb5611759eaa06144ad04da051ece83bd7df7ce9702c4276b4f6366fcc62bf
bf6d20e4799dfa1171208991d47adc21f366a79584636ed445877248967d4c6a
23e75a434630031289f4edf405698d1cbda18bac11597e82daae8bc68bc0e1ff
0021867c23fcbb58ba672758e9f9e8dbf6c9baa9aba1cec3dbf6dda2d92cf109
23888a3bd949de2527032db7d343ed19317e1a23f321ea974d50b1f9ddbedabb
b04d1f50f4959e7f40731d1d4e139d5baf0f515d894e6a24c6038148e4cb5349
a3421e0adebfc38f873387884cc0b0fad256b85c65c1417babfe6c5ad3b54b34
7dc7d7936821d762773397192d0f757cf5d1df9152ffd3440098d1d77e1db220
58afe75f1f96e42472075ff7843e983fce554a6f0ed3f4d273c6bfe63d84b8b4
ab86a2dfaf05d284c55b25051fcf330983ff4cf93da172651077729c606753ed
e3880a777ab431376296ad61fc0a786c407a16e4ab39f3ff2bb323328987021d
248b158fdc9341d82364177776a65504531408716404329299c60e533c6430bc
ebe1aee3f0715687b7f3169761e983e831838b413692e8f76cc3167f107e0e54
19885e5fb591bfcde1203ed6c4c6393601a983567f010cf911ce93b6c3b8348e
5f98995dc397a958b96d5e1a4bb1d69b969d7f19f93b85ff86f8e87f6c379d05
a69e56e4b2ddbbf9153c3c8051c780621b5f14c4198e337c421ab1bb465ae5ac
4a3083d93b03af98abf7c467a44a94f321ea27cff0fe42fbae0cdeb3d20bbddc
e6196f5b7888143f9a1e416ee8b10aabc1c5c1ba955565998190f0fa3a4c8d41
f581555737557e5cb1b01d23e791a4a10384bcd3a34f0f13e42d9d1ac6848f5b
c30eb9db8a125ee01ea9ecc6619036dc8bc20fcdfe56762ce884ed14e38cecfe
ae997a9560a8f2fbf58615e863bfb9446a559df63a180c8ef3ea357c38473245
b7aaafe5fccd7cc3a0e5a72fa5e3305e816fd2e7cfc5d583c9a7305f74c49eb6
87d928c7f3a3b75b46f55a37296692c0301ae7880e790355a9a10335ddc1db40
15732a08455826832f2f02ddf88aa5abbcd5851e12974d7ccf507dc8d0152b67
c982fb4877140cd6860253d65679c7f0d6ae20aea76223daa0f9b30b83e4ed09
90590e96d528ebc3d8b8723a8296dba12a0c0d9ee203856d0c58ce053b17356a
437a531e423bc2d4fd4c87453ebdf8b98528e3fb5215fc3a81dc2e102c04473c
7d838c6726ba7ce1ba7df2b03b1cf62aee6ad4803acb9dc6d3f82fd745b23470
179662a332773e10bcf0287aa411287f0e8784b40fe51bca7c281fc0bab74e96
6c70b478279d602d6265ea6af4cf7ee7701069d09df242d7eddafeb6c268ab13
885690872fc7f7e966287d9c53abd52a6d301509c95520750eee0e6a828b0989
2bff4816c20517c3470a0cb2b2a21f259c4e4e6317331fe080bc6bdab5119d26
a22cf6754d3793bb56b8eff4ee14c78d017955d7d4ff991f5637369a06fc6203
0b77ae023e5e7bdcf382bc54eeae114690353625ebf985a0b9c24cfba5344d33
25c3a283e4ef55ecdd75d165364a434d35f8fa7128a4b478c38895604406fadb
3f9b94a75f83e52e0724ded1147261df3ea0512bf56f33c7fda265e0fa42cc0f
43687f7c7c3ef65283e16e2f61deaf9e7e3e04fd48db7e0668e3a13b44e07772
726d5e47fc6eb3edbc7a12b5ac0e907621079ad57fd537aa7650d45690edbe88
f756a30ff4b988bc8ab8d82f2bebea15023a70fa9ee94418026c637decb0c098
07403dec67fb47351b9a7ca1217887a9165af3b5c64aa10322a32c52023c53be
f01359bc0cbec688997c61cbc5ac8ca4892d20fff8e77e71b963f7c6d8019656
7402df2672c9463cd48228a6311d437c16a0214d5e8d6d36aeaabc21891c2c6d
1280d311ce100c14cebca25c27082ce9b6eeb802f68137198672d9309ebf3128
33f1b6c8b5aa4c54dc4eae874846dd6cc007b442d4483a249ac33f4a733b38cd
4e8adec9dbbc2a2681caa0e3b996d2ae7994730a4930ef7140a29efb50911ae9
9ac4a8345b24da054ff3d0b45bb81153a1d8b3d1d4529941fee9b54f99d82769
5ec353ad7db26c6f9a47efccc3f0e8caeb42514338c63ffdad057b73ad70dfe4
fa74cd6e5c8db37c4826114c7a56c0de9d8ce3fb5a11b7a5b35010687c49af23
b252ff212bf9d1caeea9562c5b
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMR8
%!PS-AdobeFont-1.1: CMR8 1.0
%%CreationDate: 1991 Aug 20 16:39:40

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR8 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
dup 12 /fi put
dup 34 /quotedblright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 51 /three put
dup 54 /six put
dup 58 /colon put
dup 66 /B put
dup 67 /C put
dup 69 /E put
dup 73 /I put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 83 /S put
dup 84 /T put
dup 86 /V put
dup 89 /Y put
dup 90 /Z put
dup 92 /quotedblleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 121 /y put
readonly def
/FontBBox{-36 -250 1070 750}readonly def
/UniqueXX 5000791 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486858b2a4b5a0cc2e1bf4e2a4a0e748483c3bcf
5de47cc5260a3a967cac70a7a35b88b54315191d0423b4065c7a432987938c6b
edad3b72ad63c2918b6e5a2017457e0d4ebc204b094541f345ec367ae85ca9bd
24568a01d3b9f8095f7420e6c423c414b3dcce6da48dd1c89a56d078e0d0e2f2
62a13640a06d17e44ee3866c3471fb58fedf5a3b77294517651c16bdd7267d39
a54e7171752dbde63ac19bb4b3021ce95eb5fe67390b09ae4d9ed4d704a67443
f55dce17acd996c1f5e023c9e5a18cbeecc3097f23763acb86cdd7cd13381ae7
4e48495ec7fa520539d87f8a8dcb3c826275469b6800876a457e7d1e5be867c7
b1ccad69742a8c9b0ad943482bf2a4ad0aed40baeb69a0233bad36b4ca2d2da7
322956c70375d152653500b2f22d2ab6990cadde2da14b4917f7515e64bc3d96
bf775258fc7dae4e42a4c9b6da8eddec4a800c8aadc8d75e48cae52137e05c03
677f5d6a82fa46d9f2fc7f56d62e5c605a1b7898b8d1401c2cac1a0122a2c8a7
aae09607f2c5f29293a09b9959399283be89051452898238b777db9830ff4318
a298b221c4a820c700ca964fc99e6b1d9eb0bafc39be9aa9dffa2fa326b2a466
1e67261bb3dbc85844e76f9313ab533ee16bcb478166de5502b68e6ec1ea6110
f53206cf1cfea419571b0243244b32ea38b828a01e62b03bcf476a32c2341cec
b8a0fa2a3f3f339315d5f3aa7704408f6617d026ffee4925aa48537a4b2e556d
225be09392546ad561cd46cf766f0ba14c6854c5af1a528c3842b0c5aeefefcf
19f19cbce5d967153c4f88e51c776cfbe10d39328466f7a3b83d85601ef4d1ce
0cc136610fa6a74d9676e4e99291d565cad27b9eb2337b0eba4148efd0eb2866
ebf0a4209ba135ad1376cf9cc2d4110f36121055caa3f2e000340c27eafea465
91284708594570d01632a2abc184e887233d08a28f281539c292f964c5c0e640
d78b01ffc6cf42bcca67c1671e8d2f5d41dd2f4d53b971aedec2d5475a335c1e
ed0c4dadf5dfbe885c9bb05997cfb0481e4b7adb9d33930f1e8826709cd49e2c
335584c02e25cb19edb783a41abaa85082c746c0dad2ce91448fffbd003582fe
881848d550464220610beeb597264d709efbf026417d4a959dc8b37cf526e57f
f33df2b1e54113f81b9a9ffcbafe2c557df0ac4dd6f8eee6613f9a7e27795480
2decace5004147b165336f531d32821365a04c9dd06f760019330ee6b26735c9
c7960b2c0d747aad61a8ed0f18612e91db115aa737f813ea3491574b290aa301
9e4ee637df3a77d84fb30b7506386b434835010c5f571292c76e9066f378823b
efaec92799ada334a3b9a2f4aa02951210818a1ae2390d59f32bd34da233ce33
3793912bd97030edab9787eb7aa8311a21346d04e01b583e8f6be533ebf7b602
09a1ea02be0e7fe5840114c9e588f2385125b1527920280a32b2b8fdeaf50bf5
9c2227ffc5108307071325e9fffcc3f4c4abc39d2dddf1fa39aea939ebc5e00c
871ab82473016fcf42c669e3e667107b57e9d02f1204f2c3f107255270252e3a
b4b7912c566adadb28ef544cfb0903fc4c58f07bc1abff9ebce042ea0074408d
fcc7c64124f956e081d9fed1b56ac973987343b729bf5e1a4e261e2311ac793d
b03f91f41380da8ebfc5a025a749a37b7d7374eb77f1b87a915c6eeea879f2f2
4ddb2e7e48b00e068bf4662c122461d7ec070a3d91f3b15ba54d7506bdd56106
aaae19f5f63c2e433852754d474830cf56f2860b014e8ef2ac8207c9c84cbd5d
b19f563bdec797af40f4707e938c0a633bbaf3de1422a8090d68bb69796ff5ac
76217ccbbb562130f4a062f59d1e20e0697cd6c2c5ae8346bf04d0fea53ca665
0de401478c743ce749a5934ade90c6811ecf79fa3e730b76b5c356fb2a366bdd
ae0c9dc83742d9dab5a19011554fe7dcf1dc86723d3b30b930364a2a0374294a
21710fe59fa8643e01cd8b819322bd98eb450733603306f85709f952bfc89de2
90975b45bd71bcea3ee8c849f8bfcd838c3bfa4a7c49f36bd706bfb606195f79
091b170d749777464db7ddc55b063428143eeab8d75604673edd942a468bda6f
67a5a308affac553ec8704ebba6599aea0d81c55c7f79bed116e528f4308820d
dbc4591f11ac6d85af03a79bbc5acc0828d1baaf7c603861c6424ff48c7878a0
c95488505d6afca13b885586d4ff8dee3a8883e457d37a83a5a83465806a8773
3db6f5111c3087ef23fcebefb04c2dd0cfd03de48ed51778ae09cd63d97a31f8
c6cf2ef97a507907651b37f70fc524e7eb5efdf6c6122c4d108c2fedd735e4b2
4d90427b908944c19b77e4632a20cab328d304349020c27faef12b95ade11215
95b50d8a6f45cb063c10aa3549703e961d58b26ec5475bf4c4ca2d16206e2751
8a376528808db299a54f8b0a607f361c072ddb3131dbc0eb5a3212cbb4889313
eb16114520afadcf1126892035577a18564c1e233b812d3186f9e1839e105290
a159797268adf4755b7d678aeaa578fe2068edcd7592b451ee4455467bac2350
7b1e46a3c1bd28820587f287fbdef6776e5ebfe8e2df3a567997a07889169ff9
53a8cf18fc11af183aa801fca0982301141725a69f04a8e9d1e8c20c8255caec
044d0891a0db62013b5451e3213fdddfbdb37c99ff94dcd4814650a9a013a1f5
db318c30bc4d6e9479965912c94d16cf0ab8a946b2919f424f87e70d926827e2
18ce130b1e2ba31c4256ff7fc74899b228fc2a7728a71730f83a2dae5627d825
fa31da311d5f2a59d4f40bc9c5d24776f21a825d1503c1cb179fadf8d5295255
d75718e21c2dfe571593121659656f05461fd4cee9c7f30ed39f786d7407c15a
7a57880678170bb22f57b5f29b97fe8c9d51f3f4599efd89d958dd7fd53576a6
2751d362f92e50446c707a86947f1f12117425c7500e52fac45cbdeb277b4321
430ffc39a193f0de0ac92a47c71c916b6275a0ddbf9e48c9cce4496c1d718c33
d383ae5b85cf8660e8bdfd97fcb4d4b013343c1329f96b8e77000ebac7aca7dd
d44a94ef58a918e6e0e44469a9356d5dae3d32a2e4ca857b5e37f810d41e244a
6831251edce5228e73d7aebd836a7223de60625dab0711809e1e113282cb26f5
49b1cd23e816c06ebacfa8a8c66983f450abb4747b268c75c8d051e5ae5d69f6
c5aad37c8d6e06a6e8cb003ba9dcdc0a6af9e349a1878220361df4feb424ab10
71ae817eb8031e6157bdc8dfb008757742d90eecdd779e48c23c8b141d8a6d49
b2e013327f57b4cfe453b14eb0cf648b992395329361c4b0ec0570caa5fbfaa6
60a347bc79cf4484baddde681bb6a934048f70b2b00a74bfa12f98fa56212e0f
f0b30ad60ff05980267428ef7476356ffd11ad5dc5552f66f2b08f7e71fbe13b
594633ca14d5922f513eb198fc0f9b47258ede564a22dedb42b3eef840314b18
65b5130052035f196efc204a248c36f502eeeffe3549f88c307c30e98f7e949a
eadddb3c68a556eb97c252cd6a30de6fcf27e43a9ea31b9115d3d23d9b011d4e
5d28ced7ce41a2f75e5da82d11cf94fe81d9f5004bad012f7a041ec17543d623
ee4255a8d5095f052cec0b94c0cdbe17de57e4b2c701f131539ff3ab57778711
b108ddafd621735c60b76c2d733604b521d6ad47bfcace8dcea1df71280a3a81
ecc72e2903a4e4325d5b9691d793d129d5d8337a54f24f7b70f6a5a01bfe9f5d
175e5e15d0655f441b0a6c3c05ec86904bd2d6257a13fda62a4fa9d841e8bfbc
44d5739f415f4916d8f4e31f01d36bedc0d889e6a59c19c1df5ff33f5224e465
cb47ad56690fbe49478f78c18305a2618baaed5d868b38044235552fde044910
4d80771e67aa0b7215ff4393c1d1c2462a14ba421e8418304714c8e946153724
cabb92809a6da5749aece654f96e754a7fb43c5dc12fc68ec8d99c87def7478a
463718d06fdec17d7942ec22a93679ef4313c34019212d8b57a7e4558946f3a3
09b12f5dce682a2b66ecda2c830d8e594f79b61bfa11cf3efb54580a2b78364a
733e105da22699c5493ed9b38c2f2a75b165f57aaa23a99b2bd1a2d1c076afbb
5f57d9ff4fc524bdcb8176fd6280fd13518302798b1e4fc1b7b70cd6579c10a8
cd2cedfc4ffe19c46aba23323d01c1f50257e1d5b0588cbf074fad6f6f8ba743
3aed32c126ac09de89891bdf3eebb8f296477c1bb263a14108d270514ea0abaf
d49f296ff295331fa7ed650cc0bc2e6c5b6fd52365ff4d50280350634deae39d
3ee785aa45a2d0bd404950045ea8e2bb9adb0a63550ecfb51a5013f4298bfb77
59d374b99cf93a4fe2ef1ba4a7ece37f11be122f85c6882dbd7eba7419fe6a4c
616abdfe6da1321a037a78deee745152eb8be4a4345b0ccc9cd60ff120935083
32e1735533b391ee3a5ed75ff039e4050fcadf615f433b488cfd395962614d82
c405d8bff71761a8cc408f809f2d329e4ad42f2e401178b47f9c57f556c31839
299a0da265be7d7829d49f1836dfec3990d337cb30d2e6d12937483fcf9a4efa
63a1e8635b7943600b5aa34b90316648cd35e166400bb4cf858d728477f28732
d9a8773ecd91bec98cfd949f465e4237635d9e1e9c24426ef38515e8e53b7809
bad66bc7510b3c0f699e87c0262c974625659f60a40be4dcf95cfd112bf6b91b
f79bc53e6cff5de95c6a6c8e2e7c4ede543c7bc74a1ed948557040e2ccf7ca3b
2837b884c73b3a1d7bcf69b6e95366edf32afa1ec4fcb402710b38dad6f323e7
68db7b1795c57deb0f73e4dada246e74d6a54b4eeccd26c24c084de86c808c9b
e7f10a92bae0192b778127f84bbcb97d88e42c00845e37124c43eb1eb718dcd0
072888751887edcd0679f9fb4ac3c645b6e63d8dcf557c0e6d3dd5237958ac8f
ec34032da5314e1aedfbebb75fa20deb7849abfd1a1a70c346c2517d06c72b13
34e9132aaea7fc1403d48b9fb0479492e96581a272cef94791b8decd78d6864f
5b12b7654615f60ea97a703d890100e4bcd362760ec4c86287d882e54d86caa7
63155f3c4939e2c407aa30d169fda571b0b38c7db772db5360ca95d9672c0824
c530090a533290d3d135233bedfd5e7e9edf970c9b9d3726f0b7ddefc489c9e3
1521d5e70d7dac10b45791143570da15b29a7f37cca738814c907871c03ee052
fbc3404b58acd3014390d07292b1da3138c8ebcd7a4fb2c2ad63242eb65855de
c4474d5f83ca0cf3a62ac9291d7405363dc600228e1b4fec14c01370c829a2e3
94d0ba4f0e50f29c62ba886a20d4a3dd6c4cfdddf854ae784abdfe27a0d89e94
3d66b5f313badb1ff41e3cd55ffaac132e7903512e44bee689820dfd0ff91415
d480e839c704cd91115f431f9a3ddeef89348074a6ca776e2885773911be7784
b845740916de906298360ee540360a4ab24f83a27357c0f06b91f6832c8840eb
6f0bb23c821b3141f53176f0ee5b5e5d22e751ab2ccda4a68a9161c75134940f
75e6c28e0d22401f64b1ae2a9d87b784bf6e212738106d5953ae1057b75f852b
e438f5ad234da3b69c5d2161b51cab6d8dd0f9c3dae3e882ac30866763b0d039
338ce913fd6360741fb94ab87e09cb13c171a21649c6bbb09b2229f89d2fe15d
6d4a9c4ae3c5a090898d320ac7ad988c1c072adab765d88a7adfd4ea37bcf6a1
d82c71de9432d22f63597f8f49b59484c1092021ed8dfd679edc65405d0e1eab
4d7a4e7d8b1383188fc7abcdc3c2bcbf4c331b94d791ecfdce6bab3aba4cecf6
2a1ea0607f5c0ccb2827b4c3ce9a928a6b3a64f963c00904ec0f52472d2261d2
1a50e1271b408952e82d5198d83137229a809eae7be02f0bb95f8b3ea2d4850d
769cb2f081c2d18f0064760ddecfa7f5575babbb5506bb60018d88378f3ce4c9
b383188193b866a65ed72e0484abc11e7245d0f28e0f29eba663f48221137ff0
cdeb500fb67c3a4921789cc9c643bd39b54877c2e611417975169f6966211e02
92a2b922a2770519374dc863fde0ad20297a5a22d3b9b20d428ac2f8cb4d7084
15aec77cb8045b6fce3057f9156fcd7c35e0c424c0a2de31793e27f116718e59
0300b4412502cadd75e4ad7159ef698742d34fa16446c589e42abe9c9c027a41
ebe15ef3d72f13e64d60ffff4d009208355a1ea94c6670595d3acd4316b46870
a2a800fa8871eb821d7f90abfee1a762975df32fa81391637e996472833d8921
662a865ede5334400cc11e354cddf96f70daeb205c611b4c5fb1755ab36914d4
ed2c91d15620d17a4cff301b91125e7ec4bd73cbf25eca8d9724d8a2c898590f
79db55f58ac10d214334ee933b45b3846d2309fceabb1826f10266eebf5e0581
d40780fc87c069d110d56318d61a028fc44f7e4b0bf84576d171675ae9b0ba09
8d3159a224ecbf114d7e7c76b55f0778d7ec5f429e5eec50f80901a94774da7b
85b9c1e70f1b7c3e6c87c40b2a8938018bbcbc14f8ab64c9cce983bfccc97eb3
a22a191b72c9242596912249a2af5cfcf8836a6a5141609a67a483aa73554a9a
127f8c8867bcb66b9e2fa28a89dcbc83ed7aa830f8c737c693ad8d5b25b1b7be
7e91d9c9db5feb0f68213d50d299500e0667655e5c7ff9980354cdf097ff59ce
f40cff9afc3a0290c205eb19a12b45660fedcd08da727d614a8e9a5c4a7b19ef
4c468310ebdd153bd4460e25ab2ac858be4b268293e2612d30e0c5fb3dedfbb4
c7c7a4bf0fd05224bed2929c2c4327269e87da6e829aaaf05d7bc2a0868ca338
80be5ce4a935be3a0b4dcb0ac7d3d07230a5d1aaf81b86926936476f8c2a4332
940f2af197f122e37b4f45d4304c21a442e470c606bbf1271d8831b071928e10
1948e844c6bae973317dbba78cf62727001c0d1b12716479e3380dea2b8d904d
e8030b6b2e22e4b9a38ff0d47833275d1a1a5129d776bf59504ee074395300f5
0692fddaf610ecd310808b9bbed76b6466b34fb500ac57fe10dae4bb65d9b5ae
ce52b8ea24857d7b03537af787668cad8014ae832bc0d4a96ff0bcc3a6c82d0e
a7ff591039af5a2a8bc6d7bb71c6da03673263b4735b2507a3d28ed970ae15c5
5448851634405380600b7649d645ea9d2f8593eadeda61efdcec5dcafae3e30d
faa73a19946ea8309f57450240f9edcdecf6097890ee0b79bc219c3456be4f33
093e4dac2c33025f2327588bb3cccfdf8470b7a0625eab8b0dc0c777de68c293
df66d590050f4fde045d53b99f044a5de0b2deeb5e1f1e8aca0a5755938b5215
cf49cb8e9296dce05df6d4da43b1d202758386999c94a5b3b6d92c77cbf21afb
383ac902c976ce99f4e4157b49de3c626c13c190f3fc5b0a270dbfd1485ecd82
b4de75c8203ea60ad27768fd8fe469db66568cad46783918297510c817932376
36bdcbb362167d827b897cbe07cc38964b20c65d44b8352683303e822b45374a
4b638271a0ea4a01392c1f12cab3b551ebebd7fe9759a6a65c4c3f7e8fb576e1
80434ed3631c8341cf30f51e699dcea0aa1df26d338a36e1d6ae775101bc12de
19c70f5e2d3777bb2182f766ebe1a969dd2ca54113510ead1602d3b797a88035
898d048e6385b133f8ccd587a0d0747d70d74acb071dd594940d22e85958325d
c7c51cd8db26349aa4f31e68ca598bad8c02b81d9982c0c8c211eb3ec9bc6ed7
e1884b0d95f92dfc1487289eef82ea27f25ff42e9bb1e3f899e87acb167e2265
fa327cf71ca2886dad4eabb727fe2b22f3e41766d2eaea15d8d0b278b7c08fd9
83946ba9357d481fcc18d36be7c912f14c44eea09b18c9aff1bfede323d77444
78707290a01517dd99aff3a73ada77da6ab71aac7b5fb925457b28f9c8760d5a
c7ffa4699a403a78318eecc5976a21f26e85d97f4d23c0080cb624a045a1c69a
974420c74f76ddd55724d9b63cc428b564123c3013179b171f11e86d70c20887
3e75c5a7eea665d29a321eacdaf4437da7d5bb0e15dd70ccdcfb8c2232d851a5
fe575d6373c8232e709df30e39bbdf0dc6e60110b9a4979d643e5299573dd08a
186b8216fc037e71c1ec9173bd90f7a13cce816870a9ab03e77481dcba427358
798626dcf2aa55c2db33b06e529253e2b6c4601d9132c85bd020de08cd0af5a1
1dffac790737b73dbc7bd1300a4d912fa9d66da6101a409acb84971963783b71
a4b625ab784f5badd4d2a30338d7fbf7b0a142428cab4f54c6305550893d7618
cd3ab0a3ee24affb65168639ab4cfc716014f03ac60a3d5b7a5b288b1dbfc0c8
5d6071408c44c97611265caa22fed20ef5e1243a9cd7e0c2e58e3d229a93614d
194561595348043b033fcde0b6ef7845d7a90169e05eefdea71ceff4e61f4d57
76a7f608b1e8a9807a1927e07a74a73d3a4b99213d2189a624cfcb240933b640
159e8f223bcda3f15b0a3556bfc80529008037ce0628c0f5012af95d6a3e837a
1e060dbea4aac8ca5dae772ea281f58b8c9ccb5a97ac275aa891055cdf7d2afb
c3fe2d01ca886d7163264ec4d9469b272e2952941c11955c01fc609e65e04e06
c52da06addfe8e1b15082bf139546e83eeefc49e5e3fe8a306cb84c87ad0a77d
bf631730391cc7612059e27d98a4dd17a6155973ae3a1ee065c85f1020c62044
b97face63c8e476367aeb1571e1e58306fa170350f4fafb23da29ff6d28ea111
41e02de9124846baac611ed35702e39122a8f2068502070d94a49dfc359a4044
e0daaae4909d2e65fd6ac07f8974657cb5f2cfde18f92c44968230fb9d9cce72
91b542ffc27d314a0a327ccc591aa985b34fcb6a94fc86d0be8641e0d0757c74
053d64237587c2f4c8aa687fd2f02c800773bd92d7ca9d95f344a87fe67d841b
b381184209dba76e8fdf40f3ac5b06a483ceeb911b2addadbf383d7a7bfe882c
71cc3ebe58530db13f5ec2e60aa2500223fb0c9f3337bcfaa55a654ae2555a0e
6a99a5e331a22ce862d34be86e625b8f70b1eb3de9ae7190eb3a32458c0707ad
9946194c36580187823d7e283c1bbed34323fc176f21d08a0e442b07ab66b65a
5e32c4084e6dd33fa0955e537382415347c2aa8b48a1dc3b0e89280abbfd51da
fbd1ecb4f88b9486fd815d2b54964749de77420a7a1a24c8f976bc0232c4bc8a
2c5c5dbd96447677e79664f3ad1e60da945059100cc72ddfd24f1bf0ff6bdd49
d9656522005b3c89a131c3e35322435e9b66215c0ec5226c6da0e05b33e001d2
d7a5e0e7ac2eef28d140c8539810e8a393bee60d267a6a599f5112d8479bfef7
1eab99e8ee82827d6c3615d4c76620f69523d695f54a80efe7d6bd98b4ce8689
aaa9ea8f28a431c7cdaae86c64b49d1b64b3865dbe824da74e7187b287d39c85
9b94d3b1b01864f91c65367feb56316bc01daa580bdd1f168660c94ea94716c6
6e550b2a9b72369372a7bbc463fd287864f5722ee14ed1587460eeaa657e7568
6d209a9af889f284312e1be1b4bb397264ace66fcbb2706d300b1cfbea770a2d
9daba69e1d7ad531fac191ea17b8073b67f741f3e036ecfef4613e073c259a7e
95baf7208ea13e04928cced849246da615c575ec0bf5ca83ddb96721faf86037
07f9b9ffa626b6e35d8b650d00b7576c0c2fda0a04a6ce1ea5407185efc44972
78097e56f41855017d84aaafc08f931778c58fee845307a4fc6eda7090464350
304cb84c07da1ac388d3486ffc38965976dfe53e7db33381279b38c013758da4
06cd3d8a2edf1c6d12ca18f99a850bf993b5df10ec85c0dfee968a72c24f48c4
15f527681615adad61d46d62763359a2a505387511782b30388e8e5cd7da74fc
6c9779bdde384d9acc908d68dc1deb313a1790e0cac0e677d7991520ec8ee160
c6a9c49e90bc36a30dddaaaf2cdf63336dd0f107bd56b41d7b2f6e480d77e949
0f936844aa00473f9c2a7c763b688edf0c33a3ed0512be210981738598ee2a7e
4bea20866a3f0278a0e4c58891b41be7e8275ab7914f654855773a0dd637c318
be51bb7c540365b90ea6c0f1209025bdc6bee0a9f0ae20ef52bd65fb16968c90
192c45c0bae7f6daeb7ca021a32559be2a2a85872cca5454f36b2de06e8fdf60
db37d642f20ef6bb988132bcf444edb05e7589c5ec8f1c45cd7a3600db1feeb9
72ad057d27befd99a6e611ffa1b587fc849eb4573009933df11247558e10c751
b091747da745097c4de137ced46e4f1504ed523c3a673b03eca0d9952e4130d7
0f7518834f28de8ee84691fa5f61690926e893698e8c021384c493e3a0eb22f3
6dc4d27244ee9303277dafb88587c3e4a7b610f1ea97411e92a237444f7c8b5e
7735d60f3cba56dcfa46d40df755ed44b1a315924da37e7857c6b4b760d77b05
d5e25a5c061de6256f76c9299d3bc58cec295e55d4d6c9aaf9864cecf0646955
075ce7d3519c616bb20e1b6801057d25a1e56f4e252392a3b2826329b04f8c79
810320774287fb788454fc05e34e5981ff10facbe7e52d89aa15614c9f017421
847d29f29acaba8a9bfd700d01c27c5783384ea0f6849982961a14a9967a990b
65ff7d36426906a3e1ed76880cce178e4bde7fdf49a5e824618feef8a0272648
eaa5671dccfe452523153222675d59e84423cb473277300167f10a5b73240fa1
ce6e2824804badaf3fe6da9b16c4d836d3c8a8bf44df1657b1b3c0202c697ed8
2286b17a795a8b9a4029c57a7586874a2f6d39ee044e3af42c3d571cd304f999
9543eb5b1e879315b676e1fed3bac3a6bd3295d4048d781d080b898fdf18b5ee
ccdc3b0d4c892f0306443aafbe89fe8509cd8d439993fdb899d65a46b9304acf
bc55aeef132ef2aa0853d67dea77f1321dd7cc8b4f6ae59204d62341b65aaa80
bd1bf308e3dab34f904829066013d5c5bac344baaacd5b44466bbcaa09d2db37
b9c6a83cba379c964c5babd2852eef0cc835a051763e8653c0e9dd8baada171a
d8053114126afefaf5e2849bcab496df5d39a393963ffd4b0213f74d5a7ae622
d6a552479b46f3926c7cd932098f5b9171ad8c4e5c2b8fb1dc06500372a091be
2708f7bbaa8a72683c3bccf93824f57f86e1f03c1549d7a9613eb891c3b9a0ba
8b22af9653c30173162b1c144a3847cb37e3999764dbd30a4cfc88fd8c84f066
6b13e79164050229ab600a92e13efae57f3dad42ea7ade3e0e239492a457022a
9baa894ff6359f9484330950382754a5ebe592fd7c57b7dc3ee4be538b081c
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMR6
%!PS-AdobeFont-1.1: CMR6 1.0
%%CreationDate: 1991 Aug 20 16:39:02

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR6) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR6 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
readonly def
/FontBBox{-20 -250 1193 750}readonly def
/UniqueXX 5000789 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486858b2a4b5a0cc2e1bf4e2a4a0e748483c3bcf
5de47cc5260a3a967cac70a7a35b88b54315191d0423b4065c7a432987938c6b
edad3b72ad63c2918b6e5a2017457e0d4ebc204b031f3fc6c13d7da7277a94ba
018e9998b3dd888011a5d7c4204989f30f908b95533bda845746b673ab71ea57
65a0d14f4350707e47c8276305b28513cbe1bb0dbd269a53719bda46e536685d
df78ca0146b6b93e760256b74d939d4e35b5e77238f04c92298dfdd188feea30
e053eefbcbb52f2011772b3aae39f5805597bbc1e8bb75a446ce014030f4f2f0
f49f9e962ee4a1024a746fa92a3628db5270732b54e43fe5ecfa524f127e5fcc
788e77e66098336ad67fe4cccaf0253272d5df79864bf4b734cb9a5859d557d8
bc11b8e00221ebc12e97de4b1f466ead83a4c894709363bca9040410a52d592e
34ee40cc7e5efa920546b981aa659513a24b1b85c221a1875b62d0b89e57a368
321b8043a5b094e0379760a443d632892b14ad6d19dacc8c78093243ad67e6a3
08e56e6b68412ee690b10dac6e17708754a00d51fc957b500eb80175716eef4b
2ca1ef867614659bee3f2b7319e97b6fdf1efc847bf3cee3156f72f21751da8e
5fb6898919e6799820d3de0642d756e09d6fae4ff08dd3deda3173bff4bb11f7
9109c97ddc05897af709ea199a90fcee8ce4c7a3c15b18170c41c04de2d3fba8
f34296a95b8e1e8de3739b17273f8f2c85e914615e8eac5e8bd2387ba3b1edf4
7968f06e2067d836d0f9f3e085cdfd2de06a62c81d786b304326f7002e83160a
36598589228b4dddddc43c85e1d126f8fe81b828028e26317af5894aaccf4f69
6301e1a9fc45935d8a414957f08febebbc3a72ada80f101e47447d019ade56e9
f4fab969bba2b44e47399fedf5caa1bcea216d7ba713d523dc2b1a89801ad4ff
2a26c7929cd309eeca94b69eca57ca332db286f97602a69bee8e37936b9346cc
0f6d2e421c4e5512be432fce589448f5f84cdfa8f096528c8dda6e1db031dc03
5e66de81a9d37e3d450af0aa8f8333ccb9dbe51fb4a5502fac0a0abb8dfb643b
2d3323cfd843331fab1d8efb4557ad4e5bfe7801b7f7c63439a617535087a1c2
8fd075da8442bf40379354ccd398a111fcdc9d73c3111b31a3b69d2312b6c377
ae21dca966b5e4fc26e60405fe586a5ee1c8a609e245338f75a891c51463731d
867a80d846e317122d616e4766adcae7c5f0a6151eb4da1305969cd321bf6434
818eb8d67bff536da6043e5d8bec3cb2a48fd565fa9e51a68fabbf533d376351
f7c12874628ae554478ffa1cb9de8dd27edb02366c415ea540b9b168507ff660
57135fd2d0e24550420f68ecc804715f65d48434d8f6ec629f01e41172939b1b
6513f142de44863de3bb5a56dfa8d2e34cd4f999d090e189c8fc8b2b7eb2644b
e5e8a0bedac5914d70c4384ea11909eafa2fe7012105e423923c8f6aa46ce71f
c6519c4dfbcfc84fff41119db33a9eab8dc061250b703726e05bcc86cc5b7577
57fa2f13f00eea413d705581f0e7c72b8b7f8ea60814aac19bac4aa062aff864
b0c96e3165486ba090fe3154ac42d6c7d520e8678dde7a65c469b7c5ab1f69d8
25a789c3f4897b763da31f99f6895e5d6d80f4b15eb7d7ab1086255ae04a1cd9
7f0f0e2d7d76849496b78541a28ee991f9a3325147580aab26d90897640bb6f1
a84860aff36bc9e60d9899770cb607702aa9f71f28ec9e1eb3d373851131331d
916b9d8eaec1225101add4fb091a56338d2b6dac4934144c24a680fd7d322df1
dc246a228ac75a430384d5f91a1e2def9a3decce71ab09056601550e5a9beb81
1d3d3e602bcbf01f991ce66dabfbdca501c3e18527e53e24daf9168f92e70f08
9709b5ede3c0f3005b8f6302c97043ebdf163274624758925d68012ef835755a
477a4f7cd66b7540563a13047e88f063674888fd87263217d88c3c31abc5483a
304d632fb06eb2e14551cd53204ecd350232161b8f2982a744106de0fd09b45e
807fe4d555c4abca492cc0c09920b02a8931454f2d1616735ed9962609b5ad15
dccfc6b57782e550cf651dde7654b2db575254c2e187f5e3b0b09ed44079ddf8
a3f50495a4cc55bef95f2ef51b613b65ac3548a00c22332ec7cfc0e6831bd209
49600c0e7ce0aa57a7be7d91f131eb06b8e1faca502f13502e80ab63a17746b0
19d8bf55ea0d68714d8a38ba2cc591b75a5172cd18aaf26f3ae519d5ecbc57c7
5335d7f38aaa8a25256cdb28f7dde3262d25ab3327ec38ee5a9e8db68b3c520b
59cca53e002ebdb4de62566dabd4c8507a51a376bb5cc8fb19951566328f3718
319b30033c27d88409c4bc6d10d7a47221257ec700ddda6d2aa4248e4c1aef4a
6ad488bc6bd8fd5241022744d97947c680e2c3f1b1266b4006a0687aa93f550e
23e9862d28c30d245edd3442001265c83d9bb8d3a4ee2970da4e2853eae8c019
99c2a660069ff12f3371f90a12a2b767bfe17091a709496a35a694e43cbaed4a
04f0566be69a84f699403bc1ec40b19f28fea5cdf4c5bd62208f4063366c4877
6d7d1656758d24318ceacedfd4fa70cc76502cbdeb58a8071d559a9c43e4794c
94419e7f8f15635ebc023721471131f69ec35123f54768fa00efc5da8779058e
5d6f53415bf0548f1a231a05a4d2ab60fd9023dbdffe2f7c6d29827b7ade2a2f
1e4400b11cf8864cec09b0b74a43dfb2885322dc79855c9048681ea8b8dcc65f
29360a8020e0db02bbd28bf06076dab63c480fa99c4025f2a4671cb03a55b8ec
83c19c9d2cf8cb59cc2188a0fe58d00471f9dea9a832cace08caa73a983f5992
fa55608534f91120079312ec86b6f9da938c4088f1b5c04a5e169b61bd2b1750
b31254ddaf9ca5efa696fb2e53ac1edf2a442a52d1f930a207439c83604d338c
efbb3045d66e1c0599c4fc09cec289f19b92201b4eab541b805909f2e7673594
4b41da04eadd7a8ab4416704608a280930917fa81a2ec1b0f6fbddaf07344e4b
256b000dadac578b6e7c5250b33750dee374765de50eda0d4dedc835cb4eec07
447c0fc1dc70ccc6a9674a07fb7e146ad5aa87c71cfea89b2c730772b1849311
bee0567e1e275f23fb745ae7fa749dcb21b0caac6e711126a102d8c2bf87c8c8
66559045d5045daf826f2dc235878c1a5c1bec2a6108ecad8af749f25705a47b
9ba49b2cf4446bdb44ed5b9ba4c198c00a4967477c69a5983c7705fe5e089db7
a57dc77d16337626f4739a821522f8a6f9957410d034ca3a09fb3e47ca962a34
68e0d8e1b7111246a34e7197470e92debe6d15a1577612b4ab5b5b580407c1fa
ca33eaaf6a16f3e42e3f43f9e54a272562965c4fbe5493c111048a019ac54a01
a6acbe32cadaebb926dcc2c9a0e8adbda8c5dd2f4032ee56f6c24720b484f5fa
b8ea7616808f8871412de1c24d44bb1324ecedc653719eb70399695904e0a052
b2ce2b09770f0a465c9fbc7f2105c0d586da9b
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMR7
%!PS-AdobeFont-1.1: CMR7 1.0
%%CreationDate: 1991 Aug 20 16:39:21

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
readonly def
/FontBBox{-27 -250 1122 750}readonly def
/UniqueXX 5000790 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b448685940729e6e22f4be0e08c6505cba868f7950
93f556b64b808dd710eb936d3ac83e5783b5f7e56d363a59a026a5619a357d21
c4e77bea121eb24b09027d1aad93158edf912940e91cd2f17922b35885894644
7773730bb19af9e70453e1b78d5edc123b273a979891d6d5e624f4a388f3897e
13b045e34b4ee2f5e4fc5e996d3549640010c671de14d18b0b3cd300e57dac03
22e59bfbf7b29422230870f5897fcfaad4b50c7c1c58edcd119218163d6f6e56
25ccb882db7b6d09a1586508e8cb642a11c29a46915e4a96e282079cb21922c1
c2e360b487a45302fd22ec8c5fab63e54b5e844d4b17ca2fff37c69c366dd72a
d02922c14c0932f65ed03e4219c117962edbad2dcdeaa9c10ce8af38a4ae52e2
b377245b0be19a77d6c936e7530cc4d0b78d0cc4a92698fa2870fa54f2d8503e
2d17b3d52fb2febb09f2b2af0c2a1892039ebe19a690098799a858e3d39631bd
6925a154d161df3918074ada6bd52baddd0adc3f07e2d9f15e27cbf7fe8b98c4
07205c811121fa91e059f2f99322fed63f359ac9da97aec383f067f23e5de331
51e80f0a88ab50fe8fdae4a5de93c1ae2fdca06150b37246140c0e87cb2325a6
0d2349162ae3ac93144eee1e665a1289105318fdfe86b6e76251cb25adc967d3
d0b97fe5e279e1161736ab22b4ca510b964342383a840defd38f96a7280e6ac1
34e48d740607ff2e7804164a16d47735864db847c97335e6d4215cb99911a1ec
015a3edaac1f28fedd56d2467130d07bae9416c15f0827d27c6c79f59054282a
418c12c157c91223a829947f47592f7cafd93ca182b25a73a9419127e3b12a9e
5167ac3963f2b019b338ac46d63880f94dda4b538835884d2a5538c85528d6bd
977f844d32b43b0e48caed5a4bdabcefe71695d69ca784df9e0534b6b46e66a0
cf2fff3b9f9ebc955ffcb67277f7810ca1ba5be246c53a4cb97684ead524ba2e
3f16e73e8bfae82c35c6cf8675e01b9f4001e0919583538809b4f08f241c0f8b
8cd97518b733bf907e314b14b8bf192b462d5767efa68460b3b18692bae2b231
e53b068d269d4bc957754daa09e8b5a6f619e69dd73c989bfebb39ecc762e2d2
c29652b88b8ee44d20a31a6d4e276ec08e67101c94c804ccfee7661ded6912d9
332fdd5e8cbd8899f9b2380e5d0117bf8a4d0e6b69b5e55f891c4051e1505ca0
94b760d9a600697143d23fae65c6631792d7d329027dc9669757a259baeb5541
ffa46c74928f95333a82e0d65138743698b755fb579e01d7d148666460f0b19c
e62f85bcd780acdc50c6ddea9a099a14a81192d316ec0cd76de2ca35fad8c81e
fe546dd00cd7fd3c55be2786264778464b3071cc3e6b9581e630aaf3ec5cb4fe
c4b810cf98aa42eee5aff85a313520b001344a29e75671d8a2f17cdbe45733ef
c961a73f6aae95f1d7817aee87131653664808067b1f521d7bf3ae05d4b4b6f8
42a69ace3667d322a1784cc0c71a692a5248db47c61d90a0d634233053f6e10b
1159c39d5618fd3023b06bd432187c3a820eab125e31f825f143044f83d5a534
95146a4551dcbfc89ac4274aefbb7de9c826447005f41c0da5d1e9ed3bead775
ee7fbc0c84c250783e716f9321cafe63e83367734aa648d589528e2eb472af83
5aa9997bae6c4df5305f33b88077e20636271b5fdd5175588256a871702b23e1
831bd2f24eb25590d17f225d78e2da86197700185a135f79f1b876ec436015e5
6d00e53170629481addc9532cecc40eb964c0f3994e7b771933449233845d6b4
f2230c4eb1ca7ba46222b5ca13968c005e7832a0ac561604f871a9ab00ed74e6
9f3f0628037b533b1620101716cf7fada166362f873bab8734e70bd0dfcb5323
bd33ecf2d6ad5fdd9f00dc8609c79115ee7dba32dc6f0221c9131d66d542cc60
53ae6c74328c1dadf35d44f13a86c7520b34455458f5dc2a614a14553e9da539
81c47b22acac7cb00d66b01b5b8fa79a96a2e15b225b7f23cd96317cd288aa19
c4b4f35072a627f57a4289cffc003a56030e207baa63e51ecb4fc5ff676680ab
7bd2a749c5718b42fe7c5a34ad99679e76bddbf301b19c43ff08eaebd0c5a015
82a8748a4d798a0bbacbe3e4b0995dc9a6a9f6dca958a37b77cb9f57c3e4fc65
c1e24f38c4f52d7dba1e1ee23f081c3f5b4e6f06bd899b511b31cda3ca8f8ac5
dbec40456ecf25e9742312c48833ebe7fc29e998c61266527680d25ff1c1f09b
726635b9f12c00f240b693a1e07346d333de37c660bd36fe00913c4a7e876494
e8e38aa8fcb42e3732e74b4c6826af5038daf986ec68823acb95f727beb80f5b
148b56e37844d1b560a7c4357c2cf495653be25fbb3a236f15df847586bb2c05
794ea5a975aebf7c208fb1decdfb7f930adccbab537248856e5ee7658f00b30e
50ee48ec8b587a2ffbfecfc6cba48a9af33a362e9b4fb9730a3e587216c08ac8
e5c90ea88e917a6d29a361dd7ba94313041cb1eced69a2351278ea4c71d4da5f
ca65590376e7fff4d621d39c06c541c94144e3b6fee2aeca7cfcc3aad469428f
5996038704cb97185ee203450958cba23290c0b3d1b556d40d790cf2ee57e4dc
7928011af03dfa442d5df5e57e0c77c08c3d56980bbb4f418be451f244e29a23
930759743c9998c94ef8797f6197cd0bbac6f19135ed7c976c9914d441ef65cf
e03eac53b7e0272fe54a8fbc5699b45998c86717dbf121dd62cb7a8a05885802
c045ef8e809f0804f50d8f2fe4d6da846f772d00489f2283dd53f4bea2c5205e
2cafbea1338c30d46755f541c92483b8f8e92317ff63baea7432111633525a23
d42d1255bc02697ba7a87a1eb9abfdb366e25ebe1a6eb021d281d83b69e8390b
44cfba7075e77e45ba9dbdce24db97c6646952ed496a651756b5e180f5029477
1b0bde1432bff9534387b05f5e551bfd8a262d04f6d785b82ae8cd0bff01586c
d1c6901c8af6275f89f4316d11a35709a2ae79d870a38f62053ef7a8a08d5672
ad198a8ede6316aa7240c747d035c85481f166d94099981128ecb1720aed0b61
130163364384558456ec23dbe3a158d10a19a7fd8fe2da2ef13eb724d5b50a7f
4e4ae0c681f23103e6e8d738e83276e15e7422f0f844833745340c2a040bd6eb
952c987a50dfa7db0d1cc9bfa2385f2b30d09c026c0775ac005159b9d82a2ab6
e2e4f2917e69ad8ba5ba4d45af5d1c2f98b59778f9af9214cf956c324225194b
d46e04144e971d67b1b8d8f7f7e3ca9e7f1fe493d3fb8a167ebc9f439e45337a
2228a68fdf3961f2bb9523cc078fc5908bd87d0696d7a406785cb1ce61eed61b
4070500e53143b6e0d18dfe693f863378e13ee700f23d37451ecad1b74f37052
881167554e62e20aa19d69e4cd44c97a5ca01fc851aec425659c545aac108101
a7079a41190d6ce7bb8c97aa60da0beed09e0aba1b2c07e1aa717481e07e361a
0f63cf8659924bf379b129ad7eb31f76d9
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMTT10
%!PS-AdobeFont-1.1: CMTT10 1.00B
%%CreationDate: 1992 Apr 26 10:42:42

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 37 /percent put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 87 /W put
dup 88 /X put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
readonly def
/FontBBox{-4 -235 731 800}readonly def
/UniqueXX 5000832 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8
97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc
8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011
b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415
50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e
784c6bf7389803d9450b0c21756a017306462c563d51ecefaacd079732f12c29
315e4b9623a5752c6f1d8145869e120d910b2644887cea7e30b15676a92537c2
9d3aa80dc30082aba94b40990b82fb1a877e805e0c8c48f61e9f2edac05b944e
e4d8084ec1d5cc517aaeec5b3ea379dd011eeb454cecab3ad2443c887c582789
72355673e503affe0394fc7db31de364e4f56c24033c7df2265c56445ec63a1d
5695a6041ea1b94407e1cdb7c5635603a4fd047e6edcaeb2d0da6c9e0e9396d5
1a4a58e8fdc1578730f992435560a6e2d3e3687703ee2f78f5896389ac8470bc
806169eb01762e89b6dc9adf857ead656620e2589aae722c37a2ed7a2941c360
b067ee34d8d5ca3bf68db725614d936bcb207781f4d4ec2ac67b13a5ad161f3f
059add7b5e3d904831e31c20c04546fae83ca93a35989e65c201756888f727b9
7e5313c9870ec96e4cec3901ea03a5c744754485e7d169bbc98bf872d0796e18
9d43b712950c3786257d8be06ab6080b9d9392313298327549a8a41c00a2cea3
690b4a333e45aa815a64facae1c2b44640860b8b8687afbefdbd5b4a541a7251
4ee7d3e0752af3e96a88c95d31fa16d34ba2f02fdb0088b165844f02611c734a
dbcc2037bf741fdea7e8bcdc130c70c33772f777d8bcddf4611db99001ccff14
d7af2bb05defc3480bdab312a0eff2f375afb4e0df2f803c594b7c93f71ca4af
861ae1711932fef19bfe2f9b7adb69d68e5a70ea4d1a3d5bd85231b16993f65e
fb37a0a823f0542f8c2340a073dc1be4a8347f9d3068a6435cd8278b0db1809e
8af9664c2c989b9f16873c009449b6284b85da4dee11c96a05ba83292f0edbd9
2cf674aad6ac1a5ff966ffc37e88a66048deed053565b55ef6bdb8c2f2f67832
f8939a32442ea54f13d003494d6350a2864b427a9126a9c26a031909fe53fa84
63b80c3ffd536c9a5dd29ceb03148dbc24c0033ae3542e26551168a474b72c73
a7e2c34e90c8b7c4125d8657cd89e0449b5969f05212e64175cce0f9faa61069
ed82a8ef9276f14e2a08d8dc7e5a15f1707902c2b2f41cb1fafaa593385c2ea4
1499e485ac560bdf047680f9ce615f750000e1c30ff1b6ac44e0a4425d941622
24e74d9a481598245aa1a2b368da7c1f71bba518d1327a44d8b4770fa08ff5f9
1134098c0f6d7aa2c2270ca47c418152e453602628fa113422c703ec5648a554
91d86aaaaf1ac92fc3e64e0e403a73c84cb4fb0a0232e1a153b61bc15d3597ca
d921e3b3b1d02a8dcb0bc8b62d67765e1fe4e78acce9ecb284f8c18225d324e2
6c1658f7cadabdb3e1231fb1c1ecc63492f3d3de4defdb9352f17f36e6053b33
88e75f0a1dd6ed1a29681d66f23e2d7744832623960d919d3d43568232ce9312
5977aacbb8fe7894283ff2841be77c1ad9b5543d6802d41ca0414284cbd3bb3d
354deff981aed4f443aae0c448baad6439ae88fd1946510e3b63c45b99b4a574
ecfb451d7bcb8b70d4351c23b4f629673c18471e0cf890df367c1964d97be3fc
7a748717b85a08861ba0b9b391fe883e5ca814d0a177ffd6254de8b52c5996e3
434de464afbfa04362cfc23593dae5f564a629e735bb6e9431f7f3a947466e47
66c853e76e0f70716dce014a67cfd57e1d7153a2a814504d96f7530917e21c54
4983c17fd20c4c3ba3ebcdb4f21fa6b601a721ed0cf863cd9df35492dcf9714d
9cc574ec0cfabd0ebbb8af259da4d6a3aa4917f2624856b3d812d8e1627f0f0f
77874df1a5c233740f66096e66d9e0645257a16c9b6a7b9cfdc0c4bad3b04890
b202eb20b7de6903db9429cbcca77eaed1d417bd88a412f0ff011dc893da081d
c875f9f6ee50d42fe47ffe1ac086da487c77b02de814c6274960056bedc8ae26
91482befb17509c87b05c294b0afa178a0ed9fb13270325e71aab9b46a5fea21
cc8776680c18961d5031c234c4f66bfdc245af846e836a1e0502f2c95237640d
4bcb81aab01aa588cb48440ff550b6569d052bbdd93744d9e5f7e78630122f4e
e8ca980f1a95bc3977d458eb0851b7c7d9defc0d831b525f918c6a32ff6d5375
2dcef6135e4ca5bd8c10cda7eea39d3a9ee3eb8d151b4dd1f637e734d2bed623
f973e6840b8dad1e2c3c2666dd4dd1c1cc65fe0df938403a4133bd3e066f9e8f
bd66d815d97796b0f5f48e9039bb3281137f46413f84ad210db30304dfbab129
5414c973bd163aab218f3994aa209d0a602a6b93f94b1b8f34f80d28d3c50e00
95107e45898a1795839a0cacc40ab094fc22de5c86114193792cdeaf7d8c3e80
dd32b0b216944c73325bb939a28ec5d93f8f60c177803fe3f1574b67a20ef617
8246c29036680b86231c8fb62d42f1ffb71456adc9f221bb939114b20449cacb
08f382db4fd8bad8c81caa821aeebf4f1b323084ca3dff115dfe9a1698c37b92
8eb081284d61b860a460e199e5c4b27c36d004ba219843ee1f617d15ba5ca39b
29bdb72aee266dca18fcc9cc44bb5eed1ddfdfff57715f257706c2263fe65e77
18d6cc88a5a528cdef92c9c54f6395a34c60e0cdf99d5a7eefbaa23cbdb31dab
e3c1b5d4b9b7ee9c08a7681aacfea5003c773848a9eaa61810ce2c15721637d0
6236c9a0b2047f4a36535dc08839467c27f2192a80b7bd429725af2e9282c33b
0ef227a8bef4bdd106b811ee98b5d8380d98dd859cd891240b3a59d3905b71a7
21dd0071f99216bf06268dbb9989dfd2d8cf6ba5ab59c20c33fbafe060b1d7b6
abf385d65bbeb25a36d4c8f4b581cb1925ac998b67dae2b2b9b24143e63d9c1e
2987a45a2282f0547a968b3bf905d574140e24a04d60bb533efa1d8fdec138c0
6a3247fabc407e30ffb340b961e329e0615c35c59f0cfe8086686744d086ca46
2cb4c47eeb68b71cd919226702a8dc328d73ea7f24c3949ab8d19e3149e6694a
2ef94afe9045e0f26543237f143fdfdbe5aef66d8dd8a21f734a6e0673bfd56a
f8f2aa2883600cab291cadc6003eb298120106d4b2f788dd708b4af3ab5dc073
43b0a3552db7f22d5796223ad0c49eef4992828aa5362d1730d7399b7da8b65d
209274949df3abebffa4a23fc119eea42280c03b635642ad667c7b01bcbbdc03
7bdb6372773f2ce824a9f5a822b07110b689f15e1a71187ea5d1d2a3a1754a7a
4ac3c5b4116dded00c4bea473bfd34fbd591e1bcdfa2d95028021118795a6336
e47a1dbcc22a54a3bd57545ac42518686da0aa298f953aacbcd87f226d053a6e
2aafcd887fd6f279d28770d1f797d4a20b77ba42634bd9311883528ea4745e11
6279b24268155334d857c3afcf0bbd6b6c08d0aa530a03fed9081d5e84c1405a
446dfbfc1628d047ff082c4b0795ec05b33baec15e5297cec28409aa3af260eb
79dabe7770a6994b371476f2e41a64a13092c87bd2e2758bb0409758ed93f142
aba99862275d0a64bfd03fcc1f6217ff9558989e5bdf3bf83b804f0925ccf2d2
73086f7c5b1c1c5b97f0bd1222f105940b5bd010028a0564936a30b9fb14dd2e
95587fd4b2dfa3109545e39c3d64cbcafa0caeaf7ea5d0cbf1917ecf4e560e81
361d3b9ffeb739d1b76c3852ae4839528dca261f30994e66a2f09ec7c96295eb
8f7776c46b6e10ad91a0ba0bf6f83a6b92a1314c723efc34e04885a0138a95dc
b8da19d64e205f551b900221af4b7cabb8b27eb649e35ec43dede35296bbbe09
9cf2623b720f46300dc42619cb887e85f95d7c886da7d369148334cb638d8dd3
74804808e9e24dc1ed47d390b7d469be4b9046d069d5ad1673519fb220c1ba1c
243cadbbbe4200583ec6add0b87d8999a759b8617a4c6b242840add4199b72e5
0e4dd77ce348f7724d0ded563b50b56785a7ebdf7b5b75be088b1a56fe01018d
8329d86ace886d140b0d33c91cf6f16b9c01ee240e31d55e7d66b4215c3afc06
b4561a600c3bd5b2fba297ba0a4fd4f9bacc73313ddc7fd40d22ed2fa9791d22
7d8c7ff93755f759b267e9544fb71bfdf003857c69967bf4d60ea6f97d3d1a35
024adeba4e19090accf7e2b6f22b2fb603e0c0e562b1f4a4169fffa604ebd66d
4784aaae23bdf5df7ea391a2c3c9851ab90c9930dca2ebceca5f330564540cc9
7b54e90267499d0fddacdc596a3f717f2799bc4d0bf0fa2fe0e7a0c88bb9d46c
276d2bfac776e9211524708165c196daf24ccf05189df968f221a3c387cf22a0
88b30d5d8304ce5300f900a33091e8ca70c58386d7fd21c95caa3d073bf1a99c
1c119c9d196840edd42ed297466784cb05d529493a998f666de362b87fb764ab
a4814c3bd7890ef8b973f8d8ed509f9c68b834fb9218a9d3dca0359d1e874d42
db9f1a8c4a41277f039b4bdf65c024500f472ee19093c1674ee3f93ada0bed00
74afac939a9a2958418383b7188f50d8f68dcb2133af314159cfb04dba6c12b2
2f6f2f587530be79cbed4f46c5a2d613d28685ddaeaf047aa3e80327a911ca8f
ca648b963028dd584d607ce9ae0a262eb9257d756bd0db3055ede8abfeb5f2a4
f87aaead96bdb052b079a67b8cdc7abf1fbecb2ce5eec605c15304a3c065cf78
6f1c2bc6c63d67d551a6668de72084349040a7ce57e1b96b62827aa9d5cf7dac
d4c6c35d303f488f98df0b61648fa3cb4910e410167a0f606a16ae804e68ac0c
bbfeec4d0dbcfe49012d29f74ec3f0d1935b3a390c1fcc58452d81efc6ee648e
f3d4f5ff0696660f6b67a84c0f3362a592ee3f24182709388d657218050ba203
75d88d753e5eeeb36beac9cc153a738e3cf3765ecf782db8f5100c8e4fb3257d
b2f53ff8de299ea9e42b7dbe58a83192249afe92e39b07903475ec66352a3edf
a12b9e81945334a7f9a209a6a9a20935c91342bc33f1b9f11b7329dc8bdb63a7
23a74511ad79832a604cb0dfcb566a4c6a0a1d9cbe32e7033649cdd70ac01c26
1cbb11c007f57878515881446648a794b263b87687ee10b6151ca83c1401d46f
0d8c35a88a81643b0a712b025f893050088b86e9c3dfa9fa2d13eef109da70bb
deadaff8e9dec93c71a1e7504e00e0914a93564acb9457a8f7ec9e8a3f861aad
2c9ea4ca563e25a34dcf4b104eb221be075a0b39f194137ef0bcd0002419dab8
18e0caf97733ba037122a73d7528b98a5df59507eb8734f5e73ee9edf95fb141
9f630f44b2bf8d63ff612f5a66d228ab3c77513cc2cc90397af072aa62fbf56e
2880b376dcf2ab18ce7403f12cd3215ce81ddeab1b37297548a695b1dac0a2e3
af397bc624829aee3e96647dc696eeda4cb14c4a6045ec026179bb5047ad6b29
e7434e0bd5c753f02bbfb28684bf679c6baa912f7121d76a92a7d67d1036bceb
cb64a39556ac319c975caa3f73aa3b76a9d40e2554b1918b7786ae321da4318d
06bed766480717d510cda3b73a86ff0d9ab204ce76acb6a044c94075551bd14c
774ed80a9023a18e76ee7e5fe3a19cc6f5bc503b196502fabb98db73d8faf969
6e99397ebe04314f0d3c133e967649d5a28c425001bc7f99eab17ce2345d2186
95bd267791f72dd6030e2f9f27a5e052d272cac8c43cfe0741327deb1becfd81
ad03daaf640f960145b77968a9b858f2191af54451fc7b0b3aeff9a46a482e7c
97d73a84b0e112c46c8ca17199887a3e5787796b547f7939f9d83372e52af06d
ecadb539489d7e064f44c585793993960b77a6b194061263162ae9883d032782
6881504273f3d783af8a72721fc5e41feacadae216ec4ea54912831037af0deb
3f83b4688095ff741f454514c253a2d71d3ba78e7b3defc91596fff17d959c0e
9aa94f87deca5cef1613dbf0e4bbc6d5efaf3f59cee697527461537f30f4cd03
35dc77452b4e871324c1330836906c0f00b8f731ada88d16e0edfb15672fb481
eb0f7b58b05a840828ba886cc4a1d80fa4ea24107fee40bd3fe013799ea0919a
a5bab0cdde26915b55bee6ad13f259f6188c06412c3a193656e4c40a5fb6ac38
1eecdf40e37afd38d29b78d4a2dc659beb4b45472c0388262181b84b6d8fa393
090e5ee8fc21756c9fad6e5dbee2d394af89a16b3abe10cf97b9a2862954ca30
19abc56ef3ff582ef98b1f91db019dc85b765166f368dbbffd26d7d8cdb92fdd
0fee86f5f181d811f7d48293e2b16fa291707421a76e38aefe3b1aa633f436eb
891ad3e1e23d6287f600ed0f811865febe8bde13d9cb9ae425b228e38b2590af
a5f6eff2d4ee603e7c6591e79f1ca147b346d75a6db2c2d906e21ac1f4ee5922
049622b6de65c0217332c8005e9e27884a70701520eccdb330d10840a455c3a5
2c863a754a6af632245eb881d56f0700c50f13c37f75d237142c498282a26c17
4185ef4db4431a9bf332d721c2093195a9b1dd5d8c23a9bbeea5e938d224d504
72c1a37e66f3c925ba2f62aeb98f2cc1cb51d6a91b2caabc16b74b08c11c0262
da6087db7bc9233414e7a0707ef0b8027e447145c8d101320f6bccd4c8bae8b3
a8d5f2ed6831dd2b94926772b64d2075595d9ace3e0bf02a6709150dcc7f7104
43857b653d3d68147a317cd1a4514f219a5548fc1eca5c3f5bd60b1c17bc6714
6130c1bcaf8319a5eaa65b747066c2b8aeeec943238a3793f3e8576ceb04f07d
4f505573b350e2d1f8e3ca1d30eec2db70ed6dab8e051e7f8bd7ab62a282f650
1a84de8170304eaa9d66fe768804783eedab396d2c275a5e7019a56c17319122
dfd0226ee066541d7536d2b434adf6662f6b72e0a12d53d3c3f799f481db3a6f
9ee9eb6c45f5014ebfbd4019051a139c9a56ac115d5ea25a298980cb291a6e1c
7be2c6e136897458f79dc41912721e1e75e097ca76085c70498a48d47e86fbdd
b280b06e056e15ad3c767c224cc35bdfce95784064ce023104dbbf99def65a58
b422a83246af6123cb26020c19b6743c8145d887fee42dac556e5150f0ac2c41
23384d6c491124a2b7cd308c45fc6ba318e96223be0dba436fe409b1fbf80c86
a15493fc20b362b751f35900b56434c0f654421fcf6c13931827623712c44415
54c712cee854858662e57558fbafb381379173402ad7b9584014a72d775b1e76
c45fbb44c22bb2e1daafc66c2ba77f6fca72ebe4774dbc7872fa8b39e0bc5bec
9dd959f9bcc65ba3a5ba53a21e4a752a85cb5d76b3d859ce7c135ab823cb520c
5941f8133a13f4e0bffab798932fdfb28749e3cc36e6fc456cc0ee90cc3fcea0
b2f5e051c3b6413a562405fce76c862a8d72aa1953fa47e101afe23731bcfbe0
13607a1d3d5a701cf5d9be20bee8032eb4aff7341a664ef05be27ade90b2a23d
cfd1b3eef547cf57e2df99fee67325abf85706c41960a4bf47edfff5067d47af
c6b926fe8c54a7507be5c47192d000e7cee06f74c1fc72dfb71bc4fe28753f89
7ea609f51d45d82f663959bd6f5ac826c2c9a7445e1280f44bc21792cc11f75c
29cd5f3bc1d808de9fca799d1f242f8d50396a32dbb56414cdea500eb7771b45
aa32730542f260bc1a03bcc08bc3cb6ee2ad2a426efc8a9adcddc68172f6ee86
1fda76b5b6a8743bbf0b9f68bc859fc1a7710a40350324af36832bb274d95215
98c6fc73120d89cfdddbabbe4583c70145f53d42d747efdc9bb7cc63ff9f248f
3419e094b8803b0a73da45c34d7a9f3115f15f3c78a27849ed238e5985ed840e
82540af9ad6bc4ca81f34dcd29e5a97ce6dbe8d0496d1ec25470e6dfd71ab971
5642679b2798a740c439d8df55b38f14cbc46c88b214f061cd2f88cfb28802aa
aa68bc22c772422207e340ea065c80a0c1939872527d51375370a012660b5922
8642d294db7c422e266c44c04241676969531b9ca9a7bc7b46d48e3bf1743e1a
e640852677fcf718436cb44e8c44afe1ae79c6f7bf641d41af82fd93ed06499a
99f21005d2220a1ab188a33fb2740f492d478678c80b3f8a90315eaabbc7a978
9dc81c2263bf3152c339f0cd5839eb806499deaecd52fd4542a33df67e86ed0a
380524710be976ab5ed2c83ae699933ffe45f12df4a6ce6d4781b6e361c4703a
40ff2091bc561d780847a02821ca640a0ecbd4bc6b08d75edc4a7b9d661a8668
0c4e997fa1a2764be1958e6a0d231e8598e7ab63247d902be045e92b46e4c905
1d3115a406feb5f8d54c4e52bc7714d2a4a6ebebaad616c59acabdb1b64cc355
97b28d4216f5611dd6c31385f0e3e5ce474a65ed5d3017806893624255ea2519
07c02d4fcf0c465e2cbebe0fb1b771f2f92cae501cae397ecd8cb757040cce2f
f758265679b65b8892b7807f01e1859665be9b5ea74f3d8d14056696c5bf904f
50e65ca9408c52f02e3a74048cad028029cb6ee9efc588ee250159147a790409
ddeea5d06ca49174f5fa87330d9404564345eb389b29a80f1267de3fe8504096
1b9fd0285f7dacef6e0f8daabef0cd5441dd9cf8555a3e87e2f9a6b22391a804
dc6e4f66e78d0c4f9b7dd4484fb1f2f6400174c6f571c8d3ee686fde5aaebe37
2725ac3c16c7936e82054cb4b0d95df0042fc944632a1ddb3397255a0120b62a
a429d730be0d330d2e4c8abb2b6e3d2ae4994b4aecfa037dc65a7fa96f55f8df
fc85f343391b81fe311fbc064d3293e0fa54dd8ba4638f9ca20d33bcb49888f8
701782882c90226a902018865f3d51e091bce6c1b1cfc30b0b27a0b623440dec
adb3f45df1aaeb9ae8b61ce3ade5100282c5a269da995ff9ce5a6f0c4e855b1a
d73d01c040b12f237dfaa386a069ebe90c8734d499817c91973363aa0138732b
6928c4734076d1bcba7fe73a69ecf81079ba7af3b4daa3a601b5fa1aa943c37c
654a229a7d12b9a1bd928a75a080ead246d60486d5a6512fcdcaa4a480a76f1d
4cfd127c6123b74f0afb361b6ad480bff52e14be05a519bfc5e23f92355a9a6e
b7f17558792f9fde26b5901c916e9efbcc039cfcf695adbfb7e4287223f56b7d
8f63bda20c9669b897737185ca0ce4d130a2456ba819b6be13df77b6c26a9897
a7e03fb1ec28d023db407448a82d7f5f703685fd0865c351969cc4ac93d7996c
4389f1be99647b8dfbee062f9cdb615c189c84160eea950eb5f236a5414c4b5e
46eb68c1a83aa5f1b08b53aab051e6bc7fe2d4c2740405a69721486913c4327b
8c0cc5deae651dbd5063e2a2d6c41e2a4076abced22ab12281ad72942c1a10a3
a4e0963047dba55a5beeb0a4d98259621129cd2922771d03916eef62b336cca0
d1aea805b483d77462a581c91036ef5c7be493e8ab17c634d9bb7d89a401fc34
2a94c26bb9d84920d685b67b5bb9bd4e3816889234d9eb2b71f11e81f2e73388
6571eb897d2fefb16dac3b41c104b94eaf3995444a644a0b70b333d98818ceed
28faa48c7c2044803b96319dba0e6d57b3f31239ef83a4258285d47a0b1084d0
d6d12a114fb152ccdb432bf29940a7e97373af3e0d6768cdfbfa5b7613d4ab09
a453aa7b8cf62416fc65c822024af1b381722840dc1f1e52fe6babac08e646ae
41fa7473afc63c8b14e2c266bb724f03126d4ab5813ed9b537fd7237d3faa0e0
94b876f5c01958c58e69545a5490650fc58a2be4e7053c5355ff1d3b40f555fc
667c9c9c7a1ff38e530a553b175b3ac5d485141ebcaf59f6cc28ee5a1bd68332
9825044bd82b6678aee9e3f1867dc3de4b8783a62c120aecc9feaf8c410f5b52
56e7389b3c5974fe0698a1840acce5bc369774b8749ca1100b587a884783ce5f
f199931859751dd08819337307b98032142018c009e202599ac05796452a47ae
649b43a269c238cc97d67e43c1d965b4d9c5ad7c72aa76d1bff6634003d4ba48
6f616a302b2ba8ce7fafa7d66974e04453e62e6867b50394257275ef6cd71ea4
6335c5acc30dc0706c8a151f8fe4d3c994c627948d2f97ff03b4939f236bd869
6f6698c7513da9bfed9d3ad996b48110a3bb7255687661ee7e4100e93c7217fb
1f7eed80edb4a37635d76ef465b221b07cb61a382a4d1d9cbc67760ac984a169
7afc2d74c8473af7e6bd74cca2883d2f425866ff92f35c0317ea8dade6c65ef2
650d1118312ba133d95ce0a10181e4d42c014469147f9e2278bb166bbdfa84c0
5b013ea7c8b95f09c4bbd93517de8f819a367096dad8c9b3c1205b5eb0c6cce9
8d6e8c001214c82f513e9a4b783a2b627394bf7398e991d3e328ca6cc402dc04
58e6da390421ac5b2b6ae7e7eed42dbac1e14239aba11a109b541ee34cecf2e0
af7a59d2b56d4d1c32ec5ff71d1001dace87e234744a9fd7dafe7a96b2207346
d5e7e7f25b804382acd48da2f4c4fa570039d5fef0489416b7ee8180e5c12f74
420eea2af511704cbb25f5e593966fefdc0b49454d8383e845304fa1df1fcda5
7f3a3939243c7ae6ee9a9a2481a64ecac2528350d63b4b3e0b29cdec79dbb151
fd5977a6434f43fd94411bf725b8478fe81869728d84b6ce0ef25248ce666bc6
53cd35da36ab03652d61d161bd1f89cefa9f03407f6499860f5f7ca22c7e8300
4909c2416f4f1e755c523a51eaee6ebd56b5a6f948364c2be103ad921b48617c
a25ea03a21ca72f71bf5a9333710b4f4c8985a5f1691176d7409ebd668ab3685
dc93ad8143b3e6596ba0b92f5db3cf7ca4a952ef9085af0c9b8b11cd1702d9d1
f3298fbdd1b8ecab6ce9432051dcbb32f731fc3699a23088b7a390112bcc7f89
8e881e0103bc683f6aee392246066fc892cac79476531872fc9329589158c9db
172b7b0c541d3c42663be2a592032c6b7622e8b663730f29351e7ea57cf3292c
9c66c1e91023e509700d5e4d6cce18fa6f590712ba5b3358230e9d60c22df8e1
0509f8c1b4c14083220e390230b07c8175635b3db4b2d932a06b22e3f8bd934c
12f4e6cf777c44872a0d17279fe6b1e0d254754430fe8eef105ec2cbe4749c50
1927779efc56f1d4e92b0ee4a93c2df155cdf70893a7543178580789e5f83773
01bc099a787cf5500422c589274eb4c5e591c2eef80e9e2e6c3647613beaa5ad
feb7d30355ef183b3f48b9f1c2bfee273b78a3d90b637647b5b3690f6a2366a5
a09468aadf8cfa8fa29b4e91b9eb2dae524cde48c11265ea4376782f87aa7eec
b9fccef7768f288f81ead39b3e501c530978430567d79d64f7e8ee74c0cb03b1
81ada2e23e7ce60cf748f50fa4cf91b4b951a3fa9eae0e33a3cd439ac7939f33
38b02468cd9d5b850940d19ed248d790e2731485fea479e232cf542a778c4a77
e6ee48e9c1ecf4fa5e6d7a7456d3e69f07ef8c584ec8846f00edcda3e9f0fcdf
5c2814c22acfb70aaf5f833021890dc8f358ec11da40eb0f19e20a49bc2fb515
5afad23e0a39889dec5e4d83574c199db5a759830bb20ec9f488d96fa0b9244b
0d1fcd04bc23c69191566a253a9ab88dbf225e026caad1a42e487b83c49f15c1
52e45c4dafd77bb2e6122a56ce64390328bb65fdb0c5ee8c9ea19a160a1236f9
0f2c8bd59db6f552027299f6526360b9ce60eeb092e9a2099fb36d9211191e10
36af271865895374efee2430c721bcde35c12e12456b6038f9e5efcd5066423a
11c4084b420c252d7c03d5a7c2ebfbc8d291f2dd3166d43933d27409611d8b89
4d7553fad0ab4f88b3702969d3a06441bcea42f041bdfb556f8d891f060021f1
d6cb5e4c987751ce8ac3ca29a674638b9a3de2cfd06811c5223419a1267d8e60
a41945e9b69e884599b2002adecf00700850a750697997519815692a32db8e32
1c45f7c510b3944bfd3640fa4e2272ec4162f9b07fac9a393fb1ac0436ae8a4a
9b45089a6137623807a0a7150c0861744f81073c1288c57c4daf8493b3f9494a
c0f6398e92ec4390563f0a49fd00d11f4a86b1123647b26788d00989356e7e16
e4c7307a6693872bea8a4cfc8997069d9761e12956855d8bc8fb8f2512059237
a93db9d36f31a4c1abb0076460f97729b4f7d22453db5b7e2435a1ccb7a323e3
01f19d5e7c75557211fd85b129de7b8831fd30212161529448618066351ae970
a07117edda77d235b775a2b01353d9dddca520c0441861cdad8f064f38652602
9894b55044e61f732a464689c0a79b99fdc7f63c6ca32bfd4b217f49965e0513
b1c1f083deb87800466768a180f4c7557d56bffae4c2ce9becf5b8acde7b16d6
5f8eacffbf82067d4e0247bfc0e6b1a52f8c3247c7a3df58df7d7200e5e6db54
14e8d59f6dae4c70c9cb75d8760a8add66e93abb93888a071b06bf0bfd430015
5599ba6aa6f6c272dc063d5b1c18dd107e1e1f41fae2852128bf7d2545afa91e
00defbf15a251b519f989ba4f16e87ff5a5d499d050993c5ac4fea19c5e4c129
aa7887135853a95d7b22dff24bb3328616e53f487fb9be894053070e51ae8c0b
a5ab683daa64d75a8276b6c1d88be6105eba29fc13c92ad6d2e28efaeaca9d14
b7b7b8420c426f38a6db11bd052a05f00e92fc43e5757fae9389c14f0aac8189
c135da5258361760b33b9dd2ead7bc389203daf1f2835e895fa7bd1444881dcd
5b6d7580b68767f5c40042593fe9b0fb5d0ee233252801fd69604ec6fff875ab
4059a901a138180ab33c1ac344e823849917564257195873aaf679a109dfde2e
d58fe1e32444e993095116f5a45d59914a9ed4bc494a8c2d976b7a4b11c9ab27
a36315e9daf879af17d5faa52df8efd1a9e44007c8f588c8d514655d0d183019
ce530329276dbd233390708eea150aced350d1729473a78f10f1d10c06d4d997
0e3a21895669ec76eea5fe4f29b04b9e8b16f2cfac1552698441a68ef7fa2a24
610f7e9bb86f1307c19085a12ff39636b0692cae18fadc0fbfbdaacd4a66a6c0
de9072e875aa482523fd689c6c5e9b374455be0210972521569801fb72e136d0
502fc497cd662e9f50a1ec85ae21cbbd4ef1864bd2199193d5a7e84470366099
c4b6aaf2531f99de9d3834def7c3ab5a5ea1870ec6cf669fd700b0bb742ac78f
0c89782e984cf87974c897b129f3fb7dce25f698410914ad522b4821f6aa4165
60cee8e6650fa25c3fa622032c4d6d21cc89b01c1123b3a8c633321b64989a94
a6f2004477393cd25babb63820ae1aa18c0bebe36c6755561eb5b3695b34321c
cf22df3dd09df4902b84b5281d0d886a76578fd05abadfec5f1de037f0617f6a
1a684c00728ad411fb0404c12d605860ca307b6208f02dbb53cabd40bab2ef74
5c3be3fb95d45e9937447701ffd1b84191f5a5500fb65153d15e404cd3ffe0ca
05f1c6b1b11a4c8c104c3daf469e5d9fef70bda6ad8dbef1b91adef7c95bac7d
77cffad8e3ad853f129ea4f0b847d7249948d99344312ef8665b277f500a2c9b
861eb33367d5c17b5dd33746c30fc57cea2e7502c1fc32d56d784e116050b828
f3538d9f723b7239a42b414e970c5a5fb7f2cf35cf7a183c7619965a0d735bed
518e771fc3048e8e19069e4edeeba8f0f077bd0ec2e3fb082834bfc524412c0d
513c924ca1b08ebfa909d32af257526dc759eb01b9b3b694e444e2f32ad164cc
8594086d28bb8f930dc14e26bfe1be2c85b2ab3bcfeda670a742fbe56f457b6d
1859b189497e887a312a94da00b963aa33030c7df88de7170b0892bde9dbda1f
701837090910ce2999b3b5eb87492b3b471a4f6732df23997ea296d977a5b16a
bda9d8cbc90a1b31cfdb1154be44b91cb8ffcd4b573f081b44f8c036672438f7
0d5a58ced841f828a5b94907e276a77399444b99484ae7773245b3a833fbac76
c29e14e6c5c624bd1d72b40695b8aad9e8ced6b69f7d800d55c6f26c8ee2e451
343f5def6415b3068146d69aed62e172cb8f6288ac346ca9fede4aa559c9c06a
ba02f48e321a7cf52547f1b24b788d8edd9692a6a00f2f8dcf3806747a3b4e87
12190f0a5b223310421a4a84043d86fa2d21720739588dd06298b1c28f60132d
24bd38672978f0abf485c58897ed56fa7c95de4087965feb1308f5e596ed5567
dd30d3c9d96c3bd22fc10a6e7c53724da727e0426ed9a57d345ca532962403b6
a54088e6492f271397f9c0a2ff622c13f772fb4e5bd8e549ff0f41bfa0febc9f
989b78425eef6aa6c39bf32ee73b8b541c84603b5b31639d70cd440504b3fef1
553bc2b90def258d8ad43367c647b0efe5a44b0700a52a9cc66d7d39374b583b
63678a118aeb4c4af891249ac59c568a75e8dad2623a28d2eb2914a6c6a74d34
5767414ad9bdc6d166a0a888ae7eda6a057753135c917253473d52bed3fc5df9
92d7eba530b8d252b55dbe3760b5fe29e3fa742940373b41434c614fe493efd0
86ba98f7cf889600893fca124bb3bc48170e60391c1abcbc741c22817515f895
b0c86db978724022a065f021087e5d5a9804739d3bb34c5ecc339be5d602f189
435ef9cd839854647c83bb84377566e70649576537b214ff309a5732da08a5cb
1994b8d782e89eb04b2df9588bd1a38dbd1060f338a045d71c011fbde4cbc7c9
c192266f046a7f6c6a9f8525b07e31f9d42f985b725ad22d251cf79107b5a588
fcb247bc07aa2298d23f97c95cda1f449486fe2d300232cc0ad0d99fb8668fab
b7908af822e8faa73601fcc6ff04dd19eb799b9b8419ab2d2be0625152e6115a
4c2bc96ce83df5fa588464b36203048e560bee965972eb13998bc851128e401c
596ffc7ec768c674204cc5892ec9e2527c3e93fbe946980e5bbb31fa591fa79b
873ceb87aefbb4dc46ebe48813466a8ba9186949f2a0eafbcf01f2e71ee8f83d
78b3cd308f41d984c95825b9c4022b7e510a9b01dcd18fd7a66458de921dd096
a0753da6da5c7683adfed9e7cd7d050035e82c0d18b8bb6478f771fc08263923
9ef905de416c878f94c1fd3a35cb6e475d86929aa1cdcd4c504984164bdc0cd0
ff1b582c99800bc173825bd181d946c5d79cbb0baf10a0eaefe523e66f966c39
33ed33c9bf273cff139cd43e8e3ce5eb09feaff920612e40fc1256a3e722a78c
baad8ba96f42610a6ec1d62b3f29e9f037c2e24a19d6c61d90e167299e030a01
8175edbd931f2f8b94d09fb5d72eb9ead9aa5b99a64500c99f8861379eb9bf1f
abcbb1508d30902a2d2e2868c95de74ddd69f06ad195478f196a3088b34d1da7
733dd58a7739785b5708cbe358211026ad8f900d8c1288ce1e78564c68b58798
c3a6a30ad6186049b0596078b1f6d1653ba586ca1b3970c8be5c6c63603d3351
14a3adceebd85614fd7d1c355d6b726026ef2c59b216b422d837f459a3b9a107
debfef5ec50530b7c3fea6c381766084e1a3d0192c48414a7e0fb73b0d4c1f50
3e8d2eda0676449b7d4911d85c2f340a0770681c8bc9844d48032b33b4173236
fb9b982703f035627cff49573addd1608ec36d9dcf7f557ed591d13f7018c00a
71bf980f574ec748d9956b2bd8a1a425a321b3b455bba0ec8f3b0a5d20029bde
371fed9a24338a8cab0f238d72acf2dc18f06660da99a0f23f011ce362f2e2ce
44b950948a3d47683290e74447e2f7c778003712cdf63941655009a7b5ed3d70
7c641e3e63c7476e88cf3b3240
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMBX10
%!PS-AdobeFont-1.1: CMBX10 1.00B
%%CreationDate: 1992 Feb 19 19:54:06

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMBX10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMBX10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 12 /fi put
dup 40 /parenleft put
dup 41 /parenright put
dup 46 /period put
dup 47 /slash put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 58 /colon put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 73 /I put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 88 /X put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
readonly def
/FontBBox{-301 -250 1164 946}readonly def
/UniqueXX 5000768 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8
97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc
8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011
b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415
50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e
784c6bf7389803d9450b0c21756a017306462c563d51ece66fcc9c831843ecae
1fefc1a232e2724f7baee428ae03aadb95c3035345c15e9922fe49e1f2cfc980
237316572dbc57064edac9b0db8913a5e2d45e97e19a91435ccf8adfc835b585
48e74b291446d689c7f2f8c4325e8356e974ae30c3e2977477baeaa33d141fb7
80f59351e84bfc88c87b3a4a1d25e168b9d134554f6a581378c7d2d6eca8ac09
045cc3a5e0ed86f147133f094029e3483bebc81cfde69942cf645ea20d0a2b64
5140ccc2f9cb4a3d969f4b0a79cd3329b440dfcff5285494406f3dd08d804c86
df191e57232f6f1f83df6430f214e03fa5412b1e13d83c60c52a698bc9a38159
19a64162af7b83a9468fae9507c6cb55ea80df8c696dfbc3296c663902d77e89
a181502627281181ac8624f65be9de5fb32f056cc7dd7cbc7366a91717b5892a
34ef6b441871c6993da3a81afc9bf70ff3842a21a29c0e49da1ccba37dd6b920
2702db510b8b1109acf4c27ee8d676bdbd16abe189f34a9b61532eb777457698
cee0561838eaab2d3939c5093afbb215bac433d1918c739b62566906bb2187f3
378521fb52e70c18886e1aa15f53a1f8a169528cf2ddd54c203613ff88e619f2
6c9c50c2c3b8b8c868a88afab1dc8472e7b6f3f992a161723a3c0904865a7c42
3281601eee91f35222c4a71f343739f102eb43145a47e4fac3bd666e4c114a90
5950618ecb1bdc29f90f6ebed1d8325fe6b52e14a8870e9b4bb088e585c71b91
493c12845a101937e3473ac5e9ae24f7c358f06d590d7618e1a1d5834d87621f
e3f5432b655eebd4ca61a7b00dde0aa740796ce88a43d1c6952f8d2ca63d30b6
dcbadbb0dadf13150a442714675dbe51ff838f2e47ebe8cd44f1eac6ae5b6ceb
0b07af03f5d3896ff935a198aa635e337e367e1e128d15e31afe3ffca8245e41
a3e17011340e49d52fa1e322b435b4f7f2f49ae01f6a319f68d3d786c24be810
1e1c975a8feb5dd7e4922e00e3a08cacae5a945e1e8f8a20f1fe9534153307aa
5ac7424759743e08af90b9bcca7447375222a66934e1e47f97f8985b0c694a87
1ee7eea9e0d7928e555a83f7456ba5f235a1b5ef8bad622dea313825a43446bf
0b300d86f38133965120d1dc43eb1118d1fbb2112412711a576c4cbbe90ca05a
8865da40d9bca6bf94a9dee1596b6ce5af218492f0f13797305d5ce027a15f62
e97b1a96f52bfdb35d7fb3291fc270beede6eefa93e4979c0133bf56ae6ba3f1
5780cd62e482645875d638a9a3452665b2f8c9428faf9fa1530a7f486ddeb242
d6b88dee354fe924ab2f20bf5c8b3c5beaeee1b9229a62cf12ea59d410305ad8
e012b5a77d5a7665def45b5d883f52a159754fe99a1408fd1e8fd65beaefc7c2
8e3394ec653526390d19da5f8b6b7234a2425bff7a8cf4cd6351abf48da208d3
fed9cefc442c571b71df8dd163cf5e8c316375f344437553d32a6138b076bdd8
97b615e64a39e2afe725cd3cabb9b2a1cdfdd6e6f18d274a1b24a98b004a12e5
0d27be92891efc019108526b6835ad5165a39fed620e9e00a1782ebeb525e37c
b6628b4203b2d029b113bc314e82957b9f1fa22438b7360aeb8ae88048aac7c7
6f7e21d717be26d3aef96ed9d3941f5dc39ef7142cd02ae4ef3490fd72b8eb16
34aab87d4de2a6f0fa4e3af8e9d019b06c0e393383036cee8079eb9f0a54f088
7d0f5ed56c987b89cc4e96152e27231298267acbde9e7e846906abd144dbb41e
d57991658ddc4db9e3adf0a7e3877adc6d9143666eae3f5d9f335b563b09ffe5
cb2845dff2c1c7f1ed7d09c9033a1e9ff7b925ab5e110a9b56b86b1a4b4a8d9b
698ad16e8a004424ed0da6e9e5a3aa58148d3b6d1f0b6036e79342631174d726
afcf4346ee5ea1e803d5bce9365df37e55b10450e6027c5ca7c5cb636c5d621f
df776a189d0cfb624c298546a5fd9905c426066c739358a038854213ed5255f2
d483ede1b797094ddebf8ee1353e4a271aa14fdde972e895b2fa207756f9e07e
dffb6b93a1a2cac6bf7b883d5d0ad260f21e90ba79dbb3ec383a78098b5ce782
6862b28b5febe605ee4fd23003317c465827e8a0b3f8ff46e56c56a2cb613070
ba268dca64be0dbc31afcce10af74ba4c9b38df3f4b115a3d23d1ea4c2a10e6f
da9dfa61da3ae06fa0aeb3d5e558e2eab409b1deb5968f57d7cc972bc697e822
7dd02f460e2c2e70be53daf6c658895206b78a8858017a53c5930caf5cf6baa1
f5ccfdece08ce7bd1d3be08d3d1ba662a8432a3335f58a87186d841d8e29390d
240eeabe52591b67e70e766eaec0be91b545a54390858c63b1bb8516099bcb35
3e7bc0c630ea07ba36c887b8bd61956c27a81ac38f429aa487865ebfe1c9e7ef
44c3bb72d659c13d6a8e0ce492e1cd6182b172a292b35ce2c72281c403b742ef
0931ce991e948f1e6d7a138355ed2e5b617c16eebb48682eed503948566d1a6e
88c6a92d5cbc73447d0f0d6b8dda91246de03bdc22f9eb9fce1c4dbdf07381ba
95510fd100fd964628c43086864e66a3f871f81c54ab8395976fc292c4ca7785
84cb7507d1bf58be03ed846b49108d68cbc31ccabe56cb11d1a2215881e6cf72
187a40a83530c929e17e3c1dc08e851b09fd77aeb840d23b21746d7bf49062be
2f485f1c090e29991d4f1d7e54e6377ff69b2f1cfd93ec756e95faaacaa241e6
aca6243043f6c83e52af06124560174a1516c235ffb501b2a6cf6e20691be7f2
671cbb0c8cd11392852a67c61c379f3404bbde201758d023cf3af29bd114401c
4be27560e6701735d55c8c4cc6696a5d3511bb3f9dd0455f321f6f1d90ce07c3
f87907731d5025d9bd5d6398f9a968f6ecf427415e1e7ad68adbdb62046be066
8aa639a5ef01e2c66f3c5323baaa24c99767d473fb90c344548cb62cbc86ea0b
95b9629d83644bf61bcc479a16a3a1f92935952158f5dfb468c9cd3d5b0ef5c0
3abd63374d633b91047f51866006170b4644a9adfe24b8700d2ff764e29fcf44
1d225ba051b7aabbc09a2736d6a89afab7b620c5a23e77ce34c3a7eb4bbaa1b4
6e4152a3b4bbba9d94a3a4159048fe3e097a936b2ab51512c84cab1f2b083433
4b640756e8262e2345be1c49f91f392ace7c14929fe75610885019dafe4b12f8
4c32019e47107a4d99336397b4a4525e7a4f25cef6dce730337f593dae9bcab9
f6edb8f9e2a60b3708e976d7fee19bfb3bed00c3f7ff26100094d600bbe6fabf
20fb41655c4b8b80a9d9c86421854b502b0d15d7534e0843ba4e2bbb60ab3229
05217d2959214a9227f5856690268ad95a57e38f8d21143b542912b9a137a004
de42f107df6f0092255474ea6c24d73764a4796410c8891f3efb73602b52ffd9
e0625340f8d7bc01f3a149c8c7abb0d9c377145a69963c6ebbd7692708967300
1e0a89da6e8aa7816552753032e927392cf88202d211c8e68d2630fa6a7399f0
a4429eaab80cb9e989c4aeea6d867ef7a7ba05df527f632b6b3315e2461057d9
d12cbd962611656617f56a218bf33e8f455041d6c1f0a7719e1de4c2e6c677f9
b98faebb5de1564878f5dba24c9c1faa9675d15f8dc1575057f20456934f7fd4
6a38ec9f3cf790beb1024173658d7665ed7782c00c64caefca78d164cd70ffb3
82598ab2fed66812916be5cd0a919843c5205b61cad1abfee60827616f428f7b
3b97e89e77411f0ab4a38442ec984f19ccdff7f6cbf9ed081860d4c70ef532a5
70abf4cfc809386ba6d1de4af55652e6957cb7dff7b2e7af4da168e0167a172f
32fa0b5fc58fb56f4713667b393d97e362a515c9ede7e81cdee1dbecec5821d5
7d8a764b6165ccd40a1b18560b7c59b71d7e352053c4b01c8c32d2dcbdb1ba0c
d10ded48e35601735731e33d6a3c5769c77dddbfbb74869da57b05ad648bafdf
57a271781549e82fac5216c87a63e1adae6f87bdd672214cdbc35bc760107021
cf58e9a96287d43f27cd4e88ffc3d9b96ffac0465dbe6f997f23e994e1093def
2732fbc1898f6e2e5098530529e291561eccee35ae4ea45ad08d550705beff60
21d5035efe1d98cacf759891cc79ea3737861e6ccd153597a4941370b9ce1177
38b7566297ffdb06419ff2d8e9455832ebbf4e2289be7f83fad3b75f4bc75485
a2701047921f8efa6a40d490bc0efb4407e765d4e769561ebe70c68d5dd392bd
98aaf6afe6eca354218e8c472dc78ea1a7717ea9a907b4b157e097f0a442f001
21cce7d099b39657bedee5b68bec7be1b66eb765aa35351152676ad5334ec86b
6e045226ebc5474761f1d615ca9e34ea86fe951c717bc8925e244b0d0138cd73
d7efcdb95b4a0ea27b3c05c32ec45f83ad89175764d9ef4ad9a4ab5d36a32091
493d9a89aab6c5acc99e7ba4a8b81e426441f11f278d83ba5aa8bc6f5024ac91
9c5ead46414ceb3f52d20aa362a5fc0d025899fe405217fad2991ac0430d5941
a6d6d83abe876066399e2c05ab4718444b21d4b39838fedde42fa597108ca0b2
6ed0b795cb2e34030dadcfec1291e6382286b81f87c12ead805aed9082705fca
7d0ec31e3b26e49c2554760d637b705c62921bf588cfe3809ea808e454a3b76f
3220df004508fe112db946c477139fb6fd684d78a945cfdc264d9e3d1e66a55c
0a80d307380e6df2ddadb1d274febc5a4224f1b433acf81ad1aa356ccb23ad01
66e9686ed502f2d4218a591c50fc3989b569a03a591eaa2f6b039fb9104118dd
48ccf220439fdb955f9a298938ae81d14f7f8ce25c92765bc25e4ac1a27dcea0
a5450ced1cec753f3446fab5aa0b0456a7584fed139c49e30513ffa1d91d0205
9f06e5a0f7c3aede13afc199c60078b0e04b7dc2718ca3824eaff17a579fe0e3
ae89d269834a6ece40132c74a4fb4f3ef730e940efc6b4f39d99617e102a143a
1fcc746f475aaeed8f44fee47e73157cbfeb36df7ffaa77c46f84e4c6ded980c
e2ed5fc67468bd6ca096af1fce22fac3dc511363c51ce97edc10ef5f452d31fe
8b698b22c8663358c4105be01729a110d0372bce376187ee2e09c184f0475a8e
c6eb49fa1de3ccbcfdc5f208e0628908a5c63e22d2a9a6d826b8a526548b9ee0
246bbea3c859e94365bcc50efd5d49d730e907e1f81c31e46b4f7e3612b037df
d8838f9d7e582767ebe0854a782df65612b2c4c2c5d0e59c6bb1f131f0a7e6b0
e2f10c295b6ebcd0dfba4db46f7a27a36775aa0d8d792ff0e62713a45450c1c8
a9ccd302cda8d122bd2a5f4f86961e66ba2de187420e126b0e8bf7fbde27acb2
5e2f7d65b5c0f2196bc822b5459dadfcee036feff93606980657ab0c478f0192
1491c55d8495751a7170ce127a87667df8e6ac40c5134d62f910b86f375bd57f
142ea058868be32f31a45668e36c3cf2ce28785bb48198a1fee1d08621f54498
fe3179b7b87003c926135ba1c8cf62bb6ed8b381ccf1dfc5b73557bc55d2c412
a0f937edf1a98924b54d16d9a6f37eebaa90bf2fa4c2f6514a24b77b17c19a8a
cf10d4d1e1e5f17b89d324138a2741472acb53069ff2e524bb0a7e905592985f
4cc7c48ff2795b666369d6cc97f514f0eff85484022e983b70d6495f1bf20029
a7e3d696fb61146ed89ff0e8aa55e6360189e53e84c8d46eb6222c584f3a543e
8050a1c04f8f026cd58f74632c974ccf27d248a538e05c9cc155a159f8859520
31e78d81a76eed2b1478cc6593283401ecf13a6eb90b54e36f0589ac51b08bdc
52d007c84ae2dcfe16f007f4ca14a3dce9e2ed7dc1d59e6b7e1d7f98ef0c92f3
e8e176e0cdffc866a9973548358e9a6eb9457589d730356dcd0864bf2234d740
3bdf83f481f36176f44271dc11f710eb2ecdfba2b7194729a22397c48a2c4f25
56ff20553666b479699efa5d6a81b0756366d6b3bfce14313025d24a49f6d55d
e7165fa72b1d498ed32ad588e4de9778f547bb8775ed42dd39e3ff837de3f287
652f3f94ab91c0c07486e13b6d43e0b04e9c814eb1002383b0c773f8fd511a63
c9750230bae0f6b8dca9ab6e48fb1f3c48305ab7ffab8b9e766fad6787b0c56b
4cad61ad0bde80d9e1f41a0c62cdc12001074b2884c5ebd9f1ed4e2d6f9a7ca4
410f7ce272f2a58f1f09cb0ffff740a08c9b1e5c07c99becc1ed22fc83695512
bb1a3fa35c0617360b9693877bae1ba04e361e3195cfcdaeb8a485fd2c31f07b
b2c6b61ca6af7c2110ba9a4689045069b598d3b571ab11df944ea1b67a1c733c
e8b1c1ceb19659b08d662605c6af7ce2f8d7fb3ccc36c9b9e9f4083d7f4e09eb
7f840f9c6e6cea9c4198e2b8c1388f5b099f8c1921f4d103e4ff2a25ff86aba1
cba1eed020ce199088d7f0aa8c24102dec3bf6c2118833a11e3e872ff2b17c0f
1313fca5f3a9d1db39fabe892e7acbf5f85d3cc9568a92c6b8aeed6f1559c499
42ac8e9e8205199277f7c91d472289b4f3a4185f380d8de7b3127368794d338b
6c11051e816da74a0d643c0af4324afb022af60917857cdaf1384c47c3360131
b07e08af20b4e616f191db8ad115ac8bb5360fe9f82984317caa55216c94023d
b1e203bbc83f57ed8abe0e1926da7f9c75099f2476700ba25f02d4d4f37bac33
c24a170be47b85e0df88ebff97970b026543969ee04b783c1878d85d61c209ea
89b8976acff613b45d6fc6e82d3d40e178433644cfef8496ea78961d5d5c34ad
4d5a2e9f114c2b4619e709bbc38a2a0525574e14f373f0e95014b890858c035f
ee6df892f1355005c2cb67a0ba31c3b0d131b3592852b9f06dbda61357759c89
de69559c84bebf6e75c2acca3c489c70a61aeecd49e8db451e08a724c8ad1470
fec5bdc0cf4011bd9bf9c51251d2d2359d881f1ff26e78c78658c9700e739160
96d01c1ea7fdb90eae0c59cbe7591ed47f874e3d5f83a394b71922811de5e95a
fd43f434db180ac57caf643c880bf2b2e99af427d586ba8dd457b6d66943db1d
0f0a6367c4cb99b47c348d442a0423f0ceacb961aed6b9f34dc1e960ee5d2c06
7f3e031d0e33ba25932d18ca9222d736724f125c3e6e941617e34df87ae33870
5840cf49e0465925ea3aceab77e361c57ac63934c3cf6cc2973778fcd5e3bb90
0594781ae9750b014cbc6910768af1ce924030939d80de42d0768b0b5708505a
0b537548d932a1f417452826c15bdf2d691ce6423d9c9d71f72b1ea8fd0fe82b
ecc9033e53457d0cf0806f061f38957b6b2b3a56246eaf46260ecf98b0639ebc
2ac5788ebc00de0f33e6ac559a1758974fbf821f1ac92c48f0a98ac0bf07d9a3
127f7b118ac0aa1dfcf4e3f80bd0730b6b6cbbf24237ae50ae48a86dca7757fd
35953d5f9016bc6e9b7ba75ded1731bbcf9fc4eb1603eac15782d32485123b9e
94d743983b9d62a12c693b18bce110fa7e6ae127da7bbc29b6091adad7e02a79
5e0bc4360e88f4b360295a6bd8f52bf035f5f8606d0823cae4eb208a0a67c6e0
288c6e4741984c1a25faa65e1aed1336e80e3129cd600eee8d2caa69c19df5b6
d988876f306f75bda8b750b152ee664d132bdf2a349963e0823500b4da22b502
d9f44e802b1a776db24812b6891efeccb23631c69d77d9afeb199c8056f6d8f5
b04f6fe18f09353fe6ee5a6aef87ece8e9aa2e050e33d72c8732974d3da84e3a
d47eee6650f4ec4d74b992548ace6a28e9366d2048a7bd7b255c4eb768f9e2d5
5eea4c882ab55fd52eec89444d974d4ba325e84578c2b7c1eb603b0a668b422d
1083c22e83081511523b9a797c41d8495c4bfa46237c6e13497f8cbad481e963
3d90edec57afa346298c66ab473348b496291bb474f6f929c68f6a315b670f3e
e7582bed97a00b51b58f12c792a7374b777933f76136e791a448effc1dff876d
d8458ab3cc2c224ebb60e4ea5980f489fe185d315d662de50154a218d4b47ae5
982ea6738b713751ca816b169a2415648d8fab922f2775e90e839677c1e32fb3
ef66c6947930ade11343ec49dc3a9274bdd491a4b6ef51c52127869a0017757c
9412563e3e3fe2df2ab312668e51a607409c4881bf74809a77a53d40c3b2f0bc
e47e0bc8b203c7d31043e29b379e86d7af649c626064d478b26776477d5a5ea5
186c692341a848fdd5352d04f6d0784f2c68bb0ca1ab14a7679b238ca562e119
838b25d2eddb607113616c40ce0669756969fc8c1d3fe8763fb9cf9d838c0d2d
b2624b6c8cbf511e2c4d92fde646e46e46a0a9ce8a6eea6abb5764ab52ce2145
d939d5d1bc9caf7f94713a7d9ec4b76f9e661630070be60c981028af6420d943
bfd3ee3bc926e47950f3e715f4705b11883fc38404553fda90a4846aa6de0be0
59d8aabd831fb2ae13c6d56ff66011ab03535d1b23b366efc5e22039740c7d72
66cc5cfe9fc27c5431c278eaacd2002c64cbb58ab0f723c3ca4a1bb9c9ec22a0
27faf09a491ddfccba369ed776e126d516a8cea84ba173b2ac9fe9d2722f112d
8beeb4069f18f394a3788c64b96bfea26c44de8928a65d920c82885f09b16adb
4baf3e17a328e9f2da4c3e728db1dea731a3b57ba56bb0885a4c65669ea4c2cf
ae8cf7a5b404978c0dac8854681c6c4d468746148424ff2a70bc50f6caf6e32d
374ffa3386597d8ef31f6f37e0efe53a2eb9cb0f49ea7bf01ababf12cdf901dc
c109c4ec0d566dece2c01ea29f397631ae38c70493eb8e0c7d88dcec4227e11a
21b5155fbb3815295c9b9af84049a722e2631a908b1638c589ac21b2b7e6aa9e
d9fdcf1c3ef694ec0f307ea3a9aef3d9d2da3dcd62c33bd7a7dd1a84422cd29a
445073cd1ccd02699b7dc36f95a54417f60f58623ce7f13d19f173af9a7ffb88
c9cb22fcee303c4b35fdab95cf91242d7d8081f91cdbf9f47f8d07fe8f822749
fbae5716e035560a1866275ca4f1272cdf8ca16e1ca1e20dcc8c4431cea018c8
d477686bfc4cb07f451640170ab26b8cfb4821fc7ea61830c89db1f28c026de2
f530e59dd3ca5b0f8fcdb18e11b9927742e3dfe8060dbfc898ce02b5e648fbec
245e8b54f8e9f568f249d0096041c1562c3824d6a23c0a9784c314a12c593478
91eed6180e242da3077146615efbcae029b512b378d80605bb127ba78abae993
b14f867da2f1ffd4e837352e07228a2c8b09b725af6f69304fdeae1dbe2e35a7
5ffbc5121d3a619c0afcbd02a442bfcc9af4a82f1d6626c42a6137c02be79d66
31abfcc38f9e876ad01ed5f72e3fbf9619860ea90deda126d7485a5c343cf54a
0859cf188ae9dfcaecc3d1dabdd585ac047deaf3ec9cc7f77667fd5b49f4a497
67f1023cabcbfa5848d15593de15803abe97bf89a23fa537e32ca2b72b324d9a
4222b33b36d0a22bead1483513b6aea7e3f3c659e8efd915bf96d833141b1858
84e0f5ac5104473db17e806055e38fb4d93a7cc8084a8f8c20585030a2dce911
001b238dd0db5ebfca75fdc2fd3d3d7681d3ae4eb5bf9347b1757c6914eb5ed5
a815e7d15038ea629003a8ccb8afd3a7270564b2bb9542a9a095d7165bbbfee8
ec38c79be25f60c6136cd30c0e96a10a2c449b414d895be27849e721378dbf33
fb46ed40e359115843cad139494809b488ec0c7268f45a974be0761275f1c941
0ce1a6ed1f3e28b6c5e2de5b700671b77c5c8e4f0e9cd309e09936a0a1d739ad
ccb2f1826e005b9d313332a735d533622bb46367f968d998f7b6d9f37a6e81e3
c7c892fcf76ea058755f531e50f7c4a6117c93f4da302ecc01d3d7c10fffef11
1504fded417d6369ea45c24af871f10ab5bc19e35c8279d3cc213d4a0275173d
26130433f80c1926b5474035272cf1189093e2ceac677622ca1e8ff3719b2938
4a525c1995f75fd9573d6c31809a359ec9117fc1fe63829b95ef9d8be91b688b
3db41822ba8bb4b01ff5c121fce92ba2ba045c3958a79083f5202b28f2f11a84
3a94c43d7809a92972334db6a329a273aa60adefffabcd6849d60dd7cabc5c75
308b170305d4156c9a795111f6a3ad72c360b7251b502a52934da6a25b3dfcd2
47cce1453afe2ae4efc26ef383927db65294f6c57fd87ef8b19f031ce956b9fa
42f5ea935de0e21bcd4b9d545f5dd96be4674e8f7089ee21dfd0aa1dc9f7c130
c3a86ddf9a1cbce8851898b25d7272e37420712fd29a05b236e544017cfbf46a
20bc998b7e1ccf3ccae5ebdbbf6ecc5b6ecaaaeb7b433e31bf2c971ac358c98e
bd2f637c02ade3b8c9ca0910ea533ad426dc358dd317e1cb24ea44399899b266
7477ceba2e1f1afff075e4e7cf2395ae96007cc562c12a26ac07e6124b30e594
14f100531f1da24f998c668a1919a626a8d542d76b5b196d7e41e9e59027a5dc
903dda31daa781adf88e412d14ebc3fd3b45c4a29033172143d2400f2188c7c7
2c0b91bcd16599e0ad6db5ecf122a94ff894db6c8d443a883cb20d65712c52bb
4bbe8445a1d40b087b36e8d56b54ce5da0ff5fa6df51fc52ec2e679f8ca96cc3
bc47409303228daa60a2199544ea5be3281d7115c93d2e41dcc509eb695c6456
84b847fb61224e51f48ed8af51d3765f31ede8908b611a94b8d29ef9303dc4e8
1a6836dd635d180d82e806ad22fd7edf9f45cc3c2fd9615ebe64b8ce522bbfd9
dc071de159fa0414a12289340c45d251a8321c43be4d97c77e52f7b28994ccd1
01226545158abbbc8d3786b333ef4e9473b8267e3082211a822cc372fea74713
8188ef60c42a6479e3fcc9bf35c2081f5b7c164c0aa116b0aaa1714c72e7deb1
02baf1df798cc11e63d93ff2101e2d618a576226bdcdb447beaf20c86d9aab58
ee132f572739cf8423008d8fc4e2df375f37f7e2875a3574377ae4be51a90156
b6e1c35690fb84dee40b45bc88ab026640ec5b0049c1dd99ac25f82ede5fa39f
b9de1e56ce2424c7c809d0eac61c774daabb363afe66bbd8de94f4aba9bd3ff5
be1b2446ddec960e554d295551783ee369b0bf5a3dd093a8c9b76e87f4677853
af03615ea40e9a389ff4bf1885936899e6a0f943eab7667bf2faf02ca6c3d7a5
3df5e0572916cb93a688b9f01345fb9902e620a51d6e11d3b4867a24e663aa47
75bf4585d63e84db3435c9ca5042670b399547cd16ae4e67e86ba34e45b911e8
a04c8962f90bda3ba9b725a3c2609f470736ab5ce75fee8c94388b81706b2b3b
45ec0d1dded3e9d73308e6b0fccf79234c29014cffe4b90aa912153b0d3589c8
47a48a325c920505342732bf504ce9b4abd384d1ac520fb720dfbd0278092661
db4ea664a5f28fc3ba38e7504b96b90cd10691d89a52f2bc0201c217c09527f6
30a363c69f238393fea856e64bbab9ee3f95b27c82afcd9455a1e33a1bf01454
65724be51e6b86378b144334527d43766862f6ca936fca8e0a72b404640b6b6e
54e2726da368b37ed65d6e6cbd83b5633a640acef1a22536d476acd2a29528bc
f862e943d4952aee9bd890a9ecd9f76f301d6bf187b4d81d2c9f62f56357fe6d
8c6c91f71dbf11dc8caaf61e5e067e3ac9d8a5b7d60d03e70a7b338f45cbe1fe
e7236e28644783aa1302ef413fbad653810dba24cc8226afd2f81c34f4d8d248
862fa3662ca2d56fb198dcd3fdb7956947195592fe3d3038be62670c9b1e1b2b
e9d337fbf2c1f3e010e51711c0a06abb0d8943b24b570482547b6f7425ce4e1a
67ce8eb08bfc3106755afebf3ca63c50da3861bc67ec66aa673f1556efdd0ebc
8f4669adb2853b5161b051be2abe488e4e0a27ebd848ea2c69896c21da835776
500a308fde4bb5b252fdbafd6390b89f3ed6cea742843740b09023c34aedc109
e06dd0d67c8bb7d9d4ecde8fc6d443e5834afc1595bef96c580135a68a5d4eaa
a28e247b8c001bcda756f26acfefbf4f931aa55bd66d6cf8d2cd33d969533cf9
e90c87cf3d96eb55ca564327c183608f688afddb99cc5ec33ad9ce2167edbfc2
56e1531634763421a4a23db12b99cf7299390ce8eef0d5833d7da4fc3ff13cf9
693be74c1a939dbbfa4f0b3c7a9c3c6d04281f87bb0059b2a99019f811bee02b
8846aba6b2e4be9b66f6e25b9ebfed54c1e7892735ac79038949888bd36ff72c
d57432c117ec2e87d28d932d874b5a6b8b8f3999c2b1b24431bcb206ce70cb97
7dd5decbea7e7dce9ecc482ae335154d2acb5b169d2ab5f51ed19e69e49a057b
0fe8db77d3cea2e58cac1e52200b88e53a19afb8123c471bf795dfe385bd028b
3c4ce51a52cd1bc6b4f82d309fffe0f6601e7f039549120519e549857ca341cc
5d0611de6d8c9836afd187ddd49dbfbd7b98c9579729b932f322aa55528ad6ea
02193c532852c76043e194d18b4e78f7ce5d42d7e6b02247e57b6f0c2bcdc0cd
400a51550cab89931069d2c4f7cd1ed8197f16ddf373417bdcb0f460dc23adc0
299b4cb1ae59020bbf31cd16607afc20831f152d96f6f28d6b94233aa6676513
4520bab84554e753189544c8da966b5a1159badaf8ac04309e229f33cee47224
3948b513fd942a237cdb7b473fe8f036edba685bfb80aa8ef70ea18485135e88
ac33e7ba66f59f6107122176d1cf93b5fff3a1a4b29e0bc6eda0204d7ad70129
0bfa5da30c4ac58ad0d2412c6d0b2494b29e55bf8fcde04e7d6ab75d052aa792
238979383857c6e0e551ce0878938641dbabc3814f3b941ce0669d202fb1d756
7e7e8beff9e823dc6ca7ed461049c81b526a872df03bf1060d4c8dfa2e4dd0d2
aefb573343bd2b133abd7d4d6654bde37d4650dc32d2b4a6972fd208b95b9b12
df46c25d6c267d5ab7c001c883ba8a48b658231f473d90505d23ed1ef5c3ef92
6c409b154dd6a670e1e46b4d370cddeb171271a1dce10ec098aa92c5062ae741
617699f12bbeadf175e4adba14b6722f2c721b1fde376215bc270aca27ad615e
c0318399649c7815caf27ad1d32532e35e69ab9b93fe2c67396a048e7129eca6
420c37d1f39627bad02468bbcc7bd423a46ffe9630d5f8c4b73eda7f3d352316
839fcfad2fe8432bcebacce42ff27450973891f9bc2fc667ef91eea2e4e586c6
a3ff211dd4cb465d2fef9984c7a6e2b8df0dd88f41ac4a0481c1de8249709b3b
4a416fe633a51c4e71a053d97b43c4dd8be1c5d92b9e8d68dc6ddb2819ebe148
4288b5d3a66e80dcec3d5386c05d5b85f7828f4972863a439c6b8edeeab31768
14d3770c51ef03a7e106270eab424ba1547f01a0105f04784ff51bb23f4262cd
fce0b19e519afa286db2096b1ac258170a600a6950021e0399fb4db4c269a9b5
69a73e3c23a1e6106bac9babd827c206b577616289e3740581bcebdb572165df
996ff1a9d680029f4b97b50060c8be7f66903d27562390d2b34c126349775cb8
f653dace41047a45ec0bdd36de411a2db042bcbcfc3b90345b8686d4fd7faeb5
f2bfd659abc165b28ef6549dd0acfe831b555e64944b053620d77efc2156e2fd
cf8505018ba2aed4f72abc8f035cf35c932de7d138dbe327b94bb3c648eb6697
b9918724bb1039412a60a98a0ddd034548792d2d2169dc37864ba171a3482f58
80cbc4b7f45a47143a6e915cbbba5e69c8bd2e9fb984722685a532f7a84da1ea
b052e7eb275039a72668706387e966d9547ed184ba1df3ff7bbd87b1db14a91d
f536dee50aaa823358691dc1610673561f191df143dd6fc10508413ce6881fd6
2b448e11f0913c82e89839428189075a369b08abfba46fbfd43abe9d48328ad7
5a943c3b9d00ed1956c4d4aeb4c3c9e0919f81559dc5952bb580ed46571af260
317822925ca9cf152e57f5f706314ebc284b7e7e11569930a231cacf96d1fd62
80732da886ddc52600a224ac6ebe7b960acba7b5b4ef4f5e8ff49a315203ac02
9b6f1d63d82e0bfd08da2094592cf8e847ad1b710de00257596f1f44e4e5dd1b
17e59e28f98b9ac96791803b919e59656f77cae80f15fa715e40a938adbce6c1
c80943b7e4fa191393b2f0c260e18cf54d29cdd26dbf1289c25183467de1ef34
8d5b38295cb6a46f64d7d5c209b382dc1a4c4a022b0c3a67012c753f16010aba
9286fa57146506e7d57ff41b8af933982fef53cbde28d4b9bf02d5da28a1936e
53ee3e615bfa0add0147599dad5b0f2e57f7815982bee5a760e5b23ae1ee44f6
23e0daf294d1be94c9a67b444d34d7fdd67bcdf851e94a99031aaf603ef8d164
ad0b57a0ee93de94e850b44cd3c822aac8da9efb23512a799a36fe5dc57092d9
720b20b68df3691358e0a59052986cd3136f40a50c7bd32c00284ed68def91ae
0b44ce8dd044e7c49016a724f9afe87d58705e0aad01de76466f66ad1ece7b76
64e35ccd86f7f7a4fc35cfb59dc3b99bf6d10ad704c784ab0e4f06529d189628
0c58b426782f59fb63e0be07a1a0f6f1bdb4c9f3279c789e8e221f31b178827e
d4c469ffefab08a6fd6a12044141f5a8ccbeedcd6ee6f43d93e9d8fc94e4a5d7
6ff1496ed72cc89baf1734b22f4e867484438b3c1e20a9da5fc343c5e88e0663
7cd066a6c6d35b09919e7c04a7e8904e3b3894edbd7c638274b20dcd5d7d737c
15e6e63de6ca1cbc8f84fcfdb4981f366d7815b2ec3e32a52de6fd91f896d01b
85c131ceabfca3b8203ab23c5cc2b138720fc3c8abe78f5690987e7a93b3c479
205d3ed9f59d56fe0c8d024f2dc8e874e48b017dafdf97bbd5b1a26f3e9512a0
d31cf1e46d773456e5a4769d25ed1720691449235ad891da1f62a207f5fc73fe
555c4e04b67d8575966f17cfa41ba3b2d214669a79019482280be57a43734bde
af2db166ba96c2ef8fc12d852a92e46d9f112921b73d63b34b0c7313c4117222
e3f8ef4a1dd80dd8cbf9f6f8332a0f949bc0e23d0df5e3723522c564fbd17457
ba80f2e4f6d3dd4bb36f11def220a920006a22f513187954ca216b380d8f6f98
70966ad20a18025bbb83a80892ac9b751e05ca51dea72028011eeb94fdbf1bfc
cd8c9c9f86ecd4ad415d5a3a19807d4fc00dba5cd6240e28b138f4466ba9bd79
6cf9cde5c09833d8fa8220c81aa63b2ea9fecf0a8034a2351afa207322313bc7
4ffd245f9a5e8184e5299cb4f32c3c6abdc5f26946a298750a2429b1a08c3b8d
e7b14e28263835d9a893879394137b1b8e62a8ec897cf7869e100fd787968b11
524f833e9dbd89277b192ff226cb7595b8c89b020651b2662489ce59fac6f538
907506ee91cdca9c021113bba8b8d65f149a2dc5483f3f1fdaa4b2fda75f9d18
9ea6acb7c4476956eba8cbc5ab20fe60b2a70c5e2979ae386f13530c2610b731
a117f5db37c9a1339813dbbb6a862872da623ae27c85fb2636156c4e67187ebc
9cef2b8fa593c843c4416f2076ba37ac6b8ce14acafdf2e44ee2eeaef019e3fb
20738b15ff296f7bf8f77c968939a1a2e545d62bf9a1c6582b5475207ab80d0d
8eb1f7e4dbfe1339b37f0fd5db6a71d3d4e56eb173c9b229bb6cca3a8793fe19
21c564dce425ee446f638e6ccd02f6391304283ab2912f250e18f743d4cf4927
8f634119fb91887757fca6795b3c1c1575d0a807587b878afa4bf34f44d51093
da074cfb900f170597c5890cb7a48f9c87d98f7a7c3968c8f06a21c4b495c633
4961bbec36771803c76e892287ed0c98419689a9ebf1a3eb170f5f6af1d91f48
7cdacff6576088e7bc55e4ceb331a63b0718d4e03ea04d46c3110fe626923e29
4351efe7455ac270ee4d473defcd73ae19de7992d736adc6f4464aeedfa939dc
8a91620c17985a6da6ebae5cd8f2d8838038a2e6a9a1a99fd6bd1b326df303ac
c95869cd27f55f156cd33e32759d498c3bfe48f2ac4863f74370b19e92f80b5a
dd808a99a29b9340e84f2259352b50afef66733dc021334ab3595362f7fd122d
e34f1ae9847bbf6ec4d38ba012db281c3ac5b03ccb6348710d816d9620930080
7fa166a57326340ef2b556a8b41719f3305a98998956b9a1ab12d248353345d4
08419cb9d536447aee94d6b3a177eee0648cdc1f1d1c9f16f085276f7e6dea04
c967499803151a570c7360dc8246bac7351200382e2c7bddb3a45d5c84ae7ab7
304f757ed30b897480339306305b86fe9e859be6f4422780d6349b9383d08d40
1086c27782c5739dfed6bd274cd169804227ad189e3f13c2ee58a6119cf71241
e53cd039a9bb59854badf0a8d3594d66e0b8
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMR10
%!PS-AdobeFont-1.1: CMR10 1.00B
%%CreationDate: 1992 Feb 19 19:54:52

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
dup 12 /fi put
dup 13 /fl put
dup 14 /ffi put
dup 15 /ffl put
dup 34 /quotedblright put
dup 37 /percent put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
dup 61 /equal put
dup 63 /question put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 88 /X put
dup 89 /Y put
dup 91 /bracketleft put
dup 92 /quotedblleft put
dup 93 /bracketright put
dup 96 /quoteleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 123 /endash put
readonly def
/FontBBox{-251 -250 1009 969}readonly def
/UniqueXX 5000793 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8
97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc
8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011
b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415
50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e
784c6bf7389803d9450b0c21756a017306457c7e62c1d269f306bd3402e266de
fc3b5e7d8a8d2f5bf0fe6ddd40d07391df4fad4a6018dce29a2b8f692b29f202
3a7c0e66de8ed85c14f1f8492167357f51a7e84cc5d92e0fee4d81cf7fbc8de5
2d2e7bb57142033993f9c08c315abade8dbc4a732e84e142d3bee51557910e12
cd8aa37c459a5e6b7f5269f59078aba3be4641a11ac48d0b625c8325b38ec08e
4c9e5e7fed976a5650d99d82114f449b9ca14c4ec957702295a39a93ef93f618
99b8ea06b092c3c1e503e6e436e0a9fa22576c8930ab3dc8c20f5d82b69cddf8
ff4dacfa9c54bed5a3aa3ea5b129fe96be632843b9b6bc91b615581a985db56b
1e01ca60ee69ca92cf5c0882ece62edad3e106d835348822400f0b66af658f2a
e56ed08f8b0010571807009b73ab12a8cf14ca6c71f03c2a48c500f9d62266af
154a6375ff600d9bac3f05ce34142d6867a79581c533176bb2f3117336671e2e
44638a97167e2ea9644e31ea16c2ad2990ea33c54001e0c8156e6de8ab6a4d40
a7137ba275f39589fea2e2db8256adc103d6f9cc038037a47e8fd469c5f98a5e
3c15bd4ace40d340018b1cff7d1ed8abb0ac57b5b5a2c20a51957b96c453edb7
dae5affd91a46d938fe0a13363001d844ded4323f1ee6d30012aea19b024a552
315505535c85dc26bad31e09c50e6512802976d298c4e90d0044c362e6bf3ab3
62a454ee93de25ce54411090c29e9d75c80ce26a84404bd9de3aee0e3f921ac5
87f907572b8354a5c3165eea7e8b2ba4e333802132f760b41a900c698eb3d273
8bea0aaf7aae96a558f08b61aec7c7d65b2889bb7b99800cffee5ba19ac90fce
11437be1ddfcf0bca5670b543b9644a71c8726d0c1005abdb96f6e0cf7caaa31
95017ca81519151c2c0b04f81e717c0691b63a76e9b25329ce2625b711cb7bf9
9d23ec2bb5ec8aefb8c1a3b422ad617b3da4d49685fd44cc21a1fe5e1541163a
b3e1594601d63c7e98801d7746474377ce93f81404f3570afbd5dbfe77578605
917ab96963987e6efc2d3f99fa56ecae6422579852567f90cc90e4ef6d6f71d1
858270205477e221018a375ca83c572b3f972c5181d18643cecb04909d84cf76
7174b3c0c8ec69bf1e9fdfbc0fc7ed97ec67d878ea4ddac8caa522fdc6932df7
21b81af837ab56b547d4799241310d6692918fcf8a46189a78d6638aad7cb446
2d8774ec73d184076595c94c0b4a8233c593a896c1c7e1f6b3f953a068897fb7
6523926599b073ffa918a82c85a8b5185e329127301849bce77619fd46d40239
f4bf13e2b8064f1eb4d6e9c83dd4bc6f2a59458c53dd46d2c1742e0751b14e18
0b8aba11b226608b632034cdc03d994854ed430c204d4e7dadd1dd46332fe1e3
9918585aef0c012289099771d3a9eaecdade8f4d7005807a9d7ad9e5748faca6
8d6dc63bf01d5ed993262dd75df03c201a7c22d07f8e5d348da80fc12978b761
dd33df9cff6895b88672c62660b9285d48969ead8bb1f9762f044d8e54dc3e4b
6f88284269c730c8fb7babdc4c1cc31eaab91208f9c7e9b7bee181c42215284c
17298577616020a4cb5c64e0ea081e043f36abbf551f364143f93d6e80c6a6a3
027ecae805411368a42f29910ea67af1bd0c1828c79bd919946278ff48d160c6
45986c242a501b1bbef4a1cfb0024114dbef8b69deee5d672b72f8e2d02d774f
e70644d378008b690756ebab2c4943c2addb6f21992e8920bfe912f413711564
c8061e5cb5b4254e873dff293a61fb77a7e52876e155d38a077e089813a5b830
9406c31a83aac8b9717c54fed6b6905029bc41cc9d5ce196ccdf823ce575e28a
b739e9242022a2702d5777ed40d932ae2d12b10ea658c5356067c562625ac931
e693e60b0e10a4ffe21dc182694f8fd63d1734b1cfd82f9975df79a5bce2013e
80d48fee2b194ec4fb4e54a190f5f3cd42cfea2f2d410123c5c2b75b54756fad
a04dc19395762e26ebc92568ef5fcec65987cd20a8d35ac22dbd49a24e857733
a6cf5725376230df4cf30ea50d270563930f25a82f2774e3caada5a17b00661a
20e7820bfc2a7fc6333ec946a8a0e8dbfbcd5009b87e6267d7fd17761c507431
b685c1acd382caef7c57d570b9a1b560fbee3594092a3b4131bb7cd60e3e69d1
17eff9a003aabb64ef2ed6794f183f1a6fe83d7aadb86cde563cd785c6a82c99
fcf12d2cde2d807276535c12f48ee697546a96a0dbedbc8223e6056d6e11501b
1ea8173ff64a82186b603530efbe1f649b3d501824148be323a92c79ff53d1cb
1f66755722b77b87f71b9c788c133386ff4dda1c8312941d0aeaa20c9b8f99ce
696470540987ed11e59d134c58f663979261c61bd09d9c22a1099a5851f3b595
d039c6ecf0c24c94e84d39901ee311091f0df686b840800296a39db284683dbf
3b392abef88aa0c13be53777e6c6153c9f8591ea18bba94d7768eb54971b017c
b0ddf34cd47a0b492a363d3bdd0f57b0217039779daaf3afd1390f80604b70b9
97acdbb0818b6f481ad51e17863dd6d5a47584cdd6dc153eebff4ec6de822abe
5fbe81b2dfd593d3e216b86f6923261e06c0597f16313acaaf7b4586d0c4b939
273d164e1380d6d5208ed7b4803eda941de1046bbcc2735f0543752921d274f6
eb3f2957fde2719511f621f7411e2b827712028132c24a3a343ab7f3b5e2307a
6a92c556a2757267794703870c66171895d47c1115848d1d01e5e1f9277f62c4
f9699db499bdc184fc0e0f334c1754f949e9e1698be7757ef5b7c6d313cb92be
d7e150d41f0835e8cf2602e1c825e497342357d24a182aec00f2d2dfbf952606
b0270e09f8fb33e9ca24dd02a4815e1ecde56466c5a55038a0fa500add2fd1a5
6cdfb5c57d6d5cfd7934a1dde26fd79adb5f000c5cc18e749f42bd2f0d790cd9
af127cb87ba6d87c1069cf2e8c6a7560b66caf976ecac1adf0f202dded1e0357
429b3bce88a65f5ae4d271b63afe153ae45ac19e8a0f1f15ddb9de8e15b1f607
681ccc7ae08e24e31236c26dcef2219cb24a66b50ee4b5b2d880df97c7e46622
7fc36296683d89001b692e8ac8a81a52f8af3a139ab466c158fe03d671a34f44
5bf655ffbf1f29a05848eb3419f87e2e47f900098202acb111bb631822e2b49f
41ec26c1d4dcbeefbe0d9b5fe060f925f86665b578dd3246509d4add15804c50
bbe1c8739f365d1107268a090b80bb9545f236d43ab23a9a4290979c4acd21d3
125e5435c5096bf2c26b7f53764f43b27449379933c66aef89f390c74f517b6d
d4c9f8a96f09964ef8a06ab099bf62417951acf46ea69d02a83599d0b2bc7088
48da053aada7bf481858beb117a4ddda81f9a135d8541e02509b0322b97bd399
f21ffe39149e4eae987f2c4be68fd3ee5a5d723c8bca91a3ed286db39f6f5335
75e6e8283e6c15cd37e3d1fc6a4ea730b8e6966a37e91bd845588d4d57266090
950846f282221130f4e1266d5662cbb3fd581508aafc093105237c79ab521e67
f21d0d3d64b6ce13db400139e4eab8758f1f4a728ae14a223638ada8884dd832
247903b1bf52c0bddec91c423d56bbc84436b66bf8079f8917740746eb8508bb
d76f218c58095aa8094650f2388297dc4bfe1b1b94cddab2bd921d6d09335b0d
1aa2401e04e02cc6fca5a8b9c52da2b016e9ab68c146d4578c92e457d7329eeb
7b39fbd6dbb2ae313fd6b97849c3684a1438e8c3bc4d6266cbea424755d42f34
89e0d8410eae76e6d5472c9c1869256892a004a13a30911b935466f813f89542
359034699915a47a62cdcc13a50a47d30026ec4e5e896c0632f59797800e39cc
b147f92a7a0d8f449eb67a80829f12474d0042c8adb5317048d483a11f724a2d
c58d3440d4a9a2c5e3aeea3305f0b85398e60523bca8a2414512d9c543daeb9b
0255198a9fba982f5fca251c510091dd95f5787cac5f037e2536ffa515e93179
d287cc52cbd3ba937b7e17a2f606cf973ec0791a9b4f9af6518074088940a0b0
d90c7e0a8a1d987a1bcaf2df03def4cc8d9aa931983ddf500dfdc7c087fdb898
fc129eb8783211264d8ca47cc859ed60b1040fb7b105e6a635c144f0489cb1d6
be22e957c283138e12e0ce0d61a58aca34fef4af06f6098ed714efe162b5b6af
3983ac9dc2e42862874b6eec2d2ed122d2d348b576a844ad838c16df2179ca45
4951350a27c77f4ab599af12cfc07c0eec1635b370afded45bc6ae003054fbe6
ff1bfdfa6c3d616386bffc42d700af5178cad5a53b74cb805c7ada85baecd6e9
678c4588764b15e67c3012c3376b1db2a98ead3e753c9ced5c9ab09b43db75f4
0d44ff3ad0d3801acee9fb3895709bb4020a0f723e11239d495de8ce93c53dad
ad9fefa301bede6ba6729c700c96205a9f6f6606c0c73ca4e92fa526a98206e1
1b632741933e9582483769bee0dd7975acebfaa4492f3ea2be2655d31a6d6dd0
5f1d7fa8e60750b75e0849b745cb662a9eacc0b44b7b1acc93f06bea429b6612
63c3fae66b11ff22f98215150968e2366144259a1bf95de3fb947603f0a3789e
242c46ead673360eed1c1effde4b8a455bc6010d3f8012488df47b0473c2ba73
0b0bc1d7164b92548cd9186476f484d9c74e477126e2cf525d498e4a9b6586dc
99066922ce6e5d2b1f4f21c4ed622b576f247a69d2eec296dd2ea2eb350cb91b
cc49caea21c06e3c87969ada21fc096e4dc5b1d8b17cb3e9de13c93025000798
6b9e5cfdc4cb97e43276f9c75fc917d56f335ee859aa0c6995dd36fd0e41b6c3
2b1460bd04ae47479526ebece6145c423f37e8876880c463e3d686321518a3b1
c830108d4e92369cccebeed2593d483398c1e310824df687beac6826a30f8e1c
a5391081e2877ba31970bfeae865518fc449d52870cab2bc8806bf85ba5195cd
779834e11140b60f219fb1b6e7becf02393156926bcafe79665bd11b934e14c8
8e321e0410b60e7cb1652fcba00c8e882db27a38129b599e76d514dabf29384b
2d20a6e03ddb33352400c87649e10555440e462801657066d16e62eab04c094a
1d5f55e29be97e938d945a67eb45b4ef144cb7114a4d9646853a6587793a7e41
0f9195a1c2e156a4b137079aa43d46314c3cb1d2a433fb59c8f2ee6b795529ba
f9f90fc9dc8af139964a09a9218d6e9039abd8e8a70998288caa5eba6ca3df2d
f6adb31c434eb89bfccc3354475e0ba76f8b049493c9efdaf21e4fd529d6a542
e2ec361e6b1a9e02dbeddc9c30057f537e8f96ea5b51403fcc6e446144c571d0
cd3b16cd3d32b8bbaa1b588647c5f96fe89626ae12c37eaad3853a449d9f5d0c
a7e2b0edaa94f5ef3a779c9b2741379aad0e91cbfadb128abf9f853f045f9890
7895bf8d72607f1db143bb2b54a90a7aed7fb2e0b436b65d6574c3832ad2dcd0
62a636a59eae8ddbb83d17629862fb688b3cc83ba5cd25f055d243b60c0c0190
81ae7afe9467fe846173bfa400ca9dff663a6dbfd48c72fa40eb5e2ae0494869
477185452760c570d2bcb96cded774ad0806407b45f3402952ba937263b0493f
448a4220cd5f562011454bd738feef08df6efe4e125ba7fb5b016caea3b9d6be
5229c48ba54dc4cab359d9267efc98d47bfec7aee705cd7a9f85c256bf864c6f
38a15c2e7dafda93ff97feebff51bfbc980fc6b1573ed5d348f0ff3b8a7245d3
db14f90637ccb7de96abccde3cb0592b3a9a681f4ea119410ed04874cb6437c1
ee733d5c7dcb325437d9d0f279877d4fbd4efa969faeb889afba6e5b080627b8
8051c47096eed0e5edf0c5d6ed31e3f9941b4e94f971140f62f404224f3510a4
9bef001f193a01b9e066ca371579feaec16169c05e53fbec7e6a6713c4a17017
0f6c11e192626664b7e6475c187e279983042fed693197592f4e69d4b40c0c17
fd4635e6ea7dad4eb20d95a85e12a2729f320cff4a412eb98f4fd5e624dc1475
b60b3710cd1997baa377a77c0dfffde526a992d81fe8fbf573a951b6c6e8da3c
e190e0d58880bb2543545b940145d9c2d3fa1c2edfdfc251b64311aa5ab6d866
fbf7fd43b48ac70ad0312d467960e0a3f7b92d96225b13cff80060f0a0451468
102fd860334a1839a7827895dcec347d4057ceb4def6dcd4f43b3360f8334160
46d2b5aa78f3feb80900380b9cffff496b7a2c2986cbb77a89f955735a342540
6fd363fcba586137969cf5053e912262eba15048d474d2d686c7367d8d8edd56
9a704f13dc815756ba4e253d1ef1e93a5b20ae45a511d8cc6b904d029a64d572
05e21f9c568b0476b013577e3ffd1458b2d7508611fd0f11c188edb1cb59cdbe
51acd3c8c9342d1d8d533eda235517e326cbaa6713bfe37218c75748915180a1
3a82a0913b6899926a5076f11597aa08092472b3b69e88f00292a752d7636be6
0fae717b3867e033079895eaae1a4932422f1f0899f1ca7a7c17a07558afde85
e168b01989c1ef3d25e212b0a85666170fa0e00eb1f8678f8bd8754e7ce967dd
4539833b4a0486a7085cbcd03e2e4f86743a413412b742d255d9bfcf07999c85
022c8486a2bf7d99b3626f04a00e533c8fcaefac785114ecea329120c3552345
f491c0d52cba58959be13ad4304c93b7f57b0b0e7dce0de2311a30d8ad041753
494481c7f121c34f028ca62362098577a1c6e3252e60026f48daef43109cb295
574d23b3dae440b0a69c8c567b4f3648b9ecaafa71cd709f66bd5dbc3cb4739c
748d239764409d11ad766a0929dca7f016223c33a0c6a3d920d14c3e5ab7a331
699588d284cf622111f44f19be7641cb46e41d3f00e3fde4029693b0bad310ba
44fbf435074ac55e2a58a0a2e031dab3b600de9a986a546f395227eb75f0b02e
681936a4d51096a129e98ae8d172bfacebc012b136ab18b78cf8171cb9e7f1c9
8afe3e40a5e5b95e20e37bcc7420d26aa6c23417241d004a8e4b57ff181fd03e
8b77b7c232fb346024f5d0f9e3260a10a129cf7a3900c1b722740c64729e3fac
596b076a1e5d1fe1cb6d64580a2778ba76b3a5a5fd3956ae2f8c1f1d16c25c11
bcfaecc7e8fd232125e7e816793705ca853ff8c6b147e4011b36babe85195362
eae32b5fb57b3a3dada5944ee9f619fae9dc20448fc311c577462a3f4da5f64f
03124dcf1d1ca18cf85cc73742113c4e8631d21449a93806f37a5b20bd090e24
2be4a9359eb6f0992650dd2219270ae4d543a648b3be020799188a6c1e4356f8
f03103c66b8119ecb70f9e59bfc474f6743e5a46268bc2a9fa5b7914ee249c40
032f00850c2565015423af2a68ab8a39fa78ba9afd868da01b1b90d6b1b14d54
2855b3d8b80557ba3bc46385961c473ca0e4b7388462f0581009f0261b04e9e1
df3cf63bc0e122ee256aa096ba9955456a4365b11e184eaaa2c8b62fd17e0d7a
dd5da6f90e314d8f736cf3f2669e5aa155702d355f99a4e70c5700394041e219
96c7600daef9a737c20af5bca8abacbe1dadeb74180a036e7e4aee434a063865
58cea7b49a41a4733ed14ab79a5f521bc14ce27ad1f5faeb3a48ca52c8c627bd
bee651017965e835b9a64d47d7e43487ae81ebf146f3c84c6a6d74d6b76e8674
0b74344407a0023046677d8b703154e4ed83dd6c5243f5e78ddf96cae964640e
8855ffd971e31859ba4829e059e1565b764dfae2bd23ad939c0f796b87726082
d53c855d66c8b69b4b1135c3388783edc9e865387f01da921abd7283cf318517
8495664934eb534e4e46b363110c494302d54365607198fa0daa8454425945be
6fd869270b6b1fbc3cf5f6e0155d8538091b8be50bb2d9a993eeeb9426438839
922b578d45803fc08f896dde4edac61c44c32a0ba1917e5ed0c606a18d9146d3
09a289aa07b64ef94e8bb465b0a2ab743dd34bfdbe790657bf0f9d47500c4d4b
94f836de70d7f0fdc8c071661380ba87f67653b4882bb17888bf57f6d0e07060
619c405ebc188ddada2f101ca46a3867e43c285a20bff89eb89d6b0497d485ce
f1c47e79cda1c5887626e022a2a4e885af401bf7fb9524ae74709e2987c8fee8
e98d1e0a534fb7a1aba927dee8932188d31a193c8ed4c3d0227198cf965d3268
ff3554eb73025d80e57e4ae7b9229c0a342e139e33c6847cb83b565f6a68006a
72eb5a28683282037317bfceffcae98c5b60e5fbd664b2c3537c148199a2ead6
d2c7b95f85ad6fcc12c3a1fc4ff0e6563276fc0f89c3a0db6f27cd10ad77b527
211982756f36ece21e822228ec4d624044087617cf2b39bb3fe20e8a468d129a
4f81210c7ee77ee72388b5ed87cc2eac4be348a56d550f14e7d5b25dd4c1e0ab
e10371959b9671be435249b5f4006211000e3e5e06603d03693737f4783334bc
4bee13336d4e82d17ed605860c72db6fecb3bb4e301e85c68af1c1146dea4eb9
6275f4d4666651e227f1843dd882d23c4fe631b3f358c5b9dcaaf7e728e76823
379fc92d2b775a9775875a148b2dcb92992fff2052561c4ef98f221f9b62466c
57154f901236af31c15902ca711d076c81f4497d882f72cd23b22446c166f8b9
12f2cefa37dc01148c8cbdf46733e92387161527e895c5b0410aba49f4655909
cb13e476051a8ef54496a759315c303ed1e444e74aed4f069d16393ad4dc3c21
912b62ea28af852807aff5e9064d5ca790f6156373ad6b821b953e7481d944d5
e3f875f96b5521e79febc1c493be206a64722f427c790806e6f047e0edc5bcaf
9aa26f7db67699ef1144c72e7ccb49191705cbf41183e66c1f7e3468658f4a89
c24df3cb095a386018f0ed0a8820699488fec99628b25bfeb4f8fe9e9ee654c4
4a8a10e8d412382ea89c282f92e007f264bf2b881f57f54da636321523158541
1671a813b7da88743522ffcfa2bf4421c785fc56c0b0d97789047d145ec56995
769e99715cb366a5fb4efa7093ae0751d3bf68b03286b9aec6f4eb7cca08d352
b59815e42d787cebcd867d12c99443ea128699f378d83f8c738a8c0e3c8b55c2
fb5de812ad49a519bdd1cdd3d15f77bc8636f2564d9876b574033c8eb06b6e5e
59904bab74c0223b2a8ca9c1812955486a63715b6d6d022af960218a324fcaca
6d6b10ba4b297435f4992db382e38f27b45c738123f48cd188e29d0779f25103
680b59eccf0238d0e51f09c400a50691f2efa228598593b51987f5ddb75b14e4
1e3b690bca0bb55ac9c0b8a60848fb75cd1fddb28c56af2808b48727492a8de5
9d00a7c2689e631f2b153b467fdb13b89502f23d3f4bbcc40e7171bbf93edb0f
33120d2483cb74c461abbd0f7624d4cbaa39f093d7c92ee442a1483f1ef7f219
abefaeb3c27f0dc824b1a305cbfd2b8f237f58ad16173e575be4137b5a514394
ded5a682e9020251926aab2d5a8e1ae346d243358c1f5eebc6188d10fe209c12
0e4bc0ae9f4426329198876af93fef8d0a11079b64b9e7e6354b574e36abf7a4
77246d195275dc8cc00c82612391b17598505808bf68415e9b5188660cebddb5
16872121e181562daa5850bffd4ecf0e524b3853b5f039cf7f4cc3cca74c431e
bfe231bfd4771612afaf498aff62f7e8680df2b2a1e31cde4e2df44a917b9884
5b0d6a248644df1a4c5d54af4f95d558b17869218c3327c59ebb8785da3fe3f0
a95ab7fa203cd657334bea82f4d42ac83488c58dc85bb3f92f885e21b6ef4931
09465d8da4a1871b114909ae63bd1feaf4def0412f0cfbf6fdb21f5c31cfe642
8547d3b1c1f912b6709755f84fbd52a1c05067f98856aff3b749a18f2fcedd18
d25a8fe6d7394bd7f1c7cbf32eea9947c1fa9a4477aca297537b9db69c26f6df
70cf930124e8ffe9c20d242d88632687f365c8870872ac4a34fc1853d699d6c6
dd4dba2e0518ae98213ded7d3f06c05fbc15086037105f2e3b8328576e11394f
d7de488a1f087fd2d6d7ca44dfe0f32b842455070975e65639c0b9e55f3aaacb
6458c247ba75785ef328e06f189e72cce164270c2756a6488084d9e661d443ca
e06e99b0c44ef1f9f721b4983abfcd191427c0a0a2b6fcc356dedfbcea2baa5c
d7c8ba88fe3d88c82d68663d687a2356ddc34d2a0cff56fd38689dd4b45a7e07
f01222cf963304e634dda92dcd08726adc7ae249bd9c6bf997d48f6518232a04
8995134f8271d9208c22b43b5f0f765549339fe1dbff4bd9123bcb386f1c4175
3b572d253040954364453adf948b0d56ccfdd58d64a0fd912584ebe7f264ab45
aba5b6f961f77a00094e1536ba8e5024f697799028116a5ef770413f21cf5cef
3370e5a6a28947ffbd9ca4b40b99c9d5633355199a16da8970cd3d63616eb45e
a463c65e33c7c099fbe90c7c442a36599a81925679c0afdc2436c6891a20e6cd
9da519a6b60f809842bb6351524b51d7716b307a78fb490ad5075a621b96a3fe
163e87b9ac9349b7c2b5e99dbfea9f0d1c52cabec50580890b810346f257d52f
85919e9b9c45267f7cae708f15397cedaa7551dd22200cd7274086953754c99e
d6aa5ea036256327b23201ae9a91042597a09ed00691f1e14dd0718ffa93b9c3
798c3aef76eb03ab609a5dc732bc4e45633f377e10a8752f730f31a00af3170e
dd932a10ea75914a0d81336cacaf62cef131e28374e3ae2631831e5af119f82a
630dfd8d53cf26d53e48bd692b0188889e4cbd35bd72cd35452891f28803d601
c58a9bf55e4cb384aea26b9142be034e5d5f4a4015a800986df937f33991e133
93fdf155efb5644154fcbc98208b8523b3d07b81b92777aef5d7765d6dcec4f6
81f9c7b54b263762141fdd60d142f61a5359524ca5c6ab91b4f5724bd5d46190
628d0e5db23d83734127cd2614625f710faa5b065d32d14bc30a7cdcbfed9199
cb21ae15095bdcfeda6be5f73016ccbba7b60e2a78264f37ea4a0f3f6d549971
20077bbce3cb543e626a44bcd60521e0a633bf40df28e7cfc4f4aa42866b0c6e
e76e7e4d0367f7ea0dda90c79056c0b1c93d613c172fa33df97e0072a7e3dd57
2cde6830d48471c5a666ee7a22a9f0457b7632dfcc1c105b903335c25bed2206
b36df4946bade3730a5b3931a6ca17e19e371b70d77017f33336967f42960a32
c1a1314007e0f8beff7e4c6e1651f15bb6fc4c338fb37cd16f569d4b5ddcdaaf
00395458d7ac9c3b65ea80d0970f9973c1279cc5462277edb4fa1cd76ef41754
203b7ee83f19b6655f4719f7cb1fd268f7fbf017b9a0082c0595a99aea3f5995
86ecd3f59f50d0881d1d01638b9b2c04e0f590bc339be0e9f5ee83d95cf126a7
9bbcc92ceacf709b65e9cc6ba5f0a2c30841b85ba77be3d72f141ad0cb9b8564
edbdcb96e01e61e80f685002911121d0c076bddbba004cfa12ff8f982cf00f05
9b41a9a6aa2c681ac682ec63ebe7af0a388bb0b6160304effbd74b4da48d28f5
71da3b6f23573f3b1b1caffc4638e0cb0209171457e0ee1e066454869d6e3eae
ac96b786472c0521c1c7e5f5e0a4f8cc1abe93cc549e64c8fe672cd567af3c17
21a4b2799be2403addea70887a649ea1f1096268e36c2a429b3f4930b2dfbd51
7db721e940c90dc0b56eced14bbf03f80d4d36bab4c8ca0b3ddb12089706fe92
349e99f96a6889af51698b0fd6410f2d9e42addfee5dfe2c14eb39eb096a5bd0
67113abe0eab5435f22df8c3a2d7c04582419219673dbaff4907fdd27604115c
8038e7c2baf59baf550a9900c607e2ad2eaee6f92820611cd979fb94adc01b5a
e3ea7ac5aefb902d97264c65ff6859e49292438c5998fb1150ff46d7812e7ee3
d687e862f53945e1d301f07e8fe85868a226c677fffd2401f92bc551348ad8e4
f4e945fe88662a1197f1a3b67fd90b59ecf017c715e43256ec0bab8a82dd7795
55824c096d09c804d82542993dd791921b2a4bb78db57abacb089e6d1b03b5bf
0eef1d47daef40676a11bbb843440c93963a5244521d29d8b859753848cfda6e
70db78b459ff387ad847f5dde7ec2fba1476c8f4fa511ee2bb51a9f0227dc626
b1aa73f10ca8a00915bd0444d3b4b54117082cbe32f0468a97c651bd97687031
665abd5df4d9899e83e76617fc392ab0de00d5c8c69f140aed7561637dac68d5
d7880556278412de0820e7d3720015b41a9b0bb766e9140237a37b20bd74909d
b9678c0ecbead7e6149aea7154ab1a977b561546c8bacf5fe98041537fbcac23
6a918d86ec077658d9db1ec2b4b6063d28766a3ed9c1aea6ebd1b290b71c8985
34d134a3efbd52e51564f1fa0304222623f2d5eddf6862d63444704625b40782
7ca1ebd3a0c3ce60a669cf8012bce77bac243c74bb28db6aa1f648af43263470
705b2d8e3ff7e3972e52e188cc2278294e60ec3674b695276a0a2192fd38566b
331e1d4762828551ff99a71e12fd05848b2d9a013d0e69f8984b957d6f165166
6d70b00df777f719164d40d6c87163b5d1449cb214c23fd83c5bdae393de3070
3702c7d4744a7d7263790ec5f81815652483b594ddc366fd54efa5f76802ade9
0584ee857602413d4ab51ec1359b50f720b9b63098738c4b71c5b17abb1764c9
dc2956db521c2f4212d10674fe2ac116254325feae7d8d729497153266701360
bc413f5a1be6b6236d8f81dd2a98fa7373f5900cfe5b4cf2ce8b4d3fa792ddcc
484fdd71d0172a05629e2c15aa7f581f1f22720f409c8dd538f54c4896cdac54
2d266a77d179d047688b577a5e6af82090542acd59897eb1a723180e020ecd5c
d89315d9321cea737697ea98d91334445918c8e694e155b5c84c8b576e986ba8
c99628a5a246e90cf81814742a935a328036afcbbe17999ab4f2e12a8d6b7004
4dfb92a35804150ade7242814d2823f40d3823e799f835f85d1226cfcebef2a6
24ea6f0ac6c6b4262c604348c2baf2b301fddfca9b2f445469183ef0f830ef32
b012882af66a554d836cd30b2c88efc88b57ab9609f0244b92ad454d16efd45b
e34342e94e1104667242f1abd006a7a4696c88218e3d942005158f8c4bf22e31
48d6ca13d4d983fd7878d0f244f3e616982fac790fc801543d1d1033f151e528
4de0695396ef0a0c3112d259077c37a82239e6f7b515f5eee5f00fd414c89787
0d5d6c03b4eb95261dcf253245f073e7f9a242cba719a29b6759cdf0e26b7494
4553a2df9c73e5424e649a7907baa952df2849023b47dc05626d7e4d8ada4a82
34ebf9cf6ec3db7b69bd12078247e715097f931ac1c5a2eff68fe36948bf4222
9226a1f08f7c781db10202e41e3a379c4f75ddea3d5fdb8adab8111a015d8632
fbc9ef88b80028b054ff0143dff5b1ae3aa4e9d0653f53445806c003fffb04ad
6d83f606ff5dfe7765b4b71245dcb5b6b7d66aff42acd5506b4cc735ee6051bb
7db6fe78fc821311e6ecbca6b7f218734746d451fb8868dab3683268b4b40178
2af4718dc9439b40792d03ac1f79a95b4982ac5a7f7d6e29c56d7413b090d78e
2ea509f12e6873b0b45c25f3bf57e15319bf2d342d1a61f86458b10d7cfd7393
905670d068cff2e7a548c3cb462bc56eb7de62e72322d2fd962f4879edcb2547
df8daea21902b4a6a5e32604f2b0ed343e7c28625a060f7c7e38222f3bd9baf9
a98db7db8a06ad4facd54f94cda0216adc17b341aa65cd966fb5c632fcaed244
385f5f442fb604a02251828b03b2b4de8a5c06b7af06f3f57794f4ad1bd467ad
570cec3956a80b7532e8bc042db33c2f6e1ebf9636f89e62e0d39db72f014ff9
ff0f057342bc12daec85372de50f1ecbdc88c78a6512b737360ce39d3d4e635e
2de2d12a6f5fae43a19dbfe5f0424a99a2277771163da23699216c247e31672e
b441e08c02bd8fd12d11e761881f7144da293cf58cf4725f6e8cc13caab442e5
11a26fc534d7b9eaa3049e55acd9b87bf190dd6105eb6dce348533cd6e89b60e
3945bd79d06103f4943a1b1d4796647dfc296f2bd3886ce0dac572dd3574a2aa
87f24528a7db4f205fa764cfd847fc0d6a674e06e3c4353be8f4c6ea363c5955
3a61128199782de839d1a575b1d2469757d00b18a24c53b2862e24334137fdee
1bac8f623a79d7f27e95767b841e5cd853e9b2e3c5bfa4180b356fad3f29c4ec
8f0decc00d353b9e825a918d9fe1293cc6987cdd46e2f003b0a9b52021a3d3b7
41fb979026a3d4963a15c492ef5e91c308f24e7b1cf8127ab8ec301c4fd2c259
ec7d0f3cc4494fc78c7a1925a0a86e503d16e7a3d0c0bb1a693b78e8ccaa6f93
00853536cf75a8f3b2a9ff3cd752f75e7e10a49fcc77a744cd93992e2a35d397
4868938d16c687d09f0c10387d7181da1861bb9816dca21925db555427457fa5
17a4dcf8435f7280a780de386e44219975f03b72568eef0f13c17a9583a3e7f2
8ffdd1619ebf088cff8c1516daa21e253331115c1acc71b6d4e8e978abcdd44b
51f2eedef8cacc9c5fe06910f3fdb1ce537313d6f676306b01afa7b934f3e60d
836c6a98ce443ac09e376252379bbe21fa2c5d905d94929c32e0fadc4e6c13d8
dbaa1c4e88e6cc80a91789da776ef98a8996953da4c9cd187fa0c9ee3a9f8b65
d70298671f9e3a2475ca57c0996745bad4b2a4fbe30c12820b08baa73d562a59
b06f3aba85eb6f867fa12c21c01a66760780ca010e75e43ad32bfc1ac7b56516
514c8edd5a14f97b2706b973e46df4a61cc2bd6e48ccdf3558cfc4d6b5df0f1a
aa2387004c54f8b6f002f0aec5d8591021acf70d5c03d360f5c198d9442d6c23
7cf0df45969188a794764e78d1d457b4459e743640b951af6a1150382fc4a698
7e2027bf1276231455082fbd6be16b39e443a4085f7c8e677a86084c360e4ae9
4af3b48791ac8163810fb7a68d68e4bdff1a7a7ff7f90df9685fea811ab3d962
bca730b9458c83058a23374bf5199c26721529ab145f9c7bd8c3a7b12e662948
f930b76f8e82e5ea4a2a2abe47bd7c3fc8e2a5f45f1c6bd57e21389a450c37e9
5c0504946a117a398be156fc15b331d61647258bbac543c2f9c8713981a5a7b6
4cb83d9b98148a73be048c58fb5b16f65e8f02519ee2515f1eb36cbde6845291
761930b8bd8ca6df9e1c86782866844b3e79dd7716be0cacd4c81c76783e052c
d67a8c1601af6444f692263644f9850a4c61a98894270d64672e185775d63267
d5f312210fd4e5effd8ef79fe61e3144801f78c53caab98ea58b44b6c90cf23b
c375b727f69c48ff44d73a83b1cf2981c6b80ba5dfb523d119265c06197c364d
f799e12ff8a838e9243965818027965a8ab08b2032b716141e716ac80c442125
bf216e66d41e98c5b08ea8ed21e3de24c5813390a68b7d422999beaccf1ac420
586c718feb86d3223fabc044f1f4407ee7c6dd379dbf1fe6fb3421dfce6da376
db8f3cf843fadf204878031bbe54b3d12a677f6c82ef87f2144014787bd114ab
9a502914b4150fe99d9fb3fc75ab53aebf7c26840aab1a738a45d7d42eb482fa
67f55dbcc61b14adbb35054145fc880f97ddfcd9863f572c7b0eb96a3b2b108f
75c8cbf63461a536e6ae4c05ddff4b23450b0858cf20a36e9d41ea849f02d40a
86c2823814a35e91389168d681380d7900f760edfca65d4069ea9cb9ed81b83e
b381c04e546f99ad5f4809d3c333e8827c85d64d051e98eddc1e994799252279
31c7c8b26d6ff2900989f3bbffeef9c670b2bc91cf89f20024f0edd43feaa365
4ca7b6fd1612b68ac40571bacff9553c0ed07ece7950969577b2fb1b27725e20
df9bd9d18dd513763de7efda2d177a846dbf883b0b3b11be7deef25c1be0d940
e5bfe24411891061563747657a90fc578087229127fbde2091bdb46f7aa05fc4
cd6dbe7040d6a628960fb0d0f49a6f8df23f1dca2dfd76b6d915acd1208cf1ca
0d3ad2d64112e4420ec04ded371a98069e29ac4e69bee83765550f1190d2373f
18d1ef2c3a22dfcfe36386c6805ed8c01e3cbe15fcae69ac9ee89e1481583c2e
d3d05d29fcb7b21aa577d0c92e8bb646a85766138b7c38a09824ea182d9f1536
2807c3e0b15916501b90dde315fb5528b01bf80ea7726042830511eb1cc48a40
ac127501be12b23037e905fd33ac60094eb1a9de8821b0323d397a22d09d6022
51bad065c0f9adbf14e05e208606b88305f5aee7e3bac2c2de072b60ea2d972b
0c2af1f1d2fb9af0006f6caa4f03486151f890938c761f1f31a4c90ebf17ee69
53603d0ac5df838922f0c9a79f290a7ef97a78775dcc76de58a165de64d18a0e
149064f1b7f79c16bf30624ba92f5826439f43e6f65d7ba6079c3c997541adf2
c1266041f9226a67d5a8e2dc84f45cbd93acd132e4a941dfe061ab8fca655605
c3e8a61939083cc1de9e4b0f2cfbfd03bceca3fba22c33011689ac558c7af3e4
a8466088ae03d7a57c04f691082f384f02a68b8d5879094e1e65512511f5eda7
5f75fffd0210f438fef312aeaa73f4c0b38fd53cfc4417dd9105297283ab76fb
90c32f323fcdd007ae639824e042bb138bfe4d62483f12b00f3a91c628b01cee
3e34f1e8fdc2220f48c08e000fe59c17702acec399cc9ce4241f5ec0b0d13f96
7bcbe908c2e784045a49da7a22f1fa08f60e5b81f11f676e2ed74e89c2038c12
408d29e07759afc1526f722bfb80a8210a6762cf3bb80041ae0a9c9e4a214cef
c08a11d685a2c9cdcdba1b10d6a19ec25a4fe189c022ae15996e63118a606e4c
2827781a2fc9b7aa231ef066392dfd6dcdd365c603ad100a52405fb42fa673eb
97809480cd31de49587cc3824a8cc175f66ed066663c1547bb02def8fb339942
9b97f24ef107b38c113c2679c772e41437216b5f8d1def908d6a8fb219fc81e9
cb890ffbd438616b0cb7299f08c5eef479ea561a774c32907307c76d4f95f4c1
617c7394088dc54f0b22da0d5dc12fc4f75933acb61c40427edf1ab085e75e81
a4653b587a6a3037ad90add6562fd844e12e816157fb5261965ae6b84fded339
c7c4a0edf2234cd37b4cf2c47cec1de930c2b07faf031d9e3955738c8c94f2a6
e574f8492e8a4e00a083e514d98d9c737b2734549d205851c22eb33547f93046
ceb3282f425d341782d2397b299bc156104c28643f4b806470e46687600a9607
f7ec5bce34a1b78bba2aa55ba51b1cf7dd60c05bc26902c0641523eab5548997
e187a308c24a5e2b941e8d531dde54915a1d79905af0c31c9ff794c2002a877c
3e4b38558aad313a8aed13cb522e0ae8e3833b60cac3795c544d5d749ec87756
895f6e8e716f04f46884bb88b760adceae875cf4d8d574e1e15e163eacf9eacc
7906089191bc9a2bfed3e3a64e271f5887e0fc64c7effa46e3db5bbf00d325a9
049eb9d9c203b6f01dd9f918d073167083387ae7b0caaeb766d987c39f5dd158
2debc95265aa68cb8b67b4a88dd125297922753d6b409a56e2cf8b4685d42c24
e40058cd7670dc745db715fa0a84d3d94df79e4567b076a1db969711ab2590ff
1d7e7aef0801c3eddd96d0c381bcf55a6c5e000b697660992aadee53338934dc
a1db89fd880b2c9f33f722b12a65e88b41c122aba14bc1d82ede092478c1a66f
44830828be56317ba2818ebab9323adcf8d9ada3e69de4c03cd6137685e97672
3a819dd09891a3166950242dcb549e8408ddc791a3e0bfe4c3f1d99bb24494e3
d847cd1e06111056de250cbe52b8c4f990a7b541feb662f13493c73f995b3050
9009e60a959102a6f3f79a509d86b953d9ade392a001b139a939a9b7314a02a5
00fc4f6e48715e4ef22fac87cf3ae79f5603270c6019e6abb6288621a431247f
6f9579c4ab5fb797da48c962395f0a1312244a4f2caa2332f6324623137a5644
708738610bd073ee10628dd31953d795b0aa8949bbe73f3e70e19368ddba8d69
92dcec2de2399be958527bc4b448dc522636b30cb7c597d7f2a7d93595f52e64
948633b5a7522dc5387eaa448012a170283cc3dec146d411864eee51f6d7b124
a3dd30e2cb7eb7b3ce3b356b71458128b529f41352a47b206a6c5c93d4027046
c449b96da1b0a67d14a9fe70e9a30bcdc07dcd5cd7d07af177ea009fb598e4ee
45844f40e69546f23aca5c0b7eedf8a2e2a6a54f1da105571ef499128efe22ff
0887525415e621eeb89c1b34cd8c3627af7eba0f5a998ed8e0f7bc635d063334
18c99954c09946121be2b966445bc162fddd44ef5d2a619f39fd4d6a674679c2
b05fc9ca42f41fd57885ff49dc86120345a719edc5fe4bb64d0798b8d1b260c4
a89c2e91968766df6d3d320bfc400929d2ee96c9ae807e288a4bb7c546330c96
63a4ccb509872a9440400980fdfc33381718d9d48045581766b4ff5699c5fbed
b68c4100add6f5a9ac44b82641b26e0ec415684f485ae4969de225f82fa31241
d10a528309493d1fe364b886d6e41500be847c4e30731e706e8b5cb296f790c8
3f80726d655d7c07eca178dd395da7ede79f8d3520fc507b6a48f29f59a35c79
c8c6b3f56b7a79909e3558ac68f22cfa25e41567a2b06af97ca9214f8b20f1f4
4cac4d4737903d82e455dc2497f2a802cddd7323a9d55f5fcbd1a395f0436e63
5ab6ac186a8625673ae93657402cc3aa66ded9e1aee9bed51695e3d6c3e08b6f
f06599767ed160e204ecf8bb564376720fa18ab25774d682b05258088e18a8e8
3e96a9bbc85e9404b7087c20ebe882f9d025e22d647290dc331b786732d4a0dd
0b9488d28709895096dd56124cdbf026e21fe80f7ab41843c2e99b242dc8ca6b
a3895c8a5fefc31bfd63bfd8c924a32e68b7295ac486d1c28160cdb99b97c91d
30b9fbeaf57d101e18310d94c50cf0a7f435310e2bb22e028c3d31860158d025
5ffac567c8f161d498ecb6e85ca9e98f53b592e3af986b36aba5736d969192ca
378a3816db705f1998a0138788c0090c4ba28e6060811a123b2091eb322323d8
7ccd4296f67cf0c9f0187deeb75685338c4cadb4e1c6acb336dc70a959a310fa
3e078713d17b6cf5e3ad30098c1c7b141fe103a2d0ac93296a43d37d8f34cc3e
1b8e19e314e159727cb60838f3a302765b265009eceb6bb6853771f984c21560
8828e89c3d212e34e9d4db79de0e70a0573edd94e21b1deafe123bb855b04c71
cc92fc133f5a3b0b064662aff0860ac624e7eeb43eccfca7d6c9b71eb41fae56
b367d8506fb8667d154d6380a2d244cebe803c7b598f81de0eb366fe4ff8abeb
5c69a83189ec373c8a120e261009cc318908a37b472780bcc902a48b1fb023ed
e4f42b1e3414e25d4c5b374cf707ec734db0230cfd10f95c7c6f6bdef78c9f76
943dd8dea439474f2abbe55b2792e72319c107cf2999a5ae159f6ca68ab7ba42
273469a1724ec8c8f156da40a460dda17162a48dcdfdcd744db36a15b5868682
b1c85fb755ae2c8a707bdddec875eb04c466e4fa43368dc1935cffa21f5854a8
a1d4715120a4147f851c832a3473b7cfb931ab65e1c8838f0c925d8fac31158e
87bab0f6dcd4c5e48018f9979cb54925f11e4e7809c785e6b6b3729c39280629
612ec98d9a86cd038323cd0de977910e323a307c4c313834d2b11280087c3810
e02d1d143662701929994ef55bda4af5726488de6282f016f9f96c057aaae5e1
5c48bad5e7017cd41ca784ad1faca8cf2bd8234d40d8cdc366969f5a675e10d0
beabec3d7205951f37968a854eaa2da626525e278db9a4534c3d0f9e5346a3d1
542019de52b4efb305102ed205c47f7d1caef9c2400d81753abd5adeedf75757
8f1481e3416671a9221539149b01200ac2201cf247a7721e2cc9c2ae2b96da4e
1c9d60776de325f0b15a9db32954798c9db5b891fed07498026a53dd24109dd4
0c0de814005a7346e4d2dff34dc1817a3ed449df081f70eb32106f8287d4e904
cef916db946781213c8e4b2f12083253a08b5f28a6355e1540747a40bcbe8f6f
8bf8054251671b64bebf761d5ba1f6d71f950445d7b2284b30e7d3340a5b30b6
1c787a9db2a1440fc5ec73d4a68af4368838ddcdd67beba2cb310d0a24130895
a19f92394a4f63e4bae80dec4720a985195801cb56b281a1a23db8ef5df6a3fc
1e55c7bb92e05bc0bfbc86d7c770f194176d0b60efc4ba417903813dd6e0bb90
f69059a83ba5bc55e1f3a0d76282cb0ac1491adee3dfb1be47e8f7f618065f99
87fc71bc4e21fe70ce61cded6afe1a3365d76fc0282ab5d03091030d03e386bf
bf2bf63017425e721d324acffceec788eb39ee21058ab2f64fe0a5e5ca5575a4
d1aa880dc27e3ce91a7285e8f40440b1c3a467cee6f5702bcda4733c5aa8300e
e1bdcbaa2e9cbb76e3ed07dfd2005ea792f4caa7e838b326a38ca55423ac17ad
3836e0f9612c355671838a41267e74b120261f058db98e8b8e34dd0025253396
bc1d8766cb81845adb72280985844218f60da06b789ae0fa54b785b50f70163b
0f1d942fab7bc133ab3456110cb11bb781dc76dc7e708f8b416a231dd61d0bdb
17f86914216a145cf8c9d33c72866125a200de07288345a90d98ed51a2c4a8a8
736b449696608ad5b34dd4b80ed0dbff2a70bc50f6eefd1d04275bd5aa1a25ae
2c9195b914e37a730d8a1f46ea62d1d4f871cdb4e5368df1e1f58cdf22620e1c
d2803414c0da317779945527303fcf37b79a2e48ebab519195860ffd270be78a
27d4b7b99fd6095447d65912e2385232c4c53932061918d22db19ab8464b253e
f02f663481fd6746bfad2b9386d992a12e6f44d959c8eda6fef420a1e98a8b10
550a86920308cfe4830fed2eeaf7db8550b2c644dadf51342184a6ac1b110e3b
fa9a3530644d309241bc994257d701f233c007ad8268fab7c20fd4b8b37db74a
7c4fcd484c321470b2e9e0be2a71c3b66c2fb769271e53968ae71b84a2d252ef
78330bab1506e53ece33cdb46ebf36eb84a8be612acd5d9a37f3737a0465c676
9a12ff73efad508d7e99c4a1d81cc506afaa91a2d9fc12ffcdc87418c3f8811a
54989747217ec964e02976dc5087e1f22dfa982569054534ea178a730d9c7abf
e4dcca80c6521a4a9780cf75ecd80db9af8f968bb97f388cc600567e1e7a44ca
3deedfd59696b52b7238c958fa65ed2a3661f54b46be2bec7e1768e9bfe371fa
3079a368bdd3dcba2a8292888b31cd4e4d5768b0ff1ae9561cdbfcc20a3a3d76
0f0e796b8f11f78617013b2fef52415f25db9be3ce41172d10384c08745fd774
8ea99dce709b49cf4a7dda3be4e5af1713a513678537c71d53ec31e2bf11684d
22eb983dcf6b6759edd9a98624d80a5148aa61b38354a6aa03a8c69fab0cc25e
9e2f9115499670760a6b622693b1973eb661b3eba1f402fda39d6fee6304de6a
41b5c8b9c49e6febd2489725019d212334418d31996bb09965c178369f523930
c57112feddcef1ed1309bd08464b7c1e83896e9b17a4b00e9f24475977b74316
3eb344fc49f510d87f36a3e8b2e0093406d71291ea4794d1a31d2dc078994b62
9dca4397eaa4a52d3d7d1e711bec52b364ead9b0b2d7a6bd938d5c8f23571ab2
39db6a58f03bbad913810f6ee1c5152534819c4a2f03db5c791747f8e4ecf977
7c42db61c015916369d2b97561019ca650fd3e28cd25fb326c262d7cf820d4eb
bbe3187d2ee35ab71030f08e21969ebf049cc2ec3b91f96d8634350a932a8026
175c127f341af2ae3c24d823b4c7adf3c745b505603d565ebb29e90b7b3d52e9
28cca160bccce92951e440548ff5ce23fe7442d99a08af3cc3922799f25d31be
a19b33cef828e11cfd7d1df29c1d0c2bc3e133ad4945800a3ffe2542d5dc7a8b
00df3ad35af38e4cc771829b112f697de049eff713f8fc33da41515e101f1e60
18d6975d290c4dca6c64118c4eb137f9f4d80374cf9cf6438502e403303bc712
3656ea8393d8893e00e777a5f6b72aed41da7699b03d6522cd87a0be626eea16
a225e57e6ceecea23b06164b9d3a9aa31c54c5e775c2b319c03209cede8aebc0
4de04adeb7726b6b0261074195b84bf25210a8cef69601c9e385e642558d996c
b026a72adc4296859256b7ae164fa066c377886c9d26e836ad2d32d51fa41047
1bac78423c064695239f2ad99dd867fa336d2669f269bca4bae23e2f0743c5b8
c39053
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMTT12
%!PS-AdobeFont-1.1: CMTT12 1.0
%%CreationDate: 1991 Aug 20 16:45:46

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 46 /period put
dup 64 /at put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 104 /h put
dup 105 /i put
dup 109 /m put
dup 111 /o put
dup 112 /p put
dup 115 /s put
dup 118 /v put
dup 119 /w put
dup 121 /y put
readonly def
/FontBBox{-1 -234 524 695}readonly def
/UniqueXX 5000833 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486be79011d1f5b667eed85fade30ab2ec4e1c2f
4fe750cf9a69506458071de8896261c001b1c290937fa42a1fa87de406e9f86a
4c9c0f03f69fba719114f8ae51040a4c03a58b6f3de027f6726f32743dce7395
14c2c6f3c2de1aeddcfa8eed7da56dd68dbcde33c29ff7a694769049e4325ec9
61b2df16add2ad46f18781fbd63eec62c26f1db41e6a666a09886382dceba91d
8ff7cedd64ddc8a2f15fe34076a064c46febd1f4dc3707aede0ce8af161bcb8e
4ada202d0954baca5be71c28ab8bf32fd72029aa07f27d658a68f454a4bf386f
6314224d16c7f0a8624f6b86319a4e2fd178f596f3b20db032ea28c157a68a69
fad2bc88881658d2286c0d4ef061bc070c3145f2a37ebec03f51de7cda34cd97
7eeebd86b00f9758b3a496f41d9a74279ef3c6322dc54945f95062c5f37a1e51
cf7eaf45f2b3634b2d7d01ec3b298ff35b6616cd3020e096f6c6aa2bf04c4a93
61c19f3c67a28d936ffc8120f1e46980b29bf54047c5f1fa48e67611a74fa434
3384f802a4079b28b94681e119ab0c1692de5bbf426440ad1023506cb80732de
c64d9061869cb34de924d2c26e404b7dbd9be55b9c0c5ae3095c15d278adbb49
12df1484ed2d73128e5d9c1f1a3b9ac19e2ce5366c96644f5b3d3eea589caedb
586fd9b8f4df32ec910e9b7434d5bbe57e03892eb03890567df5b811afa0da5e
929d456af362fda0789aa0cff464e238029294fde86cfc8d7d33d5c98b18c76c
319811e4d3d49560f2ac39103594ec513e0b1377c2c3e22979866c19b61448d5
a7201ca4b7538aa370f6347253b0853d4c5d575a7572f93cb73a598e2e26b11a
d46a1126e44e7e1795dff01562316b6ccc6678663e66a73db285746df3f4405d
d51714679581946ef72103270c810f665686ede777f283690a7185bb0b3fd071
477aefb5dddeb38ae27286c5cccc91c8ed6ad12f18c58dd1daf2561d9eac586e
5036dc5bc31c7e849efb5edab11c6e2ecf58420f824bec440d020e7f8115f00a
862fb976b089194994a6e2eff958ae97011f0f3e416cb436babbce87bf3fe4f4
ee0067e105bdec1ed688ac35835168f9db93834a0b5a125929cd4bbb0b83cf36
738517d38bd6797afc49f101596aaaa57a7f21f89f1c55c0e7070c177967f419
72ec55a95aa7a5ab643ade88109f536b052a7eda115cdbc931df030c38b0e413
63d8501212c3a7284201bd804ed5d28e07b20693a21c5e35d4b5cc56c3b2bf43
4ee436947c56103fe77a9dbe62e04d977be7928e3851c0e7d1756d66b8113e3c
5dcf5149a34f571254fae095d416dda3ddc37b11b5b1365978e6724736da82e5
11a781c9aa315abffd2bd00c0b1c82e1c0b84e9e6c239a8ef4d488e2694ff9ec
ec5cd781a9a5513cac36ed80dfde630ca3824a2a82db5eec7415e8617e4074a6
189e7e9c1ae95a86dd050641cf4fd5c045cb980ac993d918d3fe4254df067c60
99deff54562b10e950d04248e0dde5f9ae56f4c7eaaef1e0434410f59864b9c4
45a3d238e467877b09d8f3eea346b41c7ce60fb456c2f9072eb77fc0c2860b6d
85eac3723b392a0458db15c1fbff6a060428619a69838d469c997662ba0f3f27
e0c23394165fb4b094cf23af2f332da301ed37dcf74ae74eb35bb02addbcdbbd
127d56900657f05ae3c26ba6a4860e40f133b8d018202cc6ef71673939db1179
f78b67879c2774a3cf0d6d64cc95c236645b1a943875e5b9dabee3f4232d2326
571b94c6520cfb7ce0c3612f37594c9027881f24c8a15f2267871bd0e77d72d1
1d206005fe3db7c9fb062f3a55db903a87e0837f61509e62bd9956ef16c50be2
94bce01e6e7417a53531c342bd4421a2f5f9bb76870828e583ee0b16470870cd
f5b5864e21be25019aedc1e2721774e80a66cba01878fcb573462bf7ca93fecf
da47f9ee1b3a2073f7c371d81456532c14d9f8d7c313e52fe4f0009107cbb591
4674c8b7c6d9a35bc13fbd0d7e4c096253f51377a3089ef8fc585446483f5062
cc28d02e278c0fd1d1b2f7ef9c38ea25d79d8a481a2d9718d2abca5bbca5149c
89e0f13fa39a017be320a4573ed06a7e179f091618bf0f227e4e60807890651d
2c687fef6b719ee574d3571d29d9033cad9707840962edf51a556cdf3d0b1caa
53ebeb5eec480ff64cd24afd81245873ada3ddbe5d549d6873c9206645898f66
8547173d07d074ecc4eaa0a561dabfcbb935ec18401003223f8c44eaeb291c54
305cd3ef09b7b7d6ff4e13759a9362bc485e4f3880c660c8f3a0116bbddfdaf0
abdf9e6b3cc1e21ccec5b4633e80a69debb44f8675adf81ac03cee4bfcc83810
c3d5d3a79530be2517b7531c3512575133081adfc9908e13d3d84e023f6f9883
6334ff5c4eb75eef71e4ae9e52d1daed3d995b7a4470684376bdeb57188aa670
7907e232c77126c83839028164ba4f811d3a2cb67c3b49aa92536322a1aa97d2
ac59e794289600ac43fd8eb5626b9dece6cf5c747b9a74c50f7e7ecfb67e87e6
0b5d447420a2e7bced4e2567bf70e683a44817a436a17199985a3a5ea62b54d9
b8930e38c2fca860683dd4b5cef0a2ce77304aaca3f7f8d66126b93c26fe51d9
02e170a450ba2dc678364070a3c820ebbac9428dbfcf250438422341f022efb7
42174cabb31d5e3704c57eebd9220dc936be6b9a3fa5de5e8352e12291833f71
feb279f652207a7726eecacc5e6658e10c68a9307f1c5f97ae80309a65603f28
0ca6949cc15545b49586d0771fc99ae8514a7c2df915f37952be9676416dc7ed
c6b96754e50ae686ac57ae9e48b55265b0e11dfb6bce7f49979f8f713214bcec
f6b64901938989dbe541cd8583a1517461b8b278fcf7a25215699e9d2253ddde
e45126a49e914a77733c971eb9f971a54da31cffc121e8a971113919c7d7e96d
b80371c958ede9401324639aa73beba5c54d4e383537cf8903f0a5a22befe955
3a1cb1705310821732de9621d4553f1ac4a8d28b309cc8f7043d0cc859a8247d
9c6272b4bdc56cb24e25bbeb116cf3453891c680bb4e2de177f8a005f964a1ef
8f8c8d6a1a754a7798f85e6356fcb0d02be966f672e27c9dba1dc1325dc58123
2e5208d36f16214e9ce363395cd03c2c60b91e5b5c15e7c9c794fbdff9c0fa83
2daceb7326072e6e65d45edcc01fe860fd498088b0ec23563f96021ae233e83b
585760974bc746593212d6471ba21669653d647f654d4e75c24431cda3b02b31
8b7d0ce32268e84fc9de2f225431ed3096d1768782bcbedf548d21e4af0dc819
59c24b108384c48fee845307a4fc6ea64d96ae29cb1937c249b43a1552d91fd0
0e15867fab2931ceb43a7c0170d5d19c334c7663996abec5beb3d247d53b232f
79191681f81c2d4b24568b05fda65a5a4b9140d9dc480154c789b501f426034d
6118c0bf7217fdb22ea48be66339cf711b75ec7dee819a23c93b845bac807b9e
c915f93195d570ea2829b26abdec674c2efa7d1e3ea898f3873422891d905299
6588dae6f70943d543934981b7a52360d7bb7df615aeee8e161db41db733e5ee
37ab817cfc6ba4ad4e3d376cddb8a7d18356f467d48fec42647092f42b6522c6
5e86f64df93babee61ffb85e73e238e881da2b356bbf1010bd704cbacdfb1f7d
c752b0f0be6bb4896bb234fccd6f72a843c730dcb4311e0d1b2de0eb4e3da105
3f5739ce440fdd4544ff0698f8d692952bbdde66b743985f8d74535ab21411b9
5d64b79e2798d5ea2d2ba7a7a3c0311371fdb716a3d3b888496c094b17828ac7
4a483a5122d727fae292c51dadde295537b541a875b7ff351ab0a1480f492d98
302cc8d091ad6c24be7a8d0256719412b790e086df9ead299149e616431ce78e
693cf9ea7883057be9ba7fafdd9a039233064f23dd59df8c82401a4899c7c901
cfe7e80ab9a88fb290b551267228f8d06335ecfc662d0277d836c19f9d59366c
508595585cd910614ee5b1e1dddfc23fb029b21cec22ba1cf3e1e32782615f18
7061ae440c07fc505aa2d6d9f5c7f3ebdb82ba38b3e34af15dffb3035b4a0126
84981c1315488315eb6ea8b6b3f7350e6d2fd40790ba36540f7a441c7384b577
8f85abfa439dd06a7d76b1567a04972ca967f5f35487dde2a97cefee98f14d82
99919e35b5731db234013556950d765d5f7ae8dbb0e12e34ce92970607310e82
713f6d30c757e9bd2a98ee847d0685f177dfcd4089485f32ec8b5ceaf6421a7d
e80299798b5f69bcd0539578a423937c8cdbd2796bc0cedac6c56736b2ed5c7c
b653941eaca4b9d67cad41390aebadbba358f0068d84e65d30d1a799bb2ea8c0
35e6c8c9db2251e9b7c393109917e0013cb75571ca936990f6c6a8c9d512bbe6
bd0cd65fe2f82c3af43f2ce8f9829ac57ecb99c6cf08fa3abb46d022680e9dc2
c2a6f66361f975bc10
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMR12
%!PS-AdobeFont-1.1: CMR12 1.0
%%CreationDate: 1991 Aug 20 16:38:05

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 12 /fi put
dup 44 /comma put
dup 46 /period put
dup 48 /zero put
dup 50 /two put
dup 56 /eight put
dup 66 /B put
dup 71 /G put
dup 72 /H put
dup 79 /O put
dup 80 /P put
dup 83 /S put
dup 87 /W put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 101 /e put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 121 /y put
dup 127 /dieresis put
readonly def
/FontBBox{-34 -251 988 750}readonly def
/UniqueXX 5000794 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486858b2a4b5a0cc2e1bf4e2a4a0e748483c3bcf
5de47cc5260a3a967cac70a7a35b88b54315191d0423b4065c7a432987938c6b
edad3b72ad63c2918b6e5a2017457e0d4ebc204a520640fd7c4d05e35ea5486f
a43d0e970787203855daccb1ed0b16325828b13b7c767a1a58c87902f0546ea5
404440fa6526975783c2d7a9572b8e5d5176bac598b8960609f49016aebf3763
89c1adfe6a1ffc0c53b3acd9d168ec3a278fd4f1d9b085dc2df701346c9d0887
3d230a161692b42a45bb5da343b4edd839dd60685a59aaa49fc65cd8e2ad2a9c
5cab953495172a1a9f40d5f38e922443a519dd96f667201a408bd1d89e35f4ab
98e2f68c3366efc14b5afe1018d9c845d808d4f8e07ea8168518a171ab4d6e21
70eeac099eb7ef46eb9781384da1fac3b3133bb718bc80082eaea88759745188
f266b31d0c7e791d633f16ed94e05517a32163e74cbd96dc5db066f2a5313d6d
7f09465608cb404613e0f058073af000e5bdfafbbf9da0c0d5c02a3447f2cdc1
f56481901e34265c26d331ac3f85bdcbc7c51ef9eddf2b9c189c5253f8e74282
d6f053d7d183ae17ea175e5ebc401e67d21a9fea139cbbf3bb1358c713a75843
b39a69aa2b1a7b975f53ff22d1dc3bdf7acd17afa1da21568310c68241b31d3d
03bf404bd30baf9cc19c75b958bce7155f03cb0cfe2cae0327aad4b603284a51
7c26de75b8c6f6aaa9debe4aec08ca4b646d787a9dfac85b2c01760e9c6c6162
fbbc67dbd0796831e00c477d8e23c375ffab46d289be9d2328aec2b7534ae4cd
d782ec2453e7787f6e6b4537b46c01545cba6f90b8e9a1bccac1937bceeaa5e7
8e9f368ce067a0a31da98bfbb545be555a7270f0031fadd4f9b186629e5d2c5f
d264f8f24cd5a1c0f68399ff4b29fd77c4a54d82965234121e9d12db12f68d00
6d95730d61a4ce34a3df296ccdf9fff0ad944df27cdcac1b8aa3d1352c797e07
f7517b29deb4b8d2dc7cfdf53ab206cded57182117ac67a0ea6016721b5b0372
c9be601976eace778256534c6908420a496b4568d1aec344a41788409d6d6a24
2e91667950faf5e88aa7aa3605b04efc7b2f0722becc8e36eb97e941f89505bf
ceb19840c09bb65a206cc55d1c627f20880c1eb2e6c1e5ad38675037b002808d
337242d28374ee1ba39d2309dd43c73c54dc8abb69d1e1a9168b1abecb7f4090
ecedda2b52e2888e677f260f672a26b9166fa42eb5f8070d4e20b6d4e02df9ff
58555043909f65f1d887964546945526fa6828da0caff2d552f58b3a8d0f0f86
89360b0393091aa94db0f418115b53da244aab94088d99b44f28a8b06d2cb81d
da7fecd8e7ce7031c8c409badac5f818173d1cb45a1220af7649bd8330b3a62e
e880e4f2abbd4a080e8fefb93fec6b0088105cb2084503b52f88d3208c7e13bb
8f2e4e899be42cfc5366cb26e3bdc7fc7a0230034265aa42eec5318d4173530d
1f144cb2ed29356d2dff29bcb4b0b50715fba66af9fdcb61e8a90bec0512cc96
2375b72fcf7aadeb2e766bd877aa180a2b569cb0484a99749938fdaf58553e3e
7e47232bba6081b49be2067b2596d5b3c1e600042c73d05d81e445c3acc84b32
227d4319e1d9c5520bac51756fc16a9c5c0ea80a3f6099d009b1661831a2fd21
29cca3f2cdf697417d8c8e2ddff97e36b7e932f6add83c11788d2a061d1bab24
8e175dc537aa62f6766fc43ca3edce74f50d6c7680ac77f97e2493fd47875826
199271a4048232828b37e96d91b86c15a02e7ab651ce155b247392c5c787b23b
b370fcd485106d6c727ca3e4543398b8c4128fcd0b3b9fe4cbeb7f42f2703cee
2a3af1efc229a20917ca0e5c1843a306be21ee2d06c29b89ae60aebc2f61934e
96a81e86aa733497b9a56153ced9338e233d47637552d43e1f1418880416aa7d
d9d91c43cd57a1328b8608e0f35c6c6107434fcecf5bcb4e5bbb79a441e9edb0
5da7676182f11e111351bbafb514be57ecc1afe6a88b3597ccf3a95ca6c36b5e
e71ec7662146d7fac40e16992b042004d1b3abd9ccbccb545cb4ca13da0fdd5e
9b07ab8a42826663d72882bb265acc4097dbc82829cbdcaeba411f037e02c725
2eac6503154a25d68ff39b995d9b8566c35ece701ec946b741925d465d9b6125
ce1dff6822a72d680cbabac1f4dfe89eb3879609044cdf20e73ddb92b5443b01
5d0423512b627256705fdf6959c88edbabe913137ff0ecb5b4423551a0d6af0b
9063f9a723294eabeb3c45fca84ecc6c7b4ba15390407a29f822cc0b860342c4
bc953ea06efad0a24a6ef64c4ab29c8561da7f1514beecccb3b532eb3b4c95af
cc7987cea79ebeba04c9b65e054746d188c40a21883f1b90ded83688bcbe8a8e
8b135f56f336a548676af8d198d0d5debe0997306ff87321f1151cfd25d40834
2cafebe6ce3f1acf9386a3a648b91cb5a1a5a8efd52b7bd3e52a09e299bfdaf3
bcd045aae6a829aa82d869233c70eaaa0604f919c873ca50f9ffef81dfd5babb
95227b2499f43084ea1f2c0f3820f400f2b6a3b02b39e2b446fc35729b454b6d
a0b885b26655b418b013f27e754bbd69c3cd1d899c87174c8a72d7370b2f70d0
5fd5482cd1f8aabac5217522ac8449bfe8716e87846d5d2b236e426ddd06c96e
ae187e09804907c991d20985e6da085a705cc4b21eab99c78414047294ac1829
fbb391ef3f5fedf197c64c886f64a53bd3b4e8d3447353e49fbea8a435927ea3
8575ab35051235cf52b7d01fb81be331565824275a651e5ac0f51099c3c22c01
60b41d7e642c9d9fcccb9f8c171f21dca40687767fe9a8981c8d8c32630dc8c2
7de569bf0abd803f2dcd3a4d184173c347443ac9910482ae83e0fcefcf541d5f
111ecb92ab978deb35ddc22ab345fd6efe0f6b57ba926508b4b36f21f73732cb
361f2b3b6fe25c490a9c8b00652f47638d3643b304396dc40c7f31f7b976bf42
cc050e928c816660616d3116aae6ceba8d343d357be19565746edce4b03bdf49
8b5c530dd8c577dd3cf27f815de1238bf54051a127ede65c22933bf7044b8d09
0f29c6a71aa2793951b76148505d4b42278695c2829e6d90586fbd28c7dfe6ef
43908cea4b815ed1fb1f7148a096d26ecb6caef82a942b732b6f05afbeefdb77
a97c0c6e161d8a2a328031eb231006f591200664dc1081e794f344a83e8cd672
d389c0925afb0d3155d34f2434a1aa232a43f6ad93d4417f6c3b805778a1b6b9
96c0cc18c9c65847aadc6c9accd4e41e3f251c93a3eab404f9c0cf43a5c28743
527a71fc0c6fcb16589c7e76c93aea387b5209150af55048ae13bba5b3067aed
0bebd3e72bc9665567aa07001728b4320957efdfd338da08ca6f45b58501313b
b763a83beec5143a67c3881e5e7b4bf9c4c97382df340d007048e3d1c3b8b94e
4fe5e2ffcc705222699e03b3580805b594cb584f626599b866ba0b498c779bcd
9638b802b52244c4a96d9ed556cfb8cce90ff33d5d00862dc3e8472ea6f834bd
c30f784b10ebd49b24ac6210d907da6ef1b71c05f7b309d2750eb0c169155da5
efe3d4b0895742b73cb9d41c0ec588594f23b849ff83c62710aa4cc11f836965
7c08f457bed55e70320f48dff5c6758b4e4c642c9841baba4d24d05c4f06d26a
9bbe211e8167f5b82d06eaed22759ff005fd9173e4608f4dbc0022bc960e8e27
1e98ea00bccb74680fbd96f11d7cda96667830badca152edb8dabfab66177b70
430f3d831a65ea44ffdb77582ec4f519487bb9ddff35e599c6d323fedaa36ac1
3f96fcb1bdd77b3443999cad2a4f7cc347ef92350b7641309e6973848268b255
ee238ac7f9d648004e8c494eb9a4cc3a6aa31b49b62b06283005b795d94e3a98
12869692ed4cb016541c112d2fc38b3d6e3c85b71b2514bbde13d17de7ada948
da6e008d8927015b8a1ac054ab45240e938fb35cd9de0d6ec38ab5e48c58a78d
1599e8b4c6f553fcd427cd3af8dc25ea81a5ec107ff9cd5e2781ba1916b66c2a
d61faf491fb72c54089d8bc47bc39440aff474e4f4b0bec58655945a4355ba65
a961f6e08059a0bbce20848fa508b6256e9d95001b815c083c17fd1c75c37763
ba3096a23ecaa12df6d3cc623837619e598b082493acc4de7c3eaaa7391e94bb
42b535c4c89b971587e298a41235a8b9ea0afcf50450b7c927349d7f8c3f93b1
d63160fdbe84132668288b29b553a7e31f7a6b71d60ad537e4f663c4e7087be6
e2116e200ac8d8c6e1eea6ad641131d3bc98038ba5d48a0bf5c02e1f39d70374
516cec9ed227d8596e810a82c08ba927d3485cbedfb6f1f4f75d8b8fd45cfe71
bbb8e9103c0a77771a510a9891b1ae62f49e6ecaa64e2adbce7d91a98034fa16
fbf0aa422d97d014c4844754fe686552b1a6a003ba5cd8de19931215d2a11230
fd99512a10ecc08153055dd0e3910b21ca3782a624cfcb61aa1323c9b977c1e7
d2f905ff3f2362936a3c113137ff1ffd580f8314135d85beea3b8b6b4d14fabb
59ad6ef3958bc370da5a98ba1ffc8fb56abddd1750e2b6541b47b53518aff7d2
1d38a16095fc10b4a21f5034a05f9ba5c3356f06c65b20d5fa0c10d038464758
60e26f4f6ddb6e5d789b9b5e1438b6fe2c5051983863d32797ea507dee2b0d3e
0a91a1850af6f9cb5306d2e0bfb387d4c0b8111f644ece7340aadd27a4e4a702
9d747ec23ceac88d1c3579823a78dc7fce56a4b71ddaf29ba5bc6b5dff0f3858
3a4909a6679b5553d741da92a1ef64c64768b93b8a1cfd5ae5ed5cbf3d312060
b64318bbce6211815253f430c190e4265b4450fa2bbebd8eabf5f78c5b690eba
b8d7ae972fd27375f3811c52a5bb59d38f828ec0873164c6d1e239c3306beec0
a1c672cc6a5e463df1c47f2fba4eb7e131acfd1b07d0849bc37dea8da771a88b
1f339ee73e59a6ef57febd479aec7757a629414282bafd2d8edc525dbb0a623f
281e23bc96fde40f003f9bb3dc00465d8eb9a8c93dda6a312fa5e284e5dee7f7
915233fe8167f5698b1772b600c23b7c917daf8fde7da0e57d8b37ec4051d8da
6d813b8692cd5028865ec4440f1b028e71e51cb33d306c286d8dc9df3f745960
7b858bbabe3d1b71e9c76d6e58d982bb42e2575e3dd962a122ca640f3c302db6
c9649410b1f25e7951e72dacdf11449a49ad01f32c0295e3650b612cf30bb0d1
aa98538d94f095b03c2527c104f061da514f9d7f0f01c03b78009d6f40ffa8fe
40f89e549a28ba801a253b647527bca74ace8cc6081daf04a0e773b05671f21b
ab697032bc62ed25301e209a9b225ef62914feb31210ecfdc0660001ede0f738
3c1cb30b2d35f224effceddd1dfaeb320bc5e01348cfb1dbb06ad4d73d985e57
c0a12123c7d946787b3d09014fed62c5f5831bc8296d143fe05df37c9956af0b
7d0c43601f1388866fc8063479425d702c888016be39902b7a55ad4cd3c6ddb9
79651fe7f0fd48ec9b59cdfdf3ed6b6e7cea2d0de13252f43461eb3dc94c03b4
828aaf51253a935c643e105222c49dbf5e572b1f978f4874f3bb6b7492f53412
b93bb8953ffe96e7096ca045e9a618a552aa061315f3907112681076968bd8b9
7cb3cd06b232ea1069cc641118d9e4bd3b5f1c03e44b2f85c35a09aa3b706ff4
ccee2faf2efe3bc612ee15eebb17ef6f645d3f9dc5bbf945f397e4a7e1e5c28b
4909bcacaa0a500b257b73f83c2ff41e15f41c7cc5d42d6a4c46d5c5f9582d39
ab28fdd2361965b19510e8ba67d0d0478cb00c0b594d36a643d546899da4a569
b999277798a9aa32db2eb79f20c00abae7ea816f02ea3c9b5ea926dac5916450
af1428564ec9a826f9065728ea7ac5f792f8d366c79aa92417f42ca6930179d5
181f16547550e303f6083508befaad91ee7f259e35b365f31e12c4e62fd88f76
b87194ca24de191b6cfdc7ce4939ba403de64230dba46596871eadf399ddc49f
e7da89f122e8a3784e4478eabf60e59fe55c543e3e5fefeecd49d29a40851ed0
df9626eb3e51a95a8c0601f33ac4c0e2d6ef54877ad1080808f89efa81ac2e8a
1f1395d6c7579dc2c675a537530e0e74054122f94bafb25a6cadb84f65217239
8a881e3e57e71c2e511fdc19bc74c090727cdbc97dfd7f3dc8d01d0bef118aaf
fba461982ce4f5561b329b284e31e803c5329c585cbcf7b677e57766c0d1b845
66dbccfd35fb0808d5e54ed08d70e59881a5f0683f56d62a6e3ac24c1e25ef42
a2961beabcccecb49f1d3a468296e00074e1e838107fb6a30d878559a13c1680
96fb2056b695d050990d06187fbba341af8d146dbe1377184fc031e8bc6c7f01
4ec4db378930f2854caaf5be726c00068066afd6105b22cf8f03de35e4e21eae
0a127730d9fd0a284a3d1f4b8efb1bba25b0ca278d8bd790d3e4f1d2a8af2eb5
bfd17d698f44d05f9a85a181eb1d166393824ba4d4405694729f86df4d02cd93
b96e00fc1934a3305b6070b29ea54e66d31340a2ae39182bd85fbfabeb561894
54825e9c5bb56770caf67accb1f41cbf4abfde1d335099156c9349f3e8a99b52
8b29cb40ef9f7bcadcda32f31f1ba44a487414930cbafec092a712bf4195c502
82736fc5fcb0d35dd44ead6ebe18be44a29f3bd3533bbd1db6213f800089505f
caf1ce23951cda476f5da8ccbdbaaeb1853601e05d7bfc3354b248198dc398e5
1fa8a061dd22e5b2e3188faf2837394875d18ec3e7334150601d9f33a1c9048c
4d61960b8402ef31e6f4e4054cdcf9324a92635693083e8643c0ee9275f13fb3
5f309add98c03323c5a5f65b7bfbfe02475478c3a8b07295ab9d6cf215568ef8
1a818213dbf3c4ce931012396f153bcc2cd22051d17da76ecb56d8524010642f
dfdb10faf4a388e9ed2e13cfc6fc59a14816e3a7d2383c07dbc8c6ca0e080a90
ac5063806ba31f3b501fd6b417d7c337d33e66df287ffbaee93e3f808ca112c3
8f8b588a04a3f3ea858e32f6f1479d76afa37016f5075def530fe71eeb1cb897
20f059e6113827ac02b8b63411416acbbda799a559d9a34b75f3515ad4990941
474f08dbbf3f520e2ddc1d041442251574d22026597fcc0c6b2c3b297c827177
87090c2c3b2526d0923721181e9576dff126910c6bf9dce69835c2ab3eb885ba
e39ff9b6db70267f0852cfa756d87a9a149e07e58f347ed6fcf9d0ecd6621094
cc0aac88d59c3fe0901410781962ebbb9e13efc261bba264524f93f4774aeb6d
537462ab6e04861f11ef9ea674bb1b494bc6e365615d0d04bf396789435d37b5
84f3dd73a5c804197bf09c2e51f36701f39caa2491ef03e349c21af581212bff
4358c79acbe3cd231996c3c80d2fa9561db175ce292b5d93bc498a1495846cf1
194b2759694074b6b10610e79cdd37b02716da00a11b8df64ab691ca9f14461a
aab189e9b406abb39e21487e100909fff2f28cbeb3c6b9d1892eb929541cf888
d4d4aef3bd5dd899345fbc663e084656e9e5ec92a6f08cd992a5444cbb6a518c
8fde2a0eea63b54e08b52e64c79b0ea27bcc8cf2155458d66400bd8f9493043a
d62b9eef461c1f6f256607da3d734f0c5eb06f968231061b49253afd0149c08a
474d77c76c519bceb21bf5688c5aba0d94c44496c84c68e71001c9f2c0bdcc48
13d8b07d538a9e23bca196cbebdbbec1d4d7a02a5900e2068c08dda844ec3e5f
61288acffcdfc1161281afc2517ba3f4751a418aed1e2783ddd9357c92b7e4aa
3ad30d225d1b171669cdee7c31c53d0b8e65099019a53697f1dff480b723318c
d31efc04fdc4fe1536b031e1e0bd8cc204d34dc147099417dfb3502e30da91f5
cde3bcfe417820f558da25159671e9f3fc87ef491438a385453a83bed39abb4c
d4b06355330048247e8ec2976c39e6678fcc307d25f41be263473af2adb1c456
df7840c810ed3795f85546fecb95e89d186687bfb494ea419066c5994d8a3484
414fb3abef280c6f4c13e400ab184c1779e3ae0ed3c538ff4d7d0c876300e79e
21f6fef5aa471aac18135cc86550164bc68975378294b79890d7e0efd3f74748
3936e13894ae7ff9c98bcf207c66d247738bfcfeeca8a3d98969a48d88ba5165
6a4feea1acf7eb2b5e1ccaddffb2510b85191dcc7380411fce70b7a7946da366
3d3d320f7b318880b45820a07b28fb795ffff6ed0e372a73636203757ebdefee
89405abe99181c14c3b33dc6d4a7999330ac578bf8315adca5a45f5d1572395c
bcab265a910c60f23a71d574d7e5bd06ff5235dce07d7f71a540c0891b14d67c
c4313c1e7bb3c36f26aba9113f33f773f415df3455fbf6716c2654fa1148ef27
b7d9c3be441cc1dd468ec28ef427e1c0a20174c4d91b671f9620be
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
%%BeginFont: CMBX12
%!PS-AdobeFont-1.1: CMBX12 1.0
%%CreationDate: 1991 Aug 20 16:34:54

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMBX12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMBX12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 45 /hyphen put
dup 46 /period put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 75 /K put
dup 77 /M put
dup 79 /O put
dup 82 /R put
dup 83 /S put
dup 86 /V put
dup 87 /W put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-53 -251 1139 750}readonly def
/UniqueXX 5000769 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486be79011d1f5bfae5c1f476ee6f05eb1d2caeb
269958b194521197b312fcced4867f3c8fbd030bd715d8ffda1dcd454b174e7a
1a97b59fe770e67702519d9d9b23d61ac08424d555242a8ca08c49aef300945d
99b999a79ce74804ae6bfde623f4463371442f6523a5f6ce19c839a708c02513
2e22c696c8ccade45680e5197189d0f98e7f0d5f955e353970b392cf530a68cc
56b0035ddfbf206c3074beeb0739dcbca272a6e629fb7aea2c5ba7bae50c7b4c
a595df78200c352997ec3ee564df229fbb5473f5e8ccb1cc0153e9a7e299a8ea
a29b69d1b622b1f0cffc58291248759607d91150cb0651120970dc9f743bebef
44f6ae92facec57658999c8bf01f60611560043962c0695e1bb87d090e0fdaab
659d6557208a660be9aeef8ae55f71b8bc76394d792967e41bd8023b6e7f8c3d
9987d5e54c53bf2bbb32855b946473b44833bd78873df8e4c7e668ffff25aabb
8da4148f744b9d0524d6cb8281247b3052cc5d66f3f1bcf8a56a3fb446ea587b
d8be30257652cee035628aeddfd8283b5ad21b8b1480ad24d898970ac8a1e33e
543ce4e3c48f9ee621c5ce3e8ae930f890011b630866c988606068d9e92396eb
f51bb3db204505fc3d09d4701ac703a14d92bbfe27bd7411b363a88e33a8e9a8
025ac31f21e73dc52b333b918d0b1270c54873a490222d041a66e0192612be6d
2c88958a8f70c10390146ee5091df020ab97675e8e6acf98b28b539cd0a20d24
a42f535ae44b8f5e9290b38fc6b02e1bbbdf1aca96558c2dd5afbec53f03ab51
fbce958ed4a65b17fbc03f9defd4aea4a15229f3c320876235f2d8b69bda5f48
03a2798790d35b394c63295997dd487bc603cdd10d18f3e3fcc7f17d2a6afc77
f1d7f6cf69d2a86b104b9d3b260e4a78716927a485ad8a650d610e68378f4514
3610b087981f0a0655090163dd2dd4d0030faf6a953896a9cb2cd033ec9883fc
eb1498f651753881436fa4f51472f008024d32c73604ecd1d78471719570c094
f7f2aea52171568f71761fd5ebe8a3ba6184e40300ffd5665e68d66ddd9195ef
8ac93382eab9f25ffe36d2740961078ab87ff333afe65f43a4d622036b50eefe
ed536b6c196f21aa4b792702348c7b97021bcf600776a0aaa0ba51efb3401925
aedb3b4a7d49d90d4ec853472d0c0d7d7a1f0c14888fcb21f01f2905135c42ff
e8fa5e964b5a4161aed0663c3b50c39720534d4ed6082bc73a0a43d1521090b3
b01f0fb36c160936c933fd88719cd6b755fbefd5501f5d9f6434657d381becb2
5e2bf2295acedbdc88ed37937ca8b2c95d85bc7c04cd3c774af136c21c0905a0
01061301d7a8e284ee3bc2512776136dfcdde28878371cceacde673515248995
59d31e6b03d3ba2e7081d002beab33df866602eb2791fcf4ac057cd7da131d50
1360f2154f8c3e5b5e2a5bab8cabe850b9c249960921a660c112a459e1e84e6c
3572a9e2ed1dd8d233acc886e021ef5de0c885ce6e7cb32933236540bd94186a
1e20f3f7b0b5c8442ade63250e0ba6bdeafe6ae84d9691c7bf9fbc30c3de8148
8df5ac8ea9bfb7090bbfbf7131378327573084e3efbe9aa7e334af6418590020
b91e8f990aad39a94ba5d36f98677330d564dfe606e3a857830a5dc7b4062b7d
3b2bfd2e5509f4544acc65f122160e2c12a9725202cf4e37484808d9ad535de7
899f2c35c80516e0bf31b357637c1ead727dbdc77a74c7bf35ff3ad5a7884fda
d28214923e988e93374a00ec1f1ce04c6e766bd5ae69666fde6417402f579f7e
8195567af8950815416397b2e9a725ea3e78d03187bc304e2707abef636d39b4
60f2a54aa59e9b7918181d626f96d385d8551623a4cdeeca5aba48a3b3d66fa3
fe671056358329e1d95fea78b962630569028b15340ea4a216a8591d79fec1ec
d5032c40330bc125058cd8dc79afa47cbc0fe61d36c5ff4c428ba3aaf5e8d2d5
89b49491294fea5b3fc3ff2f548aab3ddcb4fd83d8f13eb1870b6775ac79f096
2472be5be935e96faed6eea165e39ec0dbf1dd1f0069aef78d469ab349c36a2f
cf9763062fed39cfba89f994658fb528f00a68c37502ce05449c308db5dc08ae
d3c7e50cbe8a39f2506f9dc79c820b7c749e02055fa52742b65df5ba2f43e160
c9dbf526f20b50eea51f43de319e97fca2bb031b703dac78bff4376ddee0f20f
27b2298a9d8511bb4696c058faaee7f4c60c45f11fa28a8d2fc97f8099027305
0da272848aa4cf294aff66a7d08ce3f5ea7eee17aeb757a01541251681c2174f
756c55c3e3b718ace70fc124b0e49ac1b48f16bbe1693bd61fd855ffcb567a89
d5c259226acd218f820750e32286bb0af20ff7ac0a4f056c070c7bb3949e9d18
8bbd8d34fa5117be89f7cbb33bd43f2a63c01301e7cb805672cae17f8731483b
89dd3a8925243f7e68f28c7d0799106e7c5d71d20694c79252b1efa069236236
cef99fc0e0a700f806cafbc105766fcd530faab457f7988af99d00e2f46bf143
a36659645f5f8dfc7cd859448866685ef3685cf4e91930ff0d9ffd90525215bd
b91c502bf49ce4c4f7d164b91ae585b37c1b3ac30c9db63d9cdf2e9a21677e99
b3914cf9c81efdcf64ea0eb36f67052ae3c1a35b07d4ea4ae28c81498a035ca2
f50e458aefad8126c25f3e2dfcafe7177e83c8a9286a5cefe9c505636eb04948
79ff10ed6b854dd79a7d53f5c84624867fde012762269ac9d2bcb74cd0b40598
b33c436faab75c96b0452cbc7f10155a47fedcb1cb72474ab5dca1c15fcbd826
3054ba46c32fcc258162f0eb4173decdb611b4b7923af62863d8e04e957dfac3
7a55aea65bc2882c490076f01ff0e96b39c92aeb4d23351943377cdcb40ef97f
e48df98a9b48332832d25485a50e887edf89820aa3f2d7f4fa4e6c8cc773dc85
d132d5dd8259326bdaa698e2f31873258961cd02a18fb66881bef1e5d884357b
9ec3909969f2def35c6ca370a92216217d03a6229a1f5727782b11cbc5bca4e6
00c9dedb075852281e1fc1b2d68081a6af1990d5571179e831d9070c0b1a7aa8
aca01c07bf361a91badd1d70cda42e28a1551b570c22c81dc9a8112c3db20b64
31b917aab753333b5f455a1ffa73049cab1e91eea08f907912c02b824ea17a24
779cb94eee8ac8b62e9954de7e8659a62deb91f558902eb45eb6f626e1da4597
c1ca611426522a12b16b205316b90e3d06610e3dce3b15ecbeea5075fcd58cc4
4a25c0b85aa7381cd3fe528ea3a109d71c5cd588d9f7cf579102b207cc5bb556
01e124cf91858eda13b6adfc2706a04117e9c7109fc3ea06e06521f88589eb7e
100f137f650825706c86c4737aa53a6615d5b26983633e4108dc7dfb75845337
ccfce968597cc5a8c481051bcb239a017cc6d6fb92b2a1254d54c291de56c4fb
b773e7c31eaeb0957f62a6364ce8f87052c02b67d2a982505d549979100c9262
fc252a1acbe68e8d938ed223994fcd32658ca8285501242c51f0991b6db2fdea
7d1a3c542d133a261169de7d2a3f8332623cc585c08aa06e53dc98a04ee820a8
dfd164bfa90873c01f2c47511b3d1881ae3eb9783405ba2ba752c2367f980985
585493f60e66c3512a1545a7199501f4ad413cd3c0e377993811440993528a38
8d3b3681e84cdbcf99410e36b9c64b76251a024a3f62839600f5188d64e28bb8
c850b9a1b19c2bf7486efcc752344ec603bc532c56459df8818e2e2a35e8e335
dcbedc2d8bb503802e604fc98bf55e729f7a1d7f814feac96579ae535b96bb9a
43a0bdb2355ec5d4e6bb7e86516fee21ae66b441f424d7aa43290e82f7ac6f16
e0a635bd4ae15b3a9e2a48f087d66f4cf5412d36402c5f8f8fb10d55f23cfb1a
b5094931cb37e200fbc329218a9da80db8a453b9e0669af2b9c80122d809edec
ef521175d68878ac96348546a8ade3fe2fc01f4852bf5333ca5853d3e0ea29d1
0b36040f01f3ed7b3a202c36b7504f24410f6400180bf48f41493ac7755ed728
7134d772634154dc87b20b6b111e64e500be9ebcbb1976e559b50b568056efde
8d3351c7a7a96489a56b0a877d63f4720061d3a895538b9ce688ea3f5fcacc13
3aaf194a4f1ccee8daac50d663269aa4ae7c5479f3b5cc64b511a0f6ebc2d2bc
8d7c125acf8c462f349a4550ce3956f595d9a49d01dc6c29cd6d59132288cb8e
ca1e05ba4c2e134f49904fcfbf73ff9e89b91c723d1efc6fefbe9700c314356f
2f45a900d6a739327794ae14070c0974055b73f0b0cd65eb1799922b88a3ae9e
d8d105560db3f7b8444b8a22470c82941d5c23bde2bcd4167557be09b1d345f1
1b1e3a4d5a3bb1b6f7108a12afe26a02b9fd717d3f248ed82129d8ef416c3d2f
07c32e10045ffcfe6257b6a676433d3fba1edd3cbd24fa6a8f3768764006b45a
bb32d62a2ce461867c96171b3babb7a088923436b169d3d280c1a92c06cdb1e4
07ed6d2fa20ec8e4e275e79b8c7a8e940bf95905d7121d164727b70abc42c016
0fdc93091c77e46552cfab82e3111f3dce31bd66c60da2940f459f616c7b7294
fb9caef8f7d27e15a658891e8c3bece9baa8878e6eff26c1e2e57fc6864f72f8
683ba269d787838762bcc5d424225e099ea0cd8aa499caa4399ebf1555f231aa
f219d9686a28eedf662e6110c34724212a2a74dab2d141e60968a522758cf460
e64cde3d9e6bab8ef09a6c01bac5e2e73caa06c36f153e769c98e4884e3adf3c
501249960e58a54e71201b321357f2dabafc2ea6deea57fbf88b1f326f9ecab5
3a1f391f49ed488f69664031e3b7a3d121924fcdef2033869f5bbd9e188396f9
6f0898359391c0b5b9b6b979a6fbacc229e9c1437bc79cbc61542fc9df89a4c9
4e07a26322bfed2d5fe7a2e3486ebcb9c0fcfd8f0e00c213746a6deeb15b96f8
1b0c5dbc0d4825a06e6f25a3a3063299b7aef7f8a19af918eee7c09c54ce6827
e6cf41c47d8d8d7f187c447dc3e8c44a0ee9f90779674c969bfeaa2e62718238
95cc4fcc4839dada1f43b0c22d4f304382ed119c86f73da1eb93dd791753ca59
b50a0af808cb295a030b02ba194d544d16c9fa2bb69d968d2ec0ffb6daa5b56b
bf03dd92223671162d612c766422523dfa2974927947a3a6d615073449b4e93c
2ad889067dc54cd07b3f3267eeba8a24eb47bc0b81525cd095d180b8f491e0a9
fcc8335c5aceb396564b8ecce7cdacbc2de0eeb3d2cf96d1883f0c45716365e5
a0346b2a0cd306aab59730368f18899a055d62127cb3f0ec5aa6e18bee290d2f
650f9edbb609fd08fdad0a9698923279cbdf5171adb83de9721a04038bb12482
38f6ddd2fcc855b5b076b8b54f3b941b028b391ac840151457feda1aa25fde1a
8e81ddb65a5e1ca6e56d7950f568c18ad5de1e69e1196e83f0d6af2f23382784
d2ecc44a7c304d4e93fcdd8398b8ed4de46107207869dd0fde5411a6c46187c2
c9f6a3d4c2d5a0a076775d53b0887c4dc01553c42b587c2bff18c3fc08a1abf9
f7d7158463e272fc89ceef3be51d0aac33595cda4e9b3e8881675866439ffb0a
b11a7531728ca1a215c5ce40b37e950be718127ffc0478e3e3e7df2901bd2f64
6de50b36c77b1dc9fb7fda54a906ead3028311d0fa8c01321756dc41e87d42c0
1cc8b35752dc0fda31346be67e3b7c1043dc077f81b100a331f78a53db0c52d1
93f9c82f59513768a79b00ab61da9e18c9fd643220f6f942a653b7bd1403eb62
9cb3d63303ec0fc197e47db353a5fd1ebb6df0fbd6cf25a8af25e3a67afa7521
a3f6f8da4b35eae6a6c903289ef88d96a0b940900b25b4b8961434cc00915475
f17b2b47b48f48b10b08fbfac6d3ffc4500f3c758ac37c630a97744baff204a2
c7ce7122e69ecfa3d8f620591cea46853963bd58a0dca1ea70ddd1d473d9fe72
d05252150bf6b81e47792f415ca31166762fa0c4a6c02268014069d8ec499485
d4bb058a7750f1093d4194371e241bcf017cb67568482b23084d94406d6b761f
6201837900ab7f72c185d9f7596efefbe8a76588cdd73b6df386fb2e9e3d6162
2fcbac17ca795fd38e4f315dd3a706d295a2a127dc6dad761ed2024c9373b5cc
8d143119f0ddce83f4db34842661f699cff3024f88d793685275e93f8e5a0d51
3fa26787b6ad8b864540c28a8492dc2f7760eea2b8cfa4683d055570bdce00b6
b4d9c55d9fc8d9eb0a09c81f7c7e0af5c01442f1aae4c14e91281cb341832f1b
4c8febdb69385949ef6cb2a729e563f56a8950cc202f0b507fadbc9a0a6cf6a9
afe674a03fc0ea005f453ef07482b6fef9ee83c7b1230f7b7e342ef1d5767751
898288277473cbcaa295c97c6f131cd726950ae99adcb0f3aa578c5cabf8ad9d
e6303b03eb2fe6e6b0097ba42289c1e013451cebc13fb135a556f1299ebe2c29
7d25d3ed96733ac313923e27d688ef34a52f949b34accfa5b25b42fda2d1036d
78ee0400c42adfa009ee972b25100064b8b58b547f9f483315baffbc9df3249f
5f7ce525384171491500df02e9d1b838275cbae79688fdb3005f32522bd136e4
82a02e26850cd34700f2dc355d9259c7af1b9e3f1ae0bb885048e77697a5fef7
f8eaf0733a6ec1ad5525c4cc3031d3d23efeab0e96024c701ce8bb53711f2c9b
223c5be3bec9761270d697f9d47bf4386c682f579722a50e3d907f4563e55c12
04045d7e60f6c4c371bb15d4a442afdbd07120cceea05d4432fc2759995add12
3a17123ca34f9046c8355a4ae9e7bf381722427366b0a08fa0311a960daeff2e
7571de8f121668cb0037b8f1cdddaca90bbf035a450fd937dedba5635d0d625f
74a01d66acf08f50017afe2f99d74808fe946036ffe97b39786df4271cc15180
80e6217d90eeacca636e49b708fd10ca1bfe20fba6207bd0f51894753e3539e1
89287419b6c323920d3a3d8be7c39236a198e71f2df16f41362e554fddbc60d1
21402b1ef9ea9f1cbdd6a536104fe55e582f8bfe06ff2e98ded3b81b29e8ff79
a13fec40d504843f31e906b6dd028565d8a3552559eddeca3659508382c8e4ad
8b4ac0a9dcb346d57951af725dec33250c7e1d97089ecbb884649ca9872299f0
899676ce7d23ce3f744f715a43626ca0b3e180e55a088be29c843e3a5ae9d45b
39566f3296d5d34a8fa734fe9b8a4758eab5fc5b676208f2976533f20e7a08cf
11bd96b53f9a4f15bc960e1ea665debbf7538ba2eba316405b9c5c65387ee237
7d42d9ecef7bd87f2eb89ca1892dba0fb69deac85bc2a7165fde75b41374fd35
ca03da92c261b5810095facfa27502f7491060aaa2e18dd7cbaff0a7f9fe785d
3ab47980416842ae4fa1e9836d06f23d95668a8a28ac90a867dad933259ed53f
bbc22d7b844529577ae42053c1c4167a62f76706e8cab7c274ceca8b2b1cd0e7
21c566cabe22903fc506fc18770c72a7a5879ef5d585800b7d0f79086e26c666
d06911280706a4e29ab99b2a00d0ac85a247f2a4bd24525497688469c5bbb800
2ac1d7ffda7464590e9f5e5778ef330da6ec2453c1b6358c725a08c3c87e9b32
5d6edbdc9cc04453d8995b6dc19441b00817586d054ef01b850c887fa26b1e39
fb6a67a9bb3bf6a58ee9bd1c2a22228a125439dab01496b8eb37d049ede46714
ea625ee7b36f8a2a5a1800573d49e2e1f4b5195d8109ef85177802fd0e18169d
fab02cf868800446e44ab3f9e4c8e8185ec206b3970a35ee66df6a017a5805d5
1dc76e9e85804b39f84a96eb430b3b12bf2010a1c37616f8ab90490d3066bb17
40e1e582a38a5e8c2a8fdce77c4ebac038ce2af97e556c176ef222ba96d2eb68
6fb3eada0190017ff5253b29b864efef638b682fe71cb9b82aa5823c9d5cf3e9
4f432c80c842da4c1c2cca7ab0fc949d11c897b29996fd453cd39c6881b9bb52
add98e05337b4814c49a11c86a39fb9e36125e0ccb91379470c9d6e19d76e527
d7e9223d872b7e6d0c747e411e1da2b59dd390aeb1b4435b00b918afbd3d6d7d
eb3f9b360701e213ebf572b1760b0b491f3d1a6e4f4af3b8e27f060b82d7d50d
432a8c8b9f3b744cba7ab3bcb79ddd0f3edd839c64db939125ca26defa8f1766
d135e0ff3b96ffe1af1baaa6ee04ae0fcca17b089d222b10fd2f4ab4e4f1596c
68f594048f7ce229e643f8a52807df9d6cd5316765f01cd30e322616c47afefa
bf2889f65d3f5f5ecab3a7d0321c5f9cdc6f99b3b9a05337f123d207c94512bc
eca443221af66a0e07c52e40f5f93b734d4c8e0b6d267df0c189b4219d7b497f
cd51a2bbd4cdd10c4c29a7259489a88fa56ec8c46eba447d1ed8821827765d7e
4a6281afeda956f8b773699009621444c5ba73ad7062363a860b15f0c883168b
b2eded9dd6a90561574cf6574817c2be01e05cad735e1e10aedf23484d0bc449
e96ccb9c4960814f0ba3361ee8d5d90d7776476a9439f70fd5ab4a1a2e7c399c
e9dc0b1fe117415e2a3790fe3d70ba098903a74b7122ec6c155b25ef75d1b504
82f2e774856d58b704230d5b577c695107bac62f8b43564b1c76c9b4b2fe937b
592da83d633ce693966f2a7512f061ab0c378b66847d11a57d26a64c3d719ef6
dd3da4114439ea71d3b59f465f801354fcff639810d0200b18300c49df04b29f
dca21e4f24f4b4e365fa20d07a8063e6157301c7ef1f544d9c0c90ea3d76300c
46d51269a99e3dab3feca88d7196d2fcd931219a1164011d0958776819d443ab
dc3e977dec46dbd587579809cca22886cf02fbf1d0151119a5c635ec077f54d7
c5b0b9c8197f726e9c561d24d5bb5a4d3ba413f02a22cd181f98f401c4662dbf
d6c210340627d29c85182dda0ae38e60d9a41f1e563502e29d28134ae1c8be8b
b518ca6e1c7a502277553ae39428a4e8439275a3d730d1e6a068554dd36430e5
3d653d9a2081992ea8583db2c2ecc3be612caffb9c7875f32ada51fb1459213f
ed13b93d5b5862574860e7be031a1d6901611fa8a57ea53f4067f649e9489354
7228a38ecced2f30fcaa004c54a2f0c803db80c61cc687a1b44ef3518f129459
29c3c15cbcbd05d0ad2118f0560220fb24bb74411e6db3afa1daa9505704c1fe
3a9b7e95b339340fc58c263500595e9e3d49932dedbdb5eed9689e811b2d1b7a
7db5d991a356c27ad857c6e818daf9ccbabdbf424be440db835d0c7396f3123c
3a9255186d5a3ced3e2455b3c2c24016444ee581b4d306e71fcbf56ab3f31994
3692e1793b34a7fe7a13e2e5cf1ed1b8ae8c9d24c311acb43bf635445331ff70
277ca3a7ca51503edc6278cc2e6da58097cb4b2c0a7e4ede83f0a59f7def0665
c542d6f017d6b90c9d81f27831ac9f798ddb1db297514e437bcf95018acdca9d
72004965b5273bcf7492e0a227162cf96b3966e4c5b8ae672311974c0114e665
122d866575f5493fb7aef81245a90ee955806ccc891cf1c5650ab22e9fc4531a
985460dc4b519b3937b3d06fa49f09ec346227f6435d80c45abf914c7ff14f54
c015df54bb76a35c97be6f7edb21e0341de63b2d2dc09b43043df102ef308778
fd728429a129d63c679163b9c20b21765381cf55d1bd0d316d0176afca57f4f7
59cdabcf2510a60e9ca905f14cceae22a962b6bdabfbd833aee47edb8fea6722
f1d4e3de6083b18249ab1ac502317cedeef4c0d3097d05f74f4c7ab607f05a61
0a235b3259959d519f7bd7facf7c12abfdc2e59476fbf1d9335039480d4dde1e
c1721f041747f2c5a31bff40b8d12e37598fd7457ff4c684da67dd57f790d861
d788ddd521adf97fae6e9e215c550fc33b0e369a44e832418f2b2d3012f8b0da
f130a87fe235d8b078f47db5fd2894853d4a18c7e37025ec079d249309f96134
908bf3db1d5e1fa883dee9d917f0c5c2f503e2818a2001128ffec2dd60b55688
24718dbe35934c5d27ef70c93d8b5b6ed7f7fa5b2a287743c73abdc3c9c4386d
25953a73d86f8d1bb739d0ed604dbdf32c3b0d0ccd5b48e940d767042fb95bf5
025c46d549590934e3fb1ac6c4c1abdb6230bc855e4b8eac9dbd4d3567291707
17b69148fc1a112b7ccb5c9132ac80e78beed54afc4f59f97ab27898efee43ee
38eab0e15210901b35d649800855a992c6d48054b73c66d190ea1fa20b48ff04
3fbaa0326d186194e453b7513a9ac571ce294c3e70f15dade8bea7877a264947
0c8c0c105749c47a6046d22ec395ffd7c76869f3ad978f8dbb0711f69347587b
80707871a6aed1dbadbd840c3e1d031d0dfffc4b50e0255c90897f58836c2c81
c3081c8a5b326a461e8b7c126530283e2cc1669df57e979837dc18f8d4577988
41e7e3f897de37521f9555368e7497f90a91c77c7a99d09a40e24badae2718d6
4a3b08aeafefb405a01cd156e39121cc70ca67289133b8fdb0096e658779e431
c07e559133a566d78b9782b7ea9be8d5d765292dd1b8683780e9512af9a3e2c4
7c16dcbc022991f24c5e0101b2800e7830f78e60c3a1f8e3e6daf6916d2f7f36
f590ae90ca66f20dff27d347250baba95dfcfd2269979c56fd9a67297c2b97fe
f002411f5fd13162ee0ebb1e494b882bbeef84fa7647590075af82a6e1b22577
8a4cd261e273c6e7f66c729eca0aaef59dc58f1f96ed528a766527ec36d90c64
29f7d883bb5dc1ffaa8bdc22d8dbfcdadd4b5148b61537446a5ae7a4ba66ad49
f0aa1479d7057e270f21ca318169d2d4b961fc8effb19371fc206f5006cb241b
d9937c63b0f288f62d0d60ebaa690f17a99c1d2b3512aea4bcc8d60267c0197f
34fedd9d57e38a0133e5d0cb8f30655c8ab7261afca9124fb54674a16d80a3a2
6b6a4c5cd3966c75e51d9d09cc340e779229fa13090218cfc3bbccda03988dd0
fcc14a05a4983940509dfd9e2f714c4d98d42cdb3d9a97faf0083d129f6875c3
df6dcebd14e0f89c4aa9112f9110864178d705d7cb678ecfd8d1f219c8aa9cc7
9785e18de2df1f2f7b629bf0b6bc11d46b9d49c7696ce667c668b2b5ef9bec48
28f0fe6257f98fac2a9936d2bec54ee305c6c16f6d4fd1a238a2a5e464773d97
47e35314de3883b6e7062b5eec6001d9659ba44919ca15599244c359a512387e
32081dcf8edc132a4d0e18fa419fce9100e84c0e79fde8e125c59aeecab3f35b
1b493e9ea8dbd264d217847b1c9ba2e6541242c2fcdc896383bdc4da810ef3f5
b931b82f40e2e08381ae88648ec277270b9441cac48eb32d852ec8ccfc3a1ee6
4d25a60a097f25e218a9a02272e3b921c89aa2b163bf55425aae3ce29f9e5f52
6df7a2665582990ab5ab8b123870019358afea71ac88b9973506c92863bc5431
cd8440eec2b9726eccd1f466b14c560108e2ed5630c00e9562b708d4b5b92978
712673ece8105b16252cea7075af2040c82e2725063c92841292cae7b6e7ee3a
ae323d6c30dbd2171a5589c1e7dd696cf7a595233c39e855c551846931352d35
858f117d83def54973de7661eb3ed0e99e42fc1616b2cb08ca1485ed8dc93e04
2412291830416e29da90f95b5f6aeb56d03451400f27ffc38b38149e8c90c8e2
2c630e8871d8cd9d6cde434094235310cbdb6e54cedc82c06ec0fd169ca078ac
1f39aec4ac3a18987c9fcf3e81d7c30938f6b6551bbcfc7f1410e9c5f6ba637d
12e5d859bcca1e8dbfbed6237bcad520c14f714f99fb7eb482d01afc9d5591a1
c38107ae3765dff954191eecb91e4b4e701c4f7f78d12e170503252f443aea47
999143a6cd2a9856afdbe293f7e4431402eb19a9b943db0fd1a4f76ec29d65e7
8146c8d4d1f04bdb8a3f8f62c96f560cc12c9b0b73643ebfac543c003e93533f
21ae1d3e9d6828e5b8b0b5d243618c65391b281c70bdd39c96446b696485cbe0
a4eb8ee40d361c8e07655ccd34780c9ca0c02bb155a7b70ca523f122ae44c8da
54a4d88567eb4d8a641528669916aa0b429b03d5429630704c3a50f78395f473
b02b8cfa4b3b2f18b0226b6f2f908b3de29770625016f9
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont 
TeXDict begin 39158280 55380996 1000 600 600 (tuning-openbsd.dvi)
@start /Fa 193[60 62[{}1 74.7198 /CMMI9 rf /Fb 131[39
1[39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 1[39
39 39 39 39 39 39 39 39 1[39 1[39 1[39 39 39 39 39 39
39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39
39 39 39 39 39 1[39 2[39 39 39 39 39 39 39 39 39 39 39
39 39 39 39 1[39 39 39 2[39 37[{}77 74.7198 /CMTT9 rf
/Fc 134[37 3[41 25 31 32 1[39 39 43 63 20 2[24 39 35
24 35 39 2[39 10[57 1[55 43 2[52 6[30 4[58 55 54 13[39
1[39 2[39 24 27 24 44[{}31 74.7198 /CMTI9 rf /Fd 129[38
3[34 41 41 55 41 43 30 30 30 41 43 38 43 64 21 41 23
21 43 38 23 34 43 34 43 38 3[21 1[21 3[79 58 58 55 43
57 60 52 60 58 70 48 60 1[28 58 60 50 52 59 55 54 58
1[36 4[21 38 38 38 38 38 38 1[38 38 38 38 21 26 21 2[30
30 21 24[64 1[43 12[{}71 74.7198 /CMR9 rf /Fe 134[40
4[28 34 35 1[42 42 47 68 6[25 38 2[38 11[62 8[74 1[64
75[{}14 83.022 /CMTI10 rf /Ff 193[65 62[{}1 83.022 /CMMI10
rf /Fg 152[42 42 86[42 11[42 3[{}4 83.022 /CMSY10 rf
/Fh 133[35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
35 1[35 35 35 35 35 35 35 35 35 1[35 2[35 2[35 35 35
35 35 35 35 35 35 35 35 35 35 35 35 1[35 35 35 35 35
35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
35 35 35 35 35 35 35 35 35 35 35 4[35 35 34[{}78 66.4176
/CMTT8 rf /Fi 134[37 1[51 37 39 27 28 28 1[39 35 39 59
20 37 1[20 39 35 22 31 39 31 39 35 4[35 1[43 53 2[53
1[51 39 5[65 44 55 1[25 3[48 1[51 50 7[20 3[35 2[35 2[35
35 20 24 20 9[35 21[39 41 11[{}46 66.4176 /CMR8 rf /Fj
198[30 30 30 30 30 30 30 30 30 30 48[{}10 49.8132 /CMR6
rf /Fk 198[33 33 33 33 33 33 33 33 33 33 48[{}10 58.1154
/CMR7 rf /Fl 133[44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 1[44 44 44 44 44 44 44 44 44 8[44 44 1[44
44 44 44 44 44 1[44 44 44 44 1[44 44 44 44 44 1[44 44
44 6[44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 2[44
44 2[44 37[{}63 83.022 /CMTT10 rf /Fm 134[55 55 76 55
58 41 41 43 1[58 52 58 87 29 2[29 58 1[32 48 58 46 58
51 8[79 108 79 80 73 58 78 1[71 79 82 99 63 82 1[40 1[82
1[69 1[76 74 79 9[52 52 52 52 52 52 52 1[52 29 4[41 41
27[58 12[{}52 90.9091 /CMBX10 rf /Fn 133[42 50 50 69
50 53 37 38 39 50 53 48 53 80 27 50 1[27 1[48 29 44 53
42 1[46 10[72 2[53 72 72 65 1[75 91 57 75 1[36 1[75 60
1[73 69 68 7[27 58[{}39 83.022 /CMBX10 rf /Fo 132[42
37 44 44 60 44 46 32 33 33 44 46 42 46 69 23 44 25 23
46 42 25 37 46 37 46 42 23 2[23 42 23 1[62 62 85 62 62
60 46 61 65 57 65 62 76 52 65 1[30 62 65 54 57 63 60
59 62 1[39 1[65 1[23 23 42 42 42 42 42 42 42 42 42 42
42 23 28 23 2[32 32 23 1[69 2[42 18[69 69 46 46 48 11[{}83
83.022 /CMR10 rf /Fp 134[51 1[51 51 2[51 2[51 51 1[51
3[51 51 1[51 51 51 51 51 33[51 17[51 46[{}16 99.6264
/CMTT12 rf /Fq 128[49 5[51 2[51 54 38 38 38 1[54 49 54
81 27 2[27 54 49 1[43 1[43 54 49 9[100 3[54 2[66 76 6[73
77 4[69 9[49 5[49 1[49 1[27 1[27 31[54 12[{}32 99.6264
/CMR12 rf /Fr 134[59 59 81 59 62 44 44 46 1[62 56 62
93 31 59 1[31 62 56 34 51 62 50 62 54 9[116 85 2[62 84
2[84 1[106 1[88 1[42 88 88 70 74 86 81 80 85 7[56 56
56 56 56 56 56 56 56 2[31 37 45[{}50 99.6264 /CMBX12
rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%PaperSize: A4

%%EndSetup
%%Page: 1 1
1 0 bop 609 282 a Fr(Running)38 b(and)h(tuning)f(Op)s(enBSD)g(net)m(w)m
(ork)f(serv)m(ers)1068 399 y(in)h(a)g(pro)s(duction)g(en)m(vironmen)m
(t)932 639 y Fq(Philipp)c(B)s(\177)-51 b(uhler)851 756
y(sys\014v)m(e.com)36 b(Gm)m(bH)887 872 y Fp(pb@sysfive.com)1994
639 y Fq(Henning)e(Brauer)1975 756 y(BS)f(W)-8 b(eb)33
b(Services)2077 872 y Fp(hb@bsws.de)1432 1067 y Fq(Octob)s(er)f(8,)h
(2002)0 1377 y Fr(Abstract)0 1694 y Fo(Hea)n(vily)28
b(loaded)g(net)n(w)n(ork)f(serv)n(ers)g(can)i(exp)r(erience)0
1794 y(resource)j(exhastion.)53 b(A)n(t)33 b(b)r(est,)j(resource)31
b(exhaus-)0 1893 y(tion)k(will)g(slo)n(w)e(serv)n(er)g(resp)r(onse,)j
(but)f(left)g(uncor-)0 1993 y(rected,)27 b(it)h(can)g(result)f(in)h(a)f
(crash)f(of)i(the)g(serv)n(er.)0 2192 y(In)38 b(order)e(to)i
(understand)f(and)g(prev)n(en)n(t)g(suc)n(h)g(sit-)0
2292 y(uations,)30 b(a)g(kno)n(wledge)f(of)h(the)h(in)n(ternal)e(op)r
(eration)0 2391 y(of)j(the)g(op)r(erating)f(system)g(is)h(required,)g
(esp)r(ecially)0 2491 y(ho)n(w)27 b(memory)g(managemen)n(t)f(w)n(orks.)
0 2690 y(This)42 b(pap)r(er)g(will)g(pro)n(vide)f(an)h(understanding)f
(of)0 2790 y(the)25 b(memory)f(managemen)n(t)f(of)i(Op)r(enBSD,)g(ho)n
(w)f(to)0 2890 y(monitor)29 b(the)h(curren)n(t)f(status)g(of)g(the)h
(system,)g(wh)n(y)0 2989 y(crashes)c(o)r(ccur)h(and)g(ho)n(w)g(to)h
(prev)n(en)n(t)f(them.)0 3422 y Fr(1)112 b(Motiv)-6 b(ation)0
3739 y Fo(Our)67 b(main)g(motiv)-5 b(ation)67 b(for)g(this)h(pap)r(er)f
(w)n(as)0 3839 y(the)75 b(lac)n(k)e(of)h(comprehensiv)n(e)f(do)r(cumen)
n(tation)0 3939 y(ab)r(out)44 b(tuning)g(net)n(w)n(ork)f(serv)n(ers)f
(running)h(under)0 4038 y(Op)r(enBSD)f([Op)r(e02)o(],)i(esp)r(ecially)d
(with)h(regard)d(to)0 4138 y(the)g(memory)e(usage)g(of)h(the)g(net)n(w)
n(orking)f(co)r(de)h(in)0 4238 y(the)28 b(k)n(ernel.)0
4437 y(Either)37 b(one)h(can)f(get)h(general)e(information,)k(or)d(is)0
4536 y(\\left)32 b(alone")f(with)h(the)g(source)f(co)r(de.)50
b(This)31 b(pap)r(er)0 4636 y(outlines)39 b(ho)n(w)g(to)g(deal)f(with)i
(these)f(issues,)j(with-)0 4736 y(out)27 b(reading)g(the)h(source)e(co)
r(de.)36 b(A)n(t)28 b(least)f(one)g(do)r(es)0 4835 y(not)40
b(need)g(to)f(start)h(in)g(\\no)n(where-land")d(and)i(dig)0
4935 y(through)27 b(virtually)g(ev)n(erything.)0 5134
y(This)32 b(pap)r(er)g(aims)f(to)h(giv)n(e)f(a)h(deep)r(er)g
(understand-)0 5234 y(ing)26 b(on)h(ho)n(w)f(the)h(k)n(ernel)e(handles)
h(connections)g(and)0 5333 y(in)n(teracts)46 b(with)i(userland)e
(applications)h(lik)n(e)g(the)0 5433 y(Apac)n(he)27 b(w)n(ebserv)n(er.)
1854 1377 y Fr(2)112 b(Resource)38 b(Exhaustions)1854
1665 y Fo(Running)22 b(a)e(publicly)i(accessible)e(serv)n(er)f(can)h
(alw)n(a)n(ys)1854 1765 y(lead)j(to)g(unexp)r(ected)g(problems.)35
b(T)n(ypically)22 b(it)h(hap-)1854 1865 y(p)r(ens)34
b(that)g(resources)e(get)h(exhausted.)55 b(There)33 b(are)1854
1964 y(n)n(umerous)27 b(reasons)f(for)h(this,)h(including:)1854
2209 y Fn(Lo)m(w)33 b(Budget)41 b Fo(There's)k(not)h(enough)f(money)h
(to)2020 2308 y(buy)33 b(\\enough")d(hardw)n(are)h(whic)n(h)h(w)n(ould)
g(run)2020 2408 y(an)c(un)n(tuned)g(OS.)1854 2564 y Fn(P)m(eaks)43
b Fo(Ov)n(erload)37 b(situations)j(whic)n(h)f(can)h(b)r(e)g(ex-)2020
2663 y(p)r(ected)26 b(\(e.)g(g.)35 b(sp)r(ecial)25 b(use\))g(or)g(not)g
(\(e.)g(g.)36 b(get-)2020 2763 y(ting)28 b(\\slashdotted"\).)1854
2918 y Fn(DoS)42 b Fo(Denial-of-Service)51 b(b)n(y)h(attac)n(k)n(ers)e
(\015o)r(o)r(ding)2020 3018 y(the)28 b(serv)n(er.)1854
3262 y(No)d(matter)g(what)f(reason)g(leads)g(to)h(an)f(exhaustion,)1854
3362 y(there)e(are)g(also)f(di\013eren)n(t)i(t)n(yp)r(es)f(of)g
(resources)e(whic)n(h)1854 3462 y(can)40 b(su\013er)f(from)h(suc)n(h)f
(a)g(situation.)74 b(W)-7 b(e)40 b(brie\015y)1854 3561
y(sho)n(w)26 b(common)g(t)n(yp)r(es)h(and)g(coun)n(termeasures.)34
b(Af-)1854 3661 y(terw)n(ards)f(w)n(e)i(go)f(in)n(to)g(detail)h(ab)r
(out)g(memory)f(ex-)1854 3761 y(haustion.)1854 4049 y
Fm(2.1)105 b(I/O)35 b(Exhaustion)1854 4337 y Fo(It's)25
b(v)n(ery)f(t)n(ypical)g(for)g(net)n(w)n(ork)f(serv)n(ers)g(to)i
(su\013er)f(in)1854 4437 y(this)40 b(area.)72 b(Often)40
b(p)r(eople)g(just)g(add)g(more)f(CPU)1854 4536 y(to)47
b(\\help")f(a)g(slo)n(wly)f(reacting)g(serv)n(er,)50
b(but)d(this)1854 4636 y(w)n(ouldn't)28 b(help)g(in)g(suc)n(h)f(a)g
(case.)1854 4835 y(Usually)k(one)h(can)f(detect)h(suc)n(h)f(an)g
(exhaustion)g(b)n(y)1854 4935 y(using)20 b Fl(vmstat\(8\))d
Fo(or)i Fl(systat\(8\))p Fo(.)31 b(Detailed)21 b(usage)1854
5035 y(is)32 b(sho)n(wn)e(in)i(Section)g(5.1)e(There)h(are)g(also)f(n)n
(umer-)1854 5134 y(ous)23 b(I/O)f(\\b)r(ottlenec)n(ks")g(p)r(ossible,)i
(but)f(one)g(t)n(ypical)1854 5234 y(indication)40 b(is)f(the)h(CPU)g(b)
r(eing)f(mostly)h(idle)g(and)1854 5333 y(blo)r(c)n(k)n(ed)d(pro)r
(cesses)f(w)n(aiting)g(for)h(resources.)64 b(F)-7 b(ur-)1854
5433 y(ther)28 b(distinctions)g(can)f(b)r(e)h(made:)p
eop
%%Page: 2 2
2 1 bop 0 83 a Fn(Disk)0 377 y Fo(The)32 b(pro)r(cess)f(is)i(w)n
(aiting)e(for)h(blo)r(c)n(ks)f(from)h(\(or)g(to\))0 476
y(the)j(disk)f(and)g(cannot)g(run)g(on)h(the)f(CPU,)h(ev)n(en)f(if)0
576 y(the)23 b(CPU)g(is)g(idle.)35 b(This)23 b(case)f(could)h(b)r(e)g
(resolv)n(ed)e(b)n(y)0 676 y(mo)n(ving)j(from)g(IDE)g(to)h(SCSI,)g
(and/or)e(using)h(RAID)0 775 y(tec)n(hnology)-7 b(.)34
b(If)24 b(rep)r(etitiv)n(e)g(writes/reads)d(are)i(b)r(eing)0
875 y(done)31 b(an)h(increase)e(of)i(the)g(\014lesystem-cac)n(he)e
(could)0 974 y(also)21 b(help)335 944 y Fk(1)372 974
y Fo(.)35 b(Filesystem-cac)n(he)21 b(can)h(b)r(e)g(con\014gured)0
1074 y(with)28 b(the)g(k)n(ernel)f(option)g Fl(BUFCACHEPERCENT)1495
1044 y Fk(2)1526 1074 y Fo(.)0 1594 y Fn(NIC)0 1887 y
Fo(Cho)r(osing)32 b(the)i(righ)n(t)e(net)n(w)n(ork)g(card)g(is)h(imp)r
(ortan)n(t)0 1987 y(for)18 b(busy)h(serv)n(ers.)32 b(There)18
b(are)g(lots)g(of)h(lo)n(w-end)f(mo)r(d-)0 2087 y(els)33
b(lik)n(e)f(the)h(whole)f(Realtek)h(range.)51 b(These)32
b(cards)0 2186 y(are)f(relativ)n(ely)g(dum)n(b)h(themselv)n(es.)50
b(On)32 b(the)h(other)0 2286 y(hand,)24 b(there)e(are)g(c)n(hipsets)g
(with)h(more)f(in)n(telligence.)0 2386 y(DEC's)38 b(21143,)g(supp)r
(orted)g(b)n(y)g(the)h(dc\(4\))f(driv)n(er,)0 2485 y(and)j(In)n(tel's)g
(new)n(er)f(c)n(hipsets,)k(supp)r(orted)d(b)n(y)g(the)0
2585 y(fxp\(4\))25 b(driv)n(er,)f(ha)n(v)n(e)g(b)r(een)h(pro)n(v)n(en)e
(to)h(w)n(ork)f(w)n(ell)i(in)0 2684 y(high-load)h(circumstances.)0
2884 y(Lo)n(w-end)18 b(cards)h(usually)g(generate)f(an)h(in)n(terrupt)h
(for)0 2983 y(ev)n(ery)k(pac)n(k)n(et)g(receiv)n(ed,)h(whic)n(h)g
(leads)f(to)h(the)h(prob-)0 3083 y(lems)c(w)n(e)f(describ)r(e)h(in)g
(the)g(next)g(subsection.)35 b(By)21 b(us-)0 3183 y(ing)31
b(b)r(etter)g(cards,)f(lik)n(e)h(the)g(men)n(tioned)f(DEC)h(and)0
3282 y(In)n(tel)h(ones,)f(pac)n(k)n(ets)f(are)h(getting)g(com)n(bined,)
h(th)n(us)0 3382 y(reducing)27 b(the)h(amoun)n(t)f(of)h(in)n(terrupts.)
0 3581 y(Another)e(imp)r(ortan)n(t)g(p)r(oin)n(t)h(is)f(the)h(ph)n
(ysical)e(media)0 3681 y(in)n(terface,)h(e.)g(g.)36 b
Fl(sqphy\(4\))p Fo(.)e(Noise)26 b(and)g(distortion)0
3780 y(is)37 b(a)g(normal)f(part)g(of)h(net)n(w)n(ork)f(comm)n
(unications,)0 3880 y(a)29 b(go)r(o)r(d)g(PHY)h(will)g(do)f(a)g(b)r
(etter)h(job)g(of)f(extracting)0 3980 y(the)22 b(data)f(from)h(the)g
(noise)f(on)h(the)g(wire)f(than)h(a)g(p)r(o)r(or)0 4079
y(PHY)29 b(will,)h(reducing)e(the)i(n)n(um)n(b)r(er)e(of)h(net)n(w)n
(ork)f(re-)0 4179 y(transmissions)e(required.)0 4378
y(It)33 b(migh)n(t)f(b)r(e)h(a)f(go)r(o)r(d)f(idea)i(to)f(use)g
(Gigabit)g(cards,)0 4478 y(ev)n(en)27 b(when)g(running)f(100)g(MBit/s)h
(only)-7 b(.)36 b(They)27 b(are)0 4577 y(ob)n(viously)40
b(built)j(for)e(m)n(uc)n(h)g(higher)g(pac)n(k)n(et)g(rates)0
4677 y(\(and)32 b(this)g(is)g(the)h(real)e(problem,)h(not)g
(bandwidth\))0 4777 y(than)37 b(F)-7 b(astEthernet)37
b(ones,)i(th)n(us)e(ha)n(v)n(e)e(more)i(o)n(wn)0 4876
y(in)n(telligence)27 b(and)h(deal)f(b)r(etter)h(with)g(high)g(loads.)p
0 5119 676 4 v 92 5173 a Fj(1)127 5196 y Fi(Though)c(this)e(has)h
(implications)g(on)g(the)g(KVM,)f(see)h(the)0 5275 y(appropriate)h
(section)92 5331 y Fj(2)127 5354 y Fi(for)e(most)h(k)n(ernel)g
(con\014gurations,)h(see)f Fh(options\(4\))i Fi(and)0
5433 y Fh(config\(8\))p Fi(.)1854 83 y Fn(IR)m(Q)1854
751 y Fo(Ev)n(ery)c(in)n(terrupt)i(requires)e(a)i(con)n(text)f(switc)n
(h,)i(from)1854 850 y(the)30 b(pro)r(cess)e(running)g(when)h(the)h(IR)n
(Q)e(to)r(ok)h(place,)1854 950 y(to)21 b(the)g(in)n(terrupt)f(handler.)
34 b(As)21 b(a)f(n)n(um)n(b)r(er)g(of)g(things)1854 1050
y(m)n(ust)26 b(b)r(e)f(done)g(up)r(on)h(en)n(tering)e(the)i(in)n
(terrupt)f(han-)1854 1149 y(dler,)38 b(a)d(large)f(quan)n(tit)n(y)i(of)
f(in)n(terrupts)g(can)h(result)1854 1249 y(in)g(excess)e(time)h
(required)g(for)f(con)n(text)h(switc)n(hing.)1854 1348
y(One)30 b(non-ob)n(vious)e(w)n(a)n(y)h(to)h(reduce)g(this)g(load)g(is)
g(to)1854 1448 y(share)21 b(in)n(terrupts)h(b)r(et)n(w)n(een)g(the)h
(net)n(w)n(ork)e(adapters,)1854 1548 y(something)h(p)r(ermitted)i(on)e
(the)h(PCI)f(bus.)35 b(As)23 b(man)n(y)1854 1647 y(p)r(eople)h(are)f
(not)h(ev)n(en)f(a)n(w)n(are)f(of)h(the)i(the)f(p)r(ossibilit)n(y)1854
1747 y(of)36 b(in)n(terrupt)f(sharing,)h(and)f(the)h(b)r(ene\014ts)g
(are)e(not)1854 1847 y(ob)n(vious,)27 b(let's)g(lo)r(ok)g(at)h(this)g
(a)f(little)h(closer.)1854 2046 y(With)37 b(separate)d(adapters)g(on)i
(separate)e(in)n(terrupt)1854 2145 y(lines,)29 b(when)f(the)h(\014rst)f
(in)n(terrupt)g(comes)f(in,)i(a)f(con-)1854 2245 y(text)20
b(switc)n(h)f(to)g(the)h(in)n(terrupt)f(handler)f(tak)n(es)h(place.)
1854 2345 y(If)39 b(another)f(in)n(terrupt)h(comes)f(in)h(from)f(the)h
(other)1854 2444 y(adapter)c(while)h(the)h(\014rst)f(in)n(terrupt)f(is)
h(still)g(b)r(eing)1854 2544 y(handled,)g(it)f(will)f(either)g(in)n
(terrupt)g(the)h(\014rst)f(han-)1854 2644 y(dler,)i(or)e(b)r(e)h(dela)n
(y)n(ed)e(un)n(til)i(the)g(\014rst)f(handler)g(has)1854
2743 y(completed,)g(dep)r(ending)f(on)g(priorit)n(y)-7
b(,)32 b(but)i(regard-)1854 2843 y(less,)g(t)n(w)n(o)e(additional)h
(con)n(text)f(switc)n(hes)h(will)g(tak)n(e)1854 2942
y(place)f({)f(one)h(in)n(to)f(the)h(second)f(handler,)i(one)e(bac)n(k)
1854 3042 y(out.)1854 3241 y(In)38 b(the)h(case)e(of)h(the)g(PCI)g(and)
f(EISA)h(busses,)i(in-)1854 3341 y(terrupts)25 b(are)f(lev)n(el)g
(triggered,)g(not)h(edge)g(triggered,)1854 3441 y(whic)n(h)45
b(mak)n(es)e(in)n(terrupt)h(sharing)f(p)r(ossible.)87
b(As)1854 3540 y(long)20 b(as)f(the)i(in)n(terrupt)f(line)g(is)g(held)h
(activ)n(e,)g(a)f(device)1854 3640 y(needs)35 b(servicing,)h(ev)n(en)f
(if)g(the)h(\014rst)f(device)f(whic)n(h)1854 3739 y(triggered)39
b(the)h(in)n(terrupt)g(has)f(already)g(b)r(een)h(ser-)1854
3839 y(viced.)48 b(So,)32 b(in)f(this)h(case,)f(when)h(the)f(\014rst)g
(adapter)1854 3939 y(triggers)i(the)i(in)n(terrupt,)h(there)e(will)h(b)
r(e)g(a)f(con)n(text)1854 4038 y(switc)n(h)g(to)g(the)g(handler.)55
b(Before)33 b(the)h(handler)f(re-)1854 4138 y(turns,)d(it)g(will)g(see)
f(if)h(an)n(y)e(other)h(devices)g(need)g(ser-)1854 4238
y(vicing,)38 b(b)r(efore)d(doing)h(a)f(con)n(text)h(switc)n(h)f(bac)n
(k)h(to)1854 4337 y(the)28 b(previous)f(pro)r(cess.)1854
4536 y(In)e(a)g(busy)f(en)n(vironmen)n(t,)h(when)g(man)n(y)f(devices)g
(are)1854 4636 y(needing)34 b(service,)f(sa)n(ving)f(these)i(con)n
(text)f(switc)n(hes)1854 4736 y(can)f(signi\014can)n(tly)f(impro)n(v)n
(e)g(p)r(erformance)g(b)n(y)h(p)r(er-)1854 4835 y(mitting)d(the)f(pro)r
(cessor)e(to)i(sp)r(end)h(more)e(time)h(pro-)1854 4935
y(cessing)45 b(data,)50 b(rather)45 b(than)h(switc)n(hing)f(b)r(et)n(w)
n(een)1854 5035 y(tasks.)66 b(In)37 b(fact,)k(in)c(a)g(v)n(ery)g(high)g
(load)g(situation,)1854 5134 y(it)45 b(ma)n(y)f(b)r(e)h(desireable)f
(to)g(switc)n(h)h(the)g(adapters)1854 5234 y(and)24 b(driv)n(ers)e
(from)h(an)h(in)n(terrupt)f(driv)n(en)g(mo)r(de)h(to)g(a)1854
5333 y(p)r(olling)30 b(mo)r(de,)g(though)g(this)g(is)f(not)h(supp)r
(orted)g(on)1854 5433 y(Op)r(enBSD)e(at)g(this)g(time.)p
eop
%%Page: 3 3
3 2 bop 0 83 a Fm(2.2)105 b(CPU)35 b(Exhaustion)0 391
y Fo(Of)19 b(course)f(the)i(CPU)f(can)g(b)r(e)h(o)n(v)n(erloaded)d
(also)h(while)0 490 y(other)38 b(resources)e(are)h(still)h(\014ne.)69
b(Besides)37 b(buying)0 590 y(more)22 b(CPU)h(p)r(o)n(w)n(er,)f(whic)n
(h)h(is)g(not)f(alw)n(a)n(ys)f(p)r(ossible,)0 690 y(there)37
b(are)f(other)g(w)n(a)n(ys)f(to)i(resolv)n(e)e(this)i(problem.)0
789 y(Most)27 b(common)g(cases)g(for)g(this)h(are:)0
1064 y Fn(CGI)42 b Fo(Excessiv)n(e)35 b(usage)h(of)i(CGI)f(scripts,)j
(usually)166 1163 y(written)31 b(in)g(in)n(terpreter)f(languages)e(lik)
n(e)j(PHP)166 1263 y(or)52 b(P)n(erl.)111 b(Better)53
b(\(resource-wise\))d(co)r(ding)166 1362 y(can)45 b(help,)50
b(as)45 b(w)n(ell)g(as)f(using)h(mo)r(dules)g(lik)n(e)166
1462 y(mo)r(d)p 330 1462 25 4 v 30 w(p)r(erl)496 1432
y Fk(3)561 1462 y Fo(to)27 b(reduce)g(load.)0 1646 y
Fn(RDBM)41 b Fo(Usually)73 b(those)f(CGI)h(scrips)g(use)f(a)166
1745 y(database.)99 b(Optimization)49 b(of)g(the)g(connec-)166
1845 y(tions)23 b(and)g(queries)g(\(Indexing,)h(..\))36
b(is)23 b(one)g(w)n(a)n(y)-7 b(.)166 1944 y(There)20
b(is)h(also)e(the)i(complete)g(o\017oading)e(of)i(the)166
2044 y(database)26 b(to)i(a)f(di\013eren)n(t)h(mac)n(hine)1336
2014 y Fk(4)1373 2044 y Fo(.)0 2228 y Fn(SSL)42 b Fo(Esp)r(ecially)30
b(e-commerce)f(systems)h(or)f(online)166 2327 y(banking)k(sites)g
(su\013er)g(here.)54 b(Op)r(enBSD)33 b(sup-)166 2427
y(p)r(orts)52 b(hardw)n(are-accelerators)1246 2397 y
Fk(5)1283 2427 y Fo(.)111 b(T)n(ypical)166 2527 y(cryptographic)29
b(routines)i(used)g(for)g(SSL/TLS)166 2626 y(can)f(b)r(e)h(o\017oaded)e
(to)h(suc)n(h)g(cards)g(in)g(a)g(trans-)166 2726 y(paren)n(t)25
b(manner,)h(th)n(us)g(freeing)g(CPU)g(time)h(for)166
2825 y(pro)r(cessing)f(requests.)0 3249 y Fr(3)112 b(Memory)38
b(Exhaustion)0 3557 y Fo(Another)23 b(case)f(of)i(o)n(v)n(erloading)c
(can)j(b)r(e)g(the)h(exhaus-)0 3657 y(tion)37 b(of)h(memory)e
(resources.)65 b(Also)37 b(the)h(sp)r(eed)f(of)0 3756
y(the)32 b(allo)r(cator)f(for)g(memory)g(areas)f(has)i(signi\014can)n
(t)0 3856 y(in\015uence)24 b(on)e(the)i(o)n(v)n(erall)d(p)r(erformance)
h(of)h(the)h(sys-)0 3955 y(tem.)0 4263 y Fm(3.1)105 b(Virtual)35
b(Memory)g(\(VM\))0 4571 y Fo(VM)22 b(is)f(comprised)g(of)h(the)f(ph)n
(ysical)g(RAM)h(and)g(p)r(os-)0 4670 y(sible)31 b(sw)n(ap)g
(space\(s\).)48 b(Pro)r(cesses)29 b(are)i(loaded)f(in)n(to)0
4770 y(this)35 b(area)f(and)h(use)g(it)g(for)g(their)g(data)g
(structures.)0 4870 y(While)30 b(the)g(k)n(ernel)f(do)r(esn't)g(really)
g(care)f(ab)r(out)i(the)0 4969 y(curren)n(t)g(lo)r(cation)g(of)h(the)g
(pro)r(cess')f(memory)g(space)p 0 5040 676 4 v 92 5093
a Fj(3)127 5117 y Fi(This)22 b(can)i(ha)n(v)n(e)g(securit)n(y)f
(implications,)f(but)i(this)f(is)f(an-)0 5196 y(other)i(story)-6
b(.)92 5252 y Fj(4)127 5275 y Fi(This)32 b(could)h(b)r(e)g(unfeasible)g
(due)g(to)g(an)g(already)g(o)n(v)n(er-)0 5354 y(loaded)24
b(net)n(w)n(ork)h(or)e(due)i(to)f(budget)h(constrain)n(ts.)92
5410 y Fj(5)127 5433 y Fh(crypto\(4\))1854 83 y Fo(\(or)20
b(address)f(space\))h(it)h(is)f(recommended)g(that)h(esp)r(e-)1854
183 y(cially)26 b(the)h(most)f(activ)n(e)g(tasks)f(\(lik)n(e)i(the)g(w)
n(ebserv)n(er)1854 282 y(application\))c(nev)n(er)e(b)r(e)i(sw)n(app)r
(ed)f(out)h(or)f(ev)n(en)g(sub-)1854 382 y(jected)28
b(to)g(paging.)1854 581 y(With)47 b(regard)d(to)i(reliabilit)n(y)f
(it's)i(not)f(critical)f(if)1854 681 y(the)28 b(amoun)n(t)e(of)h(ph)n
(ysical)f(RAM)i(is)f(exhausted)g(and)1854 780 y(hea)n(vy)19
b(paging)g(o)r(ccurs,)h(but)g(p)r(erformance-wise)e(this)1854
880 y(should)26 b(not)g(happ)r(en.)37 b(The)26 b(paging)e(could)i(comp)
r(ete)1854 980 y(for)36 b(Disk)g(I/O)f(with)h(the)g(serv)n(er)e(task,)k
(th)n(us)e(slo)n(w-)1854 1079 y(ing)21 b(do)n(wn)f(the)i(general)d(p)r
(erformance)h(of)h(the)g(serv)n(er.)1854 1179 y(And,)h(naturally)-7
b(,)21 b(harddisks)d(are)h(slo)n(w)n(er)f(than)i(RAM)1854
1279 y(b)n(y)28 b(magnitudes.)1854 1478 y(It's)c(most)g(lik)n(ely)f
(that)h(coun)n(termeasures)e(are)h(tak)n(en)1854 1577
y(after)47 b(the)h(serv)n(er)d(starts)h(hea)n(vy)g(paging,)51
b(but)d(it)1854 1677 y(could)42 b(happ)r(en)f(that)h(also)f(the)h(sw)n
(ap)e(space,)45 b(and)1854 1777 y(th)n(us)36 b(the)g(whole)f(VM,)h(is)g
(exhausted.)60 b(If)36 b(this)g(o)r(c-)1854 1876 y(curs,)27
b(so)r(oner)g(or)f(later)h(the)h(mac)n(hine)f(will)h(crash.)1854
2076 y(Ev)n(en)d(if)i(one)e(do)r(esn't)h(plan)g(for)f(the)h(serv)n(er)e
(starting)1854 2175 y(to)i(page)f(out)h(memory)f(from)h(RAM)g(to)g(sw)n
(ap,)g(there)1854 2275 y(should)37 b(b)r(e)g(some)f(sw)n(ap)g(space.)64
b(This)37 b(prev)n(en)n(ts)f(a)1854 2374 y(direct)e(crash,)g(if)g(the)g
(VM)g(is)f(exhausted.)54 b(If)34 b(sw)n(ap)1854 2474
y(is)29 b(b)r(eing)g(used,)g(one)f(has)g(to)h(determine)f(if)h(this)g
(w)n(as)1854 2574 y(a)36 b(one-time-only)g(p)r(eak,)i(or)e(if)h(there)f
(is)h(a)f(general)1854 2673 y(increase)30 b(of)h(usage)f(on)h(the)h
(paging)e(serv)n(er.)46 b(In)31 b(the)1854 2773 y(latter)22
b(case)g(one)g(should)g(upgrade)f(RAM)i(as)e(so)r(on)h(as)1854
2873 y(p)r(ossible.)1854 3072 y(In)f(general)f(it's)h(go)r(o)r(d)f
(practice)h(to)f(monitor)h(the)g(VM)1854 3171 y(usage,)26
b(esp)r(ecially)g(to)h(trac)n(k)f(do)n(wn)g(when)h(the)g(sw)n(ap)1854
3271 y(space)19 b(is)f(b)r(eing)h(touc)n(hed.)34 b(See)19
b(section)g(5)f(for)h(details.)1854 3580 y Fm(3.2)105
b(Kernel)29 b(Virtual)g(Memory)h(\(KVM\))1854 3888 y
Fo(Besides)h(VM)h(there)f(is)h(a)f(reserv)n(ed)e(area)h(solely)h(for)
1854 3988 y(k)n(ernel)23 b(tasks.)35 b(On)24 b(the)g(common)g(i386)f
(arc)n(hitecture)1854 4088 y(\(IA-32\))30 b(the)h(virtual)f(address)f
(space)h(is)g(4GB.)g(The)1854 4187 y(Op)r(enBSD/i386)49
b(k)n(ernel)g(reserv)n(es)f(768MB)h(since)1854 4287 y(the)30
b(3.2)e(release)f(\(formerly)h(512MB\))g(of)h(this)g(space)1854
4387 y(for)e(k)n(ernel)g(structures,)g(called)g(KVM.)1854
4586 y(KVM)h(is)g(used)g(for)f(addressing)g(the)h(needs)g(of)g(man-)
1854 4685 y(aging)38 b(an)n(y)h(hardw)n(are)e(in)j(the)g(system)f(and)g
(small)1854 4785 y(allo)r(cations)2241 4755 y Fk(6)2327
4785 y Fo(b)r(eing)49 b(needed)h(b)n(y)f(syscalls.)101
b(The)1854 4885 y(biggest)24 b(c)n(h)n(unks)f(b)r(eing)h(used)g(are)f
(the)h(managemen)n(t)1854 4984 y(of)32 b(the)g(VM)g(\(RAM)h(and)f(sw)n
(ap\),)g(\014lesystem-cac)n(he)1854 5084 y(and)c(storage)d(of)j(net)n
(w)n(ork)e(bu\013ers)i(\(m)n(buf)6 b(\).)1854 5283 y(Con)n(trary)17
b(to)h(userland)g(the)h(k)n(ernel)f(allo)r(cations)f(can-)p
1854 5356 V 1947 5410 a Fj(6)1981 5433 y Fi(lik)n(e)24
b(pathname)h(translations)p eop
%%Page: 4 4
4 3 bop 0 83 a Fo(not)21 b(b)r(e)h(paged)f(out)g(\(\\wired)g(pages"\).)
33 b(Actually)22 b(it's)0 183 y(p)r(ossible)33 b(to)g(ha)n(v)n(e)g
(pageable)f(k)n(ernel)g(memory)-7 b(,)34 b(but)0 282
y(this)e(is)g(rarely)f(used)h(\(e.)g(g.)50 b(for)31 b(pip)r(e)i
(bu\013ers\))f(and)0 382 y(not)e(a)h(concern)e(in)i(the)g(curren)n(t)e
(con)n(text.)46 b(Th)n(us,)31 b(if)0 482 y(the)25 b(KVM)h(is)f
(exhausted,)g(the)g(serv)n(er)e(will)j(immedi-)0 581
y(atly)d(crash.)34 b(Of)23 b(course)f(768MB)g(is)h(the)g(limit,)i(but)f
(if)0 681 y(there)e(is)h(less)f(RAM)h(a)n(v)-5 b(ailable,)22
b(this)h(is)f(the)h(absolute)0 780 y(limit)31 b(for)g(wired)f(pages)g
(then.)47 b(Non-in)n(terrupt-safe)0 880 y(pages)38 b(could)h(b)r(e)h
(paged)e(out,)k(but)e(this)g(is)f(a)g(rare)0 980 y(exception.)0
1179 y(Since)26 b(RAM)g(has)e(to)i(b)r(e)f(managed)g(b)n(y)g(k)n(ernel)
f(maps)0 1279 y(also,)c(it's)h(not)e(wise)h(to)g(just)g(upgrade)f(RAM)i
(without)0 1378 y(need.)51 b(More)32 b(RAM)h(lea)n(v)n(es)d
Fl(less)h Fo(space)h(for)g(other)0 1478 y(maps)25 b(in)g(KVM.)h
(Monitoring)e(the)i(\\really")d(needed)0 1577 y(amoun)n(t)30
b(of)f(RAM)i(is)f(recommended,)g(if)h(KVM)f(ex-)0 1677
y(haustions)40 b(o)r(ccur.)76 b(F)-7 b(or)41 b(example,)j(128MB)39
b(for)h(a)0 1777 y(\014rew)n(all)30 b(is)h(usually)f(more)g(than)i
(enough.)46 b(Lo)r(ok)30 b(at)0 1876 y(Section)37 b(7.2)f(for)h(a)f(t)n
(ypical)h(hardw)n(are)e(setup)i(of)g(a)0 1976 y(busy)27
b(\014rew)n(all.)0 2175 y(This)f(complete)f(area)f(is)i(called)f
Fl(kernel)p 1298 2175 27 4 v 29 w(map)g Fo(in)h(the)0
2275 y(source)h(and)g(has)h(sev)n(eral)e(\\submaps")1237
2245 y Fk(7)1273 2275 y Fo(.)38 b(One)27 b(main)0 2374
y(reason)42 b(for)g(this)i(is)f(the)g(lo)r(c)n(king)g(of)g(the)g
(address)0 2474 y(space.)90 b(By)45 b(this)h(mapping)f(other)g(areas)f
(of)i(the)0 2574 y(k)n(ernel)28 b(can)g(sta)n(y)g(unlo)r(c)n(k)n(ed)h
(while)g(another)e(map)i(is)0 2673 y(lo)r(c)n(k)n(ed.)0
2773 y(Main)76 b(submaps)g(are)g Fl(kmem)p 1023 2773
V 29 w(map,)42 b(pager)p 1490 2773 V 30 w(map,)0 2873
y(mb)p 93 2873 V 31 w(map)32 b Fo(and)i Fl(exec)p 632
2873 V 29 w(map)p Fo(.)54 b(The)34 b(allo)r(cation)f(is)g(done)0
2972 y(at)f(b)r(o)r(ot-time)g(and)f(is)h(nev)n(er)e(freed,)j(the)f
(size)g(is)f(ei-)0 3072 y(ther)26 b(a)g(compile-time)g(or)g(b)r(o)r
(ot-time)g(option)g(to)h(the)0 3171 y(k)n(ernel.)0 3592
y Fr(4)112 b(Resource)37 b(Allo)s(cation)0 3897 y Fo(Since)28
b(the)h(exhaustion)e(of)h(KVM)g(is)g(the)h(most)f(crit-)0
3996 y(ical)35 b(situation)h(one)f(can)g(encoun)n(ter,)i(w)n(e)e(will)h
(no)n(w)0 4096 y(concen)n(trate)23 b(on)g(ho)n(w)g(those)h(memory)f
(areas)f(are)h(al-)0 4196 y(lo)r(cated.)0 4395 y(Userland)51
b(applications)g(cannot)g(allo)r(cate)g(KVM)0 4494 y(needed)32
b(for)g(net)n(w)n(ork)e(routines)i(directly)-7 b(.)50
b(KVM)32 b(is)0 4594 y(protected)i(from)f(userland)h(pro)r(cesses)e
(completely)-7 b(,)0 4694 y(th)n(us)43 b(there)g(ha)n(v)n(e)f(to)i(b)r
(e)f(routines)g(to)g(pass)g(data)0 4793 y(o)n(v)n(er)49
b(this)j(b)r(order.)106 b(The)51 b(userland)f(can)h(use)f(a)0
4893 y Fl(syscall\(2\))29 b Fo(to)34 b(accomplish)e(that.)55
b(F)-7 b(or)33 b(the)h(case)0 4993 y(of)20 b(net)n(w)n(orking)f(the)i
(pro)r(cess)e(w)n(ould)h(use)h Fl(socket\(2\))0 5092
y Fo(related)27 b(calls,)g(lik)n(e)g Fl(bind\(2\))p Fo(,)e
Fl(recv\(2\))p Fo(,)g(etc.)0 5292 y(Ha)n(ving)g(this)g(la)n(y)n(er)f(b)
r(et)n(w)n(een)i(userland)f(and)g(k)n(ernel,)p 0 5356
676 4 v 92 5410 a Fj(7)127 5433 y Fi(see)f(/sys/uvm/uvm)p
713 5433 22 4 v 27 w(km.c)1854 83 y Fo(w)n(e)19 b(will)h(concen)n
(trate)e(on)i(ho)n(w)f(the)g(k)n(ernel)g(is)g(allo)r(cat-)1854
183 y(ing)k(memory;)h(the)g(userland)e(pro)r(cess)g(has)h(no)g(direct)
1854 282 y(in\015uence)30 b(on)f(this.)41 b(The)29 b(indirect)h
(in\015uence)f(is)g(the)1854 382 y(sending)38 b(and)f(receiving)g(of)g
(data)g(to)h(or)f(from)g(the)1854 482 y(k)n(ernel)h(b)n(y)g(the)g
(userland)g(pro)r(cess.)67 b(F)-7 b(or)38 b(example)1854
581 y(the)h(serv)n(er)d(handles)i(a)f(lot)h(of)g(incoming)g(net)n(w)n
(ork)1854 681 y(data,)45 b(whic)n(h)c(will)h(\014ll)g(up)g(bu\013er)g
(space)e(\(m)n(bufs\))1854 780 y(within)26 b(the)g(KVM.)g(If)g(the)f
(userland)g(pro)r(cess)f(is)h(not)1854 880 y(handling)h(this)h(data)f
(fast)g(enough,)g(KVM)g(could)g(b)r(e)1854 980 y(exhausted.)65
b(Of)37 b(course)e(the)j(same)e(is)h(true)g(if)g(the)1854
1079 y(pro)r(cess)c(is)h(sending)f(data)h(faster)f(than)h(the)g(k)n
(ernel)1854 1179 y(can)c(release)e(it)i(to)g(the)g(media,)g(th)n(us)g
(freeing)f(KVM)1854 1279 y(bu\013ers.)1854 1657 y Fm(4.1)105
b(m)m(buf)1854 2036 y Fo(Historically)-7 b(,)49 b(BSD)d(uses)g
Fl(mbuf\(9\))3053 2006 y Fk(8)3133 2036 y Fo(routines)f(to)1854
2136 y(handle)e(net)n(w)n(ork)e(related)h(data.)81 b(An)42
b(m)n(buf)h(is)g(a)1854 2236 y(data)48 b(structure)g(of)h(\014xed)f
(size)g(of)h(256)e(b)n(ytes)3483 2206 y Fk(9)3520 2236
y Fo(.)1854 2335 y(Since)c(there)g(is)f(o)n(v)n(erhead)f(for)h(the)h(m)
n(buf)g(header)1854 2435 y(\(m)p 1960 2435 25 4 v 31
w(hdr)p Fg(fg)p Fo(\))31 b(itself,)i(the)g(pa)n(yload)d(is)i(reduced)g
(b)n(y)g(at)1854 2535 y(least)c(20)e(b)n(ytes)h(and)h(up)g(to)f(40)g(b)
n(ytes)3060 2504 y Fk(10)3130 2535 y Fo(.)1854 2734 y(Those)48
b(additional)h(20)e(b)n(ytes)i(o)n(v)n(erhead)d(app)r(ear,)1854
2833 y(if)h(the)f(requested)f(data)g(do)r(esn't)h(\014t)g(within)g(t)n
(w)n(o)1854 2933 y(m)n(bufs.)36 b(In)24 b(suc)n(h)f(a)g(case)g(an)g
(external)g(bu\013er,)i(called)1854 3033 y(cluster,)g(with)g(a)f(size)f
(of)i(2048)d(b)n(ytes)3020 3003 y Fk(11)3090 3033 y Fo(,)j(is)f(allo)r
(cated)1854 3132 y(and)k(referenced)f(b)n(y)g(the)h(m)n(buf)g(\(m)p
2987 3132 V 30 w(ext)p Fg(fg)p Fo(\).)1854 3332 y(Mbufs)49
b(b)r(elonging)f(to)g(one)g(pa)n(yload)f(pac)n(k)n(et)g(are)1854
3431 y(\\c)n(hained")64 b(together)h(b)n(y)g(a)g(p)r(oin)n(ter)g
Fl(mh)p 3320 3431 27 4 v 31 w(next)p Fo(.)1854 3531 y
Fl(mh)p 1947 3531 V 31 w(nextpkt)30 b Fo(p)r(oin)n(ts)k(to)f(the)g
(next)h(c)n(hain,)g(forming)1854 3630 y(a)44 b(queue)g(of)g(net)n(w)n
(ork)f(data)g(whic)n(h)h(can)g(b)r(e)g(pro-)1854 3730
y(cessed)26 b(b)n(y)g(the)g(k)n(ernel.)36 b(The)26 b(\014rst)g(mem)n(b)
r(er)g(of)g(suc)n(h)1854 3830 y(a)k(c)n(hain)g(has)g(to)g(b)r(e)g(a)g
(\\pac)n(k)n(et)f(header")g(\(mh)p 3359 3830 25 4 v 30
w(t)n(yp)r(e)1854 3929 y(M)p 1935 3929 V 30 w(PKTHDR\).)1854
4129 y(Allo)r(cation)k(of)g(m)n(bufs)h(and)f(clusters)f(are)h(obtained)
1854 4228 y(b)n(y)51 b(macros)d(\(MGET,)j(MCLGET,)f(..\).)106
b(Before)1854 4328 y(the)28 b(release)d(of)i(Op)r(enBSD)h(3.0)e(those)h
(macros)e(used)1854 4427 y Fl(malloc\(9\))f Fo(to)k(obtain)f(memory)g
(resources.)1854 4627 y(If)21 b(there)f(w)n(ere)f(a)g(call)h(to)g(MGET)
g(but)g(no)g(more)f(space)1854 4726 y(is)34 b(left)g(in)g(the)g
(corresp)r(onding)d(memory)i(map,)i(the)1854 4826 y(k)n(ernel)27
b(w)n(ould)g(panic)2535 4796 y Fk(12)2605 4826 y Fo(.)p
1854 5039 676 4 v 1947 5093 a Fj(8)1981 5116 y Fi(memory)d(bu\013er)
1947 5172 y Fj(9)1981 5195 y Fi(de\014ned)h(b)n(y)f(MSIZE.)1916
5251 y Fj(10)1981 5275 y Fi(see)g Fh(/usr/include/sys/mbuf.)q(h)30
b Fi(for)22 b(details.)1916 5330 y Fj(11)1981 5354 y
Fi(de\014ned)j(b)n(y)f(MCLBYTES)1916 5410 y Fj(12)1981
5433 y Fi(\\mallo)r(c:)32 b(out)24 b(of)f(space)i(in)e(kmem)p
2936 5433 22 4 v 26 w(map")p eop
%%Page: 5 5
5 4 bop 0 83 a Fm(4.2)105 b(p)s(o)s(ol)0 407 y Fo(No)n(w)n(ada)n(ys)26
b(Op)r(enBSD)j(uses)f Fl(pool\(9\))e Fo(routines)i(to)0
507 y(allo)r(cate)43 b(k)n(ernel)g(memory)-7 b(.)86 b(This)44
b(system)g(is)g(de-)0 606 y(signed)24 b(for)f(fast)i(allo)r(cation)e
(\(and)h(freeing\))g(of)g(\014xed-)0 706 y(size)j(structures,)g(lik)n
(e)g(m)n(bufs.)0 905 y(There)f(are)g(sev)n(eral)e(adv)-5
b(an)n(tages)25 b(in)i(using)f Fl(pool\(9\))0 1005 y
Fo(routines)21 b(instead)g(of)h(the)g(ones)f(around)g
Fl(malloc\(9\))p Fo(:)83 1295 y Fg(\017)41 b Fo(faster)27
b(than)h(mallo)r(c)g(b)n(y)g(cac)n(hing)f(constructed)166
1395 y(ob)5 b(jects)83 1611 y Fg(\017)41 b Fo(cac)n(he)33
b(coloring)g(\(using)h(o\013sets)g(to)h(more)e(e\016-)166
1711 y(cien)n(tly)22 b(use)g(pro)r(cessor)e(cac)n(he)i(with)g(real-w)n
(orld)166 1810 y(hardw)n(are)k(and)h(programming)e(tec)n(hniques\))83
2026 y Fg(\017)41 b Fo(a)n(v)n(oids)48 b(hea)n(vy)h(fragmen)n(tation)g
(of)h(a)n(v)-5 b(ailable)166 2126 y(memory)e(,)27 b(th)n(us)h(w)n
(asting)e(less)h(of)h(it)83 2342 y Fg(\017)41 b Fo(pro)n(vides)24
b(w)n(atermarks)f(and)j(callbac)n(ks,)e(giving)166 2442
y(feedbac)n(k)j(ab)r(out)h(p)r(o)r(ol)f(usage)g(o)n(v)n(er)e(time)83
2658 y Fg(\017)41 b Fo(only)19 b(needs)h(to)f(b)r(e)h(in)g(kmem)p
1070 2658 25 4 v 30 w(map)f(if)h(used)f(from)166 2757
y(in)n(terrupts)83 2973 y Fg(\017)41 b Fo(can)31 b(use)h(di\013eren)n
(t)g(bac)n(k)n(end)f(memory)f(allo)r(ca-)166 3073 y(tors)d(p)r(er)g(p)r
(o)r(ol)83 3289 y Fg(\017)41 b Fo(VM)27 b(can)e(reclaim)g(free)h(c)n(h)
n(unks)f(b)r(efore)h(paging)166 3389 y(o)r(ccurs,)j(not)g(more)f(than)i
(to)f(a)f(limit)i(\(Maxpg\))166 3488 y(though)0 3779
y(If)83 b(userland)f(applications)g(are)g(running)g(on)0
3879 y(Op)r(enBSD)42 b(\()p Ff(>)g Fo(3.0\),)j Fl(pool\(9\))39
b Fo(routines)j(will)g(b)r(e)0 3978 y(used)19 b(automatically)-7
b(.)34 b(But)19 b(it's)h(in)n(teresting)f(for)f(p)r(eo-)0
4078 y(ple)26 b(who)f(plan)g(\(or)g(do)g(so)g(righ)n(t)g(no)n(w\))g(to)
g(write)h(o)n(wn)0 4178 y(k)n(ernel)20 b(routines)h(where)g(using)f
Fl(pool\(9\))f Fo(could)i(gain)0 4277 y(signi\014can)n(t)27
b(p)r(erformance)f(impro)n(v)n(emen)n(ts.)0 4477 y(Additionally)65
b(large)e(c)n(h)n(unks)i(formerly)f(in)h(the)0 4576 y(kmem)p
224 4576 V 30 w(map)49 b(ha)n(v)n(e)e(b)r(een)j(relo)r(cated)d(to)i
(the)g(k)n(er-)0 4676 y(nel)p 111 4676 V 30 w(map)22
b(b)n(y)h(using)f(p)r(o)r(ols.)35 b(Allo)r(cations)22
b(for)g(ino)r(des,)0 4775 y(vno)r(des,)g(..)34 b(ha)n(v)n(e)19
b(b)r(een)i(remo)n(v)n(ed)e(from)h(kmem)p 1484 4775 V
30 w(map,)0 4875 y(th)n(us)25 b(there)g(is)h(more)e(space)h(for)g(m)n
(bufs,)h(whic)n(h)f(need)0 4975 y(protection)f(against)g(in)n(terrupt)h
(reen)n(trancy)-7 b(,)24 b(if)h(used)0 5074 y(for)k(e.)h(g.)43
b(incoming)29 b(net)n(w)n(ork)f(data)h(from)h(the)g(NIC)0
5144 y Fk(13)70 5174 y Fo(.)p 0 5277 676 4 v 62 5331
a Fj(13)127 5354 y Fi(kmem)p 317 5354 22 4 v 26 w(map)36
b(has)h(to)g(b)r(e)g(protected)h(b)n(y)f Fh(splvm\(\))p
Fi(,)k(see)0 5433 y Fh(spl\(9\))p Fi(.)1854 83 y Fr(5)112
b(Memory)39 b(Measuremen)m(t)1854 384 y Fo(Ob)n(viously)e(one)g(w)n(an)
n(ts)g(to)h(kno)n(w)f(ab)r(out)h(memory)1854 483 y(exhaustion)23
b Fe(b)l(efor)l(e)h Fo(it)f(o)r(ccurs.)34 b(Additionally)23
b(it)h(can)1854 583 y(b)r(e)38 b(of)f(in)n(terest,)j(whic)n(h)d(pro)r
(cess)f(or)h(task)g(is)g(using)1854 682 y(memory)-7 b(.)66
b(There)37 b(are)g(sev)n(eral)f(to)r(ols)h(pro)n(vided)f(in)1854
782 y(the)g(base)f(Op)r(enBSD)h(system)f(for)g(a)g(rough)f(moni-)1854
882 y(toring)e(of)g(what)g(is)g(going)g(on.)50 b(F)-7
b(or)32 b(detailed)g(anal-)1854 981 y(ysis)k(one)f(has)h(to)f(b)r(e)i
(able)e(to)h(read)f(and)h(in)n(terpret)1854 1081 y(the)e(v)-5
b(alues)33 b(pro)n(vided)f(b)n(y)h(those)f(to)r(ols,)j(but)e(some-)1854
1181 y(times)i(one)e(needs)h(more)g(details)g(and)f(can)h(rely)g(on)
1854 1280 y(3rd)27 b(part)n(y)g(to)r(ols)g(then.)1854
1479 y(Example)21 b(outputs)h(of)g(the)g(to)r(ols)g(men)n(tioned)g(can)
f(b)r(e)1854 1579 y(found)28 b(in)g(the)g(App)r(endix.)1854
1880 y Fm(5.1)105 b(Common)36 b(to)s(ols)1854 2180 y
Fo(These)19 b(are)g(to)r(ols)g(pro)n(vided)f(with)i(Op)r(enBSD,)g
(where)1854 2280 y(some)27 b(are)f(rather)g(w)n(ell-kno)n(wn,)g(but)i
(some)e(are)g(not.)1854 2380 y(In)f(an)n(y)g(case,)f(w)n(e)h(ha)n(v)n
(e)f(found)h(that)g(often)h(the)f(to)r(ols)1854 2479
y(are)i(used)h(in)g(a)f(wrong)f(fashion)i(or)e(the)i(outputs)g(are)1854
2579 y(misin)n(terpreted.)45 b(It's)31 b(quite)f(imp)r(ortan)n(t)h(to)f
(under-)1854 2678 y(stand)24 b(what)f(is)g(prin)n(ted)g(out,)h(ev)n(en)
f(if)h(it's)g(a)f(\\kno)n(wn)1854 2778 y(to)r(ol".)1854
3097 y Fn(top)1854 3351 y Fo(One)i(of)f(the)i(most)e(used)h(to)r(ols)f
(is)h Fl(top\(1\))p Fo(.)33 b(It)26 b(sho)n(ws)1854 3450
y(the)38 b(curren)n(t)f(memory)f(usage)h(of)g(the)h(system.)66
b(In)1854 3550 y(detail)28 b(one)f(could)h(see)f(the)h(follo)n(wing)e
(en)n(tries:)1854 3817 y Fn(Real:)41 b Fl(68M/117M)f(act/tot)p
Fo(,)59 b(where)54 b(68MB)f(are)2020 3917 y(curren)n(tly)22
b(used)h(and)f(another)g(49MB)g(are)f(allo-)2020 4017
y(cated,)29 b(but)g(not)g(curren)n(tly)e(used)i(and)f(ma)n(y)g(b)r(e)
2020 4116 y(sub)5 b(ject)28 b(to)g(b)r(e)g(freed.)1854
4286 y Fn(F)-8 b(ree:)41 b Fl(3724K)p Fo(,)17 b(sho)n(ws)g(the)i(amoun)
n(t)f(of)g(free)g(ph)n(ysical)2020 4385 y(RAM)1854 4555
y Fn(Sw)m(ap:)42 b Fl(24M/256M)e(used/tot)p Fo(,)29 b(24MB)h(of)h
(256MB)2020 4654 y(curren)n(tly)c(a)n(v)-5 b(ailable)26
b(sw)n(ap)h(space)g(is)g(used.)1854 4922 y(If)44 b(one)f(adds)g(3724kB)
f(to)h(117MB,)f(the)i(mac)n(hine)1854 5021 y(w)n(ould)e(ha)n(v)n(e)e
(nearly)h(122MB)g(RAM.)h(This)g(is,)j(of)1854 5121 y(course,)35
b(not)g(true.)57 b(It)35 b(has)f(128MB)f(of)i(RAM;)g(the)1854
5221 y(\\missing")26 b(6MB)i(are)e(used)i(as)f(\014lesystem-cac)n(he)
3447 5190 y Fk(14)3515 5221 y Fo(.)p 1854 5277 676 4
v 1916 5331 a Fj(14)1981 5354 y Fi(dmesg:)45 b Fh(using)36
b(1658)h(buffers)g(containing)h(6791168)1854 5433 y(bytes)f(\(6632K\))g
(of)f(memory)p eop
%%Page: 6 6
6 5 bop 0 83 a Fo(Besides)33 b(this)g(rough)f(lo)r(ok)g(on)h(the)h
(memory)e(usage)0 183 y(of)25 b(the)g(system,)g(there)f(are)g
(indicators)g(for)g(other)g(re-)0 282 y(source)36 b(exhaustions.)66
b(In)37 b(the)h(line)g Fl(CPU)k(states:)0 382 y Fo(there)27
b(is)g(an)f(en)n(try)h Fl(x.y\045)42 b(interrupt)p Fo(.)33
b(See)27 b(ho)n(w)f(to)0 482 y(resolv)n(e)e(high)h(v)-5
b(alues,)25 b(they)h(slo)n(w)e(do)n(wn)h(the)h(p)r(erfor-)0
581 y(mance.)0 780 y(Blo)r(c)n(king)d(disks)h(can)f(b)r(e)i(detected)f
(in)h(the)f Fl(WAIT)f Fo(col-)0 880 y(umn.)36 b(F)-7
b(or)24 b(example)h(an)f(en)n(try)g Fl(getblk)e Fo(sho)n(ws)i(that)0
980 y(the)30 b(pro)r(cess)f(is)g(w)n(aiting)g(for)g(data)h(from)f(a)g
(disk)h(\(or)0 1079 y(an)n(y)d(other)g(blo)r(c)n(k)g(device\).)0
1389 y Fn(ps)0 1642 y Fo(Another)39 b(v)n(ery)e(common)i(to)r(ol)f(is)h
Fl(ps\(1\))e Fo(and)i(it's)0 1742 y(related)g(to)g Fl(top\(1\))p
Fo(.)70 b(Where)39 b Fl(top\(1\))e Fo(is)j(usually)0
1841 y(used)23 b(for)f(an)h(o)n(v)n(erview)e(of)i(the)g(system,)h(one)f
(can)f(use)0 1941 y Fl(ps\(1\))g Fo(for)h(detailed)h(pic)n(king)f(on)g
(the)h(exact)g(state)f(of)0 2040 y(a)k(pro)r(cess)g(\(or)g(pro)r(cess)f
(group\).)0 2240 y(Additionally)h(it)g(can)f(b)r(e)h(closer)f(to)g
(realit)n(y)g(and)h(the)0 2339 y(output)h(is)f(more)f(\015exible,)i(th)
n(us)f(one)g(can)g(do)g(b)r(etter)0 2439 y(p)r(ost-pro)r(cessing)f(in)i
(scripts)f(or)f(similar.)0 2638 y(Probably)60 b(most)i(in)n(teresting)g
(are)f(the)i(options)0 2738 y(sho)n(wing)36 b(ho)n(w)g(m)n(uc)n(h)h(p)r
(ercen)n(tage)f(CPU)h(and)g(VM)0 2837 y(a)29 b(pro)r(cess)g(is)h
(using.)43 b(One)30 b(can)f(sort)g(b)n(y)h(CPU)f(\('u'\))0
2937 y(or)40 b(VM)h(usage)f(\('v'\))h(to)g(\014nd)g(a)f(hogging)f(pro)r
(cess)0 3037 y(quic)n(kly)-7 b(.)0 3347 y Fn(vmstat)0
3599 y Fl(vmstat\(8\))16 b Fo(is)k(the)g(traditional)e(\\swiss)h(arm)n
(y)f(knife")0 3699 y(for)j(detailed)h(lo)r(oks)f(on)g(the)h(systems)f
(curren)n(t)g(usage.)0 3799 y(It's)31 b(p)r(erfect)h(for)f(a)g(\014rst)
g(glance)f(on)h(p)r(oten)n(tial)g(b)r(ot-)0 3898 y(tlenec)n(ks.)0
4098 y(A)39 b(vmstat-newbie)g(will)h(probably)e(b)r(e)h(ba\017ed)g(b)n
(y)0 4197 y(the)57 b(output,)65 b(but)58 b(with)g(some)e(exp)r(erience)
h(it's)0 4297 y(rather)29 b(easy)g(to)h(\014nd)h(out,)f(what's)g(happ)r
(ening)g(and)0 4396 y(where)d(p)r(oten)n(tial)h(problems)e(are)h(lo)r
(cated.)0 4596 y(The)e(default)g(output)g(consists)f(of)g(six)h(areas)e
(\(pro)r(cs,)0 4695 y(memory)-7 b(,)33 b(page,)f(disks,)h(faults,)h
(cpu\).)51 b(Eac)n(h)31 b(areas)0 4795 y(has)c(columns)g(for)g(related)
g(v)-5 b(alues:)0 5035 y Fn(pro)s(cs)41 b Fl(r)j(b)f(w)p
Fo(,)c(sho)n(ws)c(ho)n(w)h(man)n(y)h(pro)r(cesses)e(are)166
5134 y(\(r\)unning,)72 b(are)63 b(b)r(eing)g(\(b\)lo)r(c)n(k)n(ed)g(or)
f(are)166 5234 y(\(w\)aiting.)166 b(Blo)r(c)n(k)n(ed)69
b(pro)r(cesses)h(cannot)166 5333 y(c)n(hange)33 b(to)h(running)g(b)r
(efore)g(the)g(blo)r(c)n(k)g(is)g(re-)166 5433 y(solv)n(ed,)22
b(e.)f(g.)35 b(a)21 b(pro)r(cess)f(\\hangs")g(in)h(a)g
Fl(getblk)2020 83 y Fo(state)28 b(and)f(w)n(aits)g(for)g(disk)h(I/O.)
2020 183 y(W)-7 b(aiting)22 b(means)f(that)h(the)f(pro)r(cess)g(is)g
(ready)g(to)2020 282 y(run,)j(but)f(has)f(still)h(not)f(b)r(een)h(sc)n
(heduled,)h(most)2020 382 y(lik)n(ely)i(b)r(ecause)f(the)h(CPU)g(is)g
(o)n(v)n(erloaded)d(with)2020 482 y(pro)r(cesses.)1854
643 y Fn(memory)41 b Fl(avm)i(fre)p Fo(,)e(n)n(um)n(b)r(er)e(of)h
(pages)f(\(1024b\))2020 743 y(b)r(eing)34 b(allo)r(cated)f(and)g(on)g
(the)h(free)f(list.)55 b(The)2020 843 y Fl(avm)28 b Fo(v)-5
b(alue)29 b(giv)n(es)e(a)i(b)r(etter)g(insigh)n(t)f(on)h(the)g(al-)2020
942 y(lo)r(cation,)e(than)h(the)g(v)-5 b(alues)27 b(from)h
Fl(top\(1\))p Fo(.)1854 1104 y Fn(page)42 b Fl(flt)g(re)h(at)g(pi)f(po)
h(fr)g(sr)p Fo(,)64 b(page-in)56 b(\(pi\))2020 1204 y(and)51
b(page-out)e(\(p)r(o\))i(are)f(most)g(in)n(teresting)2020
1303 y(here.)34 b(It)21 b(indicates)f(if,)i(and)e(ho)n(w)g(m)n(uc)n(h,)
h(paging)2020 1403 y(\(or)27 b(ev)n(en)g(sw)n(apping\))g(o)r(ccurs.)
1854 1565 y Fn(disks)41 b Fl(sd0)h(cd0)p Fo(,)g(the)e(columns)g(here)f
(dep)r(end)i(on)2020 1664 y(the)27 b(disk)e(setup)h(of)g(course.)35
b(V)-7 b(alues)26 b(are)e(trans-)2020 1764 y(fer)j(p)r(er)g(seconds)f
(on)g(this)h(device.)37 b(If)27 b(high)g(v)-5 b(al-)2020
1864 y(ues)19 b(here)f(corresp)r(ond)g(with)h(blo)r(c)n(k)n(ed)f(pro)r
(cesses)2020 1963 y(b)r(elo)n(w)25 b Fl(procs)f Fo(this)i(is)f(a)g(go)r
(o)r(d)g(indication)g(that)2020 2063 y(the)j(disk)g(subsystem)f(could)h
(b)r(e)g(to)r(o)f(slo)n(w.)1854 2225 y Fn(faults)42 b
Fl(in)h(sys)f(cs)p Fo(,)36 b(can)f(indicate)h(to)r(o)f(man)n(y)f(in-)
2020 2324 y(terrupts)21 b(and)g(con)n(text)g(switc)n(hes)f(on)h(the)h
(CPU.)2020 2424 y Fl(sys)d Fo(coun)n(ts)f(syscalls)g(brough)n(t)h(to)g
(the)h(k)n(ernel,)g(a)2020 2523 y(rather)27 b(hard)g(v)-5
b(alue)27 b(to)g(in)n(terpret)g(with)h(regard)2020 2623
y(to)h(b)r(ottlenec)n(ks,)g(but)g(one)g(can)f(get)h(an)f(idea)g(of)2020
2723 y(ho)n(w)22 b(m)n(uc)n(h)g(tra\016c)f(has)h(to)g(pass)f(b)r(et)n
(w)n(een)h(user-)2020 2822 y(land)28 b(and)f(k)n(ernel)g(for)g
(completing)g(the)h(task.)1854 2984 y Fn(cpu)42 b Fl(us)h(sy)g(id)p
Fo(,)20 b(lo)r(ok)n(ed)f(at)g(separately)f(not)h(to)r(o)g(in-)2020
3084 y(formativ)n(e,)34 b(but)f(in)g(com)n(bination)g(with)g(other)2020
3183 y(v)-5 b(alues)25 b(it's)g(one)g(k)n(eyp)r(oin)n(t)f(in)h
(\014guring)f(out)h(the)2020 3283 y(b)r(ottlenec)n(k.)75
b(If)40 b(pro)r(cesses)f(are)g(in)h(`w')h(state)2020
3383 y(and)25 b(`id')g(is)g(v)n(ery)e(lo)n(w,)i(a)f(CPU)h(exhaustion)f
(o)r(c-)2020 3482 y(curs.)53 b(Pro)r(cesses)31 b(b)r(eing)j(\(b\)lo)r
(c)n(k)n(ed)e(and)h(ha)n(v-)2020 3582 y(ing)i(high)g(\(id\)le)h(v)-5
b(alues)34 b(detect)h(I/O)f(exhaus-)2020 3682 y(tions.)79
b(Ha)n(ving)41 b(high)g(\(sy\)stem)h(v)-5 b(alues)42
b(and)2020 3781 y(\(w\)aiting)j(and/or)d(\(b\)lo)r(c)n(k)n(ed)i(pro)r
(cesses)e(in-)2020 3881 y(dicate)c(that)f(the)h(k)n(ernel)e(is)i(busy)f
(with)h(itself)2020 3980 y(to)r(o)25 b(m)n(uc)n(h;)h(this)g(is)f
(usually)g(b)r(ecause)g(of)h(\\bad")2020 4080 y(driv)n(ers.)36
b(Compare)27 b(to)g(`faults)h(in')h(to)e(\014nd)h(out)2020
4180 y(if)40 b(in)n(terrupts)e(are)g(killing)h(the)g(p)r(erformance.)
2020 4279 y(If)h(not)g(it's)f(still)h(p)r(ossible)f(that)h(the)f(CPU)g
(is)2020 4379 y(busy)29 b(transfering)f(blo)r(c)n(ks)g(from)h(disk)g
(devices,)2020 4479 y(indicated)20 b(b)n(y)f(lo)n(w)g(disk)g(transfers)
f(and)h(blo)r(c)n(k)n(ed)2020 4578 y(pro)r(cesses.)1854
4835 y(Already)24 b(impressiv)n(e)e(diagnostic)h(p)r(ossibilities,)i
(but)1854 4935 y Fl(vmstat\(8\))51 b Fo(can)j(sho)n(w)f(ev)n(en)h(more)
f(in)n(teresting)1854 5035 y(things.)1854 5234 y(Besides)g(the)h
(options)e Fl(-i)h Fo(to)g(sho)n(w)f(summaries)1854 5333
y(ab)r(out)28 b(in)n(terrupt)f(b)r(eha)n(viour)g(and)g
Fl(-s)g Fo(to)h(get)f(infor-)1854 5433 y(mation)39 b(ab)r(out)h(the)g
(sw)n(ap)e(area,)j Fl(vmstat)g(-m)e Fo(can)p eop
%%Page: 7 7
7 6 bop 0 83 a Fo(pro)n(vide)45 b(a)g(v)n(ery)g(detailed)h(lo)r(ok)g
(on)f(the)i(curren)n(t)0 183 y(memory)27 b(usage.)0 382
y(Lik)n(e)45 b(w)n(e)h(already)e(ha)n(v)n(e)g(sho)n(wn)h(Op)r(enBSD)h
(uses)0 482 y Fl(pool\(9\))21 b Fo(for)i(net)n(w)n(ork)g(data,)h(th)n
(us)g(w)n(e)f(concen)n(trate)0 581 y(no)n(w)k(on)f(the)i(last)f(c)n(h)n
(unk)f Fl(vmstat)42 b(-m)26 b Fo(is)h(rep)r(orting.)0
681 y(Most)f(in)n(teresting)h(are)e(the)i(lines)g Fl(mbpl)e
Fo(and)i Fl(mclpl)p Fo(,)0 780 y(whic)n(h)37 b(represen)n(t)f(the)i
(memory)f(usage)f(for)h(m)n(bufs)0 880 y(\(m)n(bpl\))28
b(and)g(clusters)f(\(mclpl\).)0 1079 y(In)n(teresting)21
b(columns)h(are)f Fl(Size,)41 b(Pgreq,)g(Pgrel,)0 1179
y(Npage)68 b Fo(and)26 b Fl(Maxpg)p Fo(.)35 b(One)26
b(can)f(obtain)h(the)h(follo)n(w-)0 1279 y(ing)g(information)g(from)h
(that:)0 1527 y Fn(Size)41 b Fo(the)28 b(size)g(of)f(a)g(p)r(o)r(ol)h
(item)0 1684 y Fn(Pgreq)42 b Fo(rep)r(orts)19 b(ho)n(w)h(man)n(y)f
(pages)g(ha)n(v)n(e)h(ev)n(er)f(b)r(een)166 1784 y(allo)r(cated)27
b(b)n(y)g(this)h(p)r(o)r(ol.)0 1941 y Fn(Pgrel)41 b Fo(the)d(p)r(o)r
(ol)f(freed)g(those)f(pages)g(to)h(the)h(sys-)166 2041
y(tem.)0 2198 y Fn(Npage)j Fo(curren)n(tly)30 b(allo)r(cated/used)f
(pages)h(b)n(y)h(the)166 2298 y(p)r(o)r(ol.)0 2455 y
Fn(Maxpg)42 b Fo(maxim)n(um)37 b(n)n(um)n(b)r(er)g(of)g(pages)f(the)i
(p)r(o)r(ol)166 2555 y(can)25 b(use,)h(ev)n(en)f(if)g(paging)g(w)n
(ould)f(o)r(ccur.)36 b(More)166 2655 y(precise:)h(the)29
b(p)r(o)r(ol)f(can)f(gro)n(w)g(o)n(v)n(er)f(this)i(limit,)166
2754 y(but)20 b(the)g(pagedaemon)e(can)h(reclaim)g(free)g(pages)166
2854 y(b)r(eing)j(o)n(v)n(er)f(this)h(limit,)i(if)f(VM)g(is)f(running)g
(lo)n(w.)0 3166 y Fn(netstat)0 3419 y Fo(Usually)29 b
Fl(netstat\(1\))d Fo(is)k(used)f(for)h(gathering)e(net-)0
3518 y(w)n(ork)e(con\014gurations,)g(but)j(it)f(also)e(pro)n(vides)h
(infor-)0 3618 y(mation)g(ab)r(out)h(di\013eren)n(t)g(memory)e(usages.)
0 3817 y Fl(netstat)41 b(-f)h(inet)655 3787 y Fk(15)765
3817 y Fo(sho)n(ws)d(information)h(ab)r(out)0 3917 y(curren)n(t)57
b(net)n(w)n(ork)f(activit)n(y)-7 b(.)126 b(With)58 b(regard)e(to)0
4016 y(memory)25 b(consumption)g(the)h(columns)f Fl(Recv-Q)e
Fo(and)0 4116 y Fl(Send-Q)i Fo(are)i(of)g(ma)5 b(jor)27
b(in)n(terest.)0 4315 y(T)n(ypically)38 b(one)g(will)h(encoun)n(ter)f
(en)n(tries)g(in)h(Send-)0 4415 y(Q)d(for)h(a)f(busy)g(w)n(ebserv)n(er)
f(with)i(a)f(go)r(o)r(d)g(net)n(w)n(ork)0 4514 y(connection.)96
b(Clien)n(ts)48 b(usually)f(ha)n(v)n(e)f(signi\014can)n(t)0
4614 y(smaller)18 b(bandwith,)k(th)n(us)d(the)h(pro)n(vided)e(data)h
(of)h(the)0 4714 y(w)n(ebserv)n(er)33 b(application)i(cannot)f(\\lea)n
(v)n(e")f(the)j(sys-)0 4813 y(tem.)h(It's)28 b(getting)e(queued)i(on)f
(the)g(net)n(w)n(ork)f(stac)n(k,)0 4913 y(eating)h(up)h(m)n(buf)g
(clusters.)0 5112 y(P)n(ending)34 b(requests)f(will)i(sho)n(w)e(up)i
(in)g(Recv-Q,)e(in-)0 5212 y(dicating)h(that)g(the)g(userland)f(cannot)
h(pro)r(cess)f(the)0 5311 y(data)23 b(as)f(fast)h(as)f(it)i(is)f
(coming)f(in)i(o)n(v)n(er)d(the)i(net)n(w)n(ork.)p 0
5356 676 4 v 62 5410 a Fj(15)127 5433 y Fi(or)g(-f)g(inet6)1854
83 y Fo(The)c(latter)f(case)g(should)g(b)r(e)h(resolv)n(ed,)g(ev)n(en)f
(if)h(mem-)1854 183 y(ory)26 b(is)h(not)g(running)f(lo)n(w,)g(since)h
(the)g(system)g(w)n(ould)1854 282 y(app)r(ear)k(sluggish)g(to)h(the)g
(clien)n(t,)h(whic)n(h)f(is)g(usually)1854 382 y(not)c(appreciated)f
(\(b)n(y)g(the)h(admin)g(and/or)e(clien)n(t\).)1854 581
y(In)i(addition)g(to)f Fl(vmstat)41 b(-m)p Fo(,)27 b
Fl(netstat)41 b(-m)27 b Fo(can)g(re-)1854 681 y(p)r(ort)46
b(further)f(v)-5 b(alues)45 b(ab)r(out)h(curren)n(t)e(m)n(buf)j(and)
1854 780 y(cluster)e(usage.)87 b(Most)44 b(notably)g(it)h(rep)r(orts)f
(ho)n(w)1854 880 y(m)n(uc)n(h)j(memory)g(is)g(\\really")e(used.)96
b Fl(vmstat)41 b(-m)1854 980 y Fo(sho)n(ws)28 b(ho)n(w)f(man)n(y)h(p)r
(o)r(ol)h(items)f(are)g(allo)r(cated,)g(but)1854 1079
y Fl(netstat)41 b(-m)23 b Fo(then)g(rep)r(orts)g(ho)n(w)f(man)n(y)h(p)r
(o)r(ol)g(items)1854 1179 y(are)k(actually)g(\014lled)h(with)g(data)f
(to)h(b)r(e)g(pro)r(cessed.)1854 1378 y(In)54 b(fact)g(one)f(could)g
(calculate)g(this)h(in)g Fl(vmstat)1854 1478 y(-m)36
b Fo(b)n(y)g(substracting)f Fl(Releases)e Fo(from)j Fl(Requests)p
Fo(,)1854 1577 y(but)26 b(with)f(n)n(um)n(b)r(ers)g(lik)n(e)f(10599250)
d(and)k(10599245,)1854 1677 y(this)36 b(is)f(not)h(really)e(practical.)
59 b(Another)36 b(pitfall)f(is)1854 1777 y(that)d Fl(vmstat)41
b(-m)31 b Fo(rep)r(orts)g(memory)g(pages,)h(where)1854
1876 y Fl(netstat)41 b(-m)26 b Fo(rep)r(orts)g(p)r(o)r(ol)h(items)2979
1846 y Fk(16)3077 1876 y Fo(used,)g(despite)1854 1976
y(its)h(output)g(of)g Fl(mapped)41 b(pages)g(in)i(use)p
Fo(.)1854 2175 y(F)-7 b(urthermore)23 b(it)h(splits)f(up)h(what)g(t)n
(yp)r(e)f(of,)i(and)e(ho)n(w)1854 2275 y(man)n(y)-7 b(,)25
b(m)n(bufs)f(are)f(used)h(\(pac)n(k)n(et)f(headers,)h(so)r(c)n(k)n
(ets,)1854 2374 y(data,)40 b(..\),)h(and)c(it)h(giv)n(es)f(a)g(summary)
f(ab)r(out)i(ho)n(w)1854 2474 y(m)n(uc)n(h)28 b(memory)g(is)g(needed)g
(b)n(y)g(the)h(net)n(w)n(ork)d(stac)n(k,)1854 2574 y(whic)n(h)20
b(w)n(ould)f(b)r(e)h(rather)f(tedious)g(to)h(calculate)f(from)1854
2673 y(the)28 b Fl(vmstat)41 b(-m)27 b Fo(output.)1854
3018 y Fn(systat)1854 3277 y Fo(This)j(to)r(ol)g(pro)n(vides)f(a)g
Fl(top\(1\))f Fo(lik)n(e)h(displa)n(y)h(of)f(in-)1854
3376 y(formation)47 b(the)h(previous)f(to)r(ols)g(w)n(ould)g(pro)n
(vide.)1854 3476 y(Esp)r(ecially)18 b Fl(systat)42 b(vmstat)16
b Fo(is)j(a)g(p)r(erfect)g(o)n(v)n(erview)1854 3575 y(ab)r(out)39
b(load,)i(disk)e(usage,)i(in)n(terrupts,)g(CPU)e(and)1854
3675 y(VM)28 b(usage.)1854 3874 y(One)21 b(can)f(monitor)g(the)h
(system)f(in)h(in)n(terv)-5 b(als,)21 b(or)f(col-)1854
3974 y(lect)28 b(the)g(information)f(o)n(v)n(er)f(time.)1854
4286 y Fm(5.2)105 b(Sp)s(ecial)36 b(to)s(ols)1854 4599
y Fo(Besides)d(the)h(to)r(ols)f(w)n(e)g(ha)n(v)n(e)f(sho)n(wn)h(so)f
(far,)j(there)1854 4698 y(are)30 b(additional)f(p)r(ossibilities)i(to)f
(monitor)g(the)g(sys-)1854 4798 y(tem.)50 b Fe(symon)33
b Fo(and)e Fe(pftop)j Fo(are)c(in)j(the)f(p)r(orts)f(collec-)1854
4898 y(tion.)55 b Fe(KVMspy)34 b Fo(is)f(not)g(ev)n(en)g(published)h
(for)f(no)n(w,)1854 4997 y(but)20 b(it)g(sho)n(ws)e(that)h(it's)h(p)r
(ossible)e(to)h(write)g(o)n(wn)g(to)r(ols)1854 5097 y(for)36
b(sp)r(eci\014c)g(monitorings)f(without)i(enormous)d(ef-)1854
5197 y(fort)1986 5166 y Fk(17)2056 5197 y Fo(.)p 1854
5277 V 1916 5330 a Fj(16)1981 5354 y Fi(usually)24 b(a)g(factor)g(of)f
(t)n(w)n(o.)1916 5410 y Fj(17)1981 5433 y Fi(the)i(source)f(co)r(de)h
(is)e(b)r(elo)n(w)h(300)g(lines.)p eop
%%Page: 8 8
8 7 bop 0 83 a Fn(symon)0 372 y Fo(F)-7 b(or)20 b(monitoring)g(o)n(v)n
(erall)f(resource)g(usage)h(o)n(v)n(er)g(time)0 472 y(frames,)51
b Fe(symon)d Fo([Dij02])f(is)g(a)f(p)r(erfect)i(to)r(ol.)95
b(It)0 572 y(queries)36 b(the)h(k)n(ernel)f(via)g Fl(sysctl)e
Fo(ab)r(out)j(common)0 671 y(resources.)32 b(It)21 b(uses)f
Fl(rrdtool)d Fo([Oet02)o(])j(as)g(data)f(stor-)0 771
y(age)j(bac)n(k)n(end.)34 b(There)22 b(is)h(a)g(data)f(collector)g
(daemon,)0 870 y(called)37 b Fl(symon)p Fo(,)g(whic)n(h)g(runs)f(on)h
(ev)n(ery)f(monitored)0 970 y(mac)n(hine,)c(sending)f(the)h(collected)g
(data)f(to)g Fl(symux)p Fo(,)0 1070 y(usually)40 b(running)f(on)h(a)g
(cen)n(tral)f(mac)n(hine,)k(whic)n(h)0 1169 y(stores)38
b(them)h(on)g(disk.)71 b(Additionally)39 b(there)g(is)f(a)0
1269 y(w)n(eb-in)n(terface,)32 b Fl(symon-web)p Fo(,)e(pro)n(viding)h
(graphical)0 1369 y(represen)n(tation)26 b(of)h(the)h(collected)g
(data.)0 1568 y(After)g(mac)n(hines)g(ha)n(v)n(e)e(b)r(een)j(set)e(up)i
(with)f(detailed)0 1667 y(analysis,)h(this)h(output)g(is)g(enough)f(to)
g(detect)h(high-)0 1767 y(load)19 b(situations)g(and)h(trigger)e(coun)n
(termeasures)g(b)r(e-)0 1867 y(fore)27 b(exhaustion)g(o)r(ccurs.)0
2066 y(If)39 b(one)f(w)n(an)n(ts)g(a)g(long-term)g(analysis)f(of)i
(detailed)0 2166 y(data,)50 b(it's)c(relativly)e(easy)h(to)g(extend)h
(this)g(to)r(ol.)0 2265 y(Symon)36 b(is)h(prett)n(y)f(new)g(and)h
(under)f(activ)n(e)g(dev)n(el-)0 2365 y(opmen)n(t)e(b)n(y)g(Willem)h
(Dijkstra,)h(but)f(already)e(v)n(ery)0 2464 y(useful.)0
2962 y Fn(pftop)0 3251 y Fo(If)49 b(one)g(w)n(an)n(ts)e(to)i(monitor)f
(sp)r(eci\014c)h(areas,)j(lik)n(e)0 3351 y Fl(pf\(4\))p
Fo(,)45 b Fe(pftop)g Fo([Aca02)n(])f(is)f(a)f(curses-based,)j(real-)0
3451 y(time)28 b(monitoring)f(application)g(pro)n(viding)f(that.)0
3650 y(One)18 b(can)g(consider)g(it)h(as)f(a)g(netstat-v)-5
b(arian)n(t,)19 b(pro)n(vid-)0 3750 y(ing)27 b(similar)g(information,)g
(ab)r(out)h(the)g(pak)n(et)f(\014lter.)0 4247 y Fn(KVMsp)m(y)0
4536 y Fo(F)-7 b(or)48 b(the)h(absolute)f(curious)g(one,)53
b(there)c(will)g(b)r(e)0 4636 y Fe(KVMspy)p Fo(.)56 b(Curren)n(tly)33
b(it)i(sho)n(ws)d(a)i(bit)g(more)f(\(o\013-)0 4736 y(sets\))28
b(information)g(than)g Fl(vmstat)42 b(-m)27 b Fo(ab)r(out)h(p)r(o)r
(ols)0 4835 y(and)f(a)h(bit)g(less)f(\(only)g(curren)n(t)g(and)h(high)n
(w)n(ater\).)0 5035 y(But,)42 b(for)c(the)h(in)n(terested)f(hac)n(k)n
(er,)i(this)f(is)f(ma)n(yb)r(e)0 5134 y(b)r(etter)57
b(example)g(co)r(de)g(ho)n(w)f(to)h(p)r(oll)g(the)g(k)n(er-)0
5234 y(nel)44 b(states)g(via)g Fl(kvm\(3\))e Fo(routines.)86
b(Queries)44 b(via)0 5333 y Fl(sysctl\(3\))18 b Fo(can)k(b)r(e)h(found)
f(in)g(symon)g(or)f(are)g(added)0 5433 y(to)27 b(KVMsp)n(y)g(in)h(the)g
(future.)1854 83 y Fr(6)112 b(Coun)m(termeasures)1854
372 y Fo(And)33 b(\014nally)f(w)n(e)g(come)g(to)g(the)g(in)n(teresting)
g(pieces.)1854 472 y(Sev)n(eral)18 b(w)n(a)n(ys)g(to)i(determine)f
(where)g(a)g(lac)n(k)g(of)g(KVM)1854 571 y(resources)k(o)r(ccurs)h(ha)n
(v)n(e)g(b)r(een)i(sho)n(wn.)35 b(So,)25 b(what)h(to)1854
671 y(do)i(if)g(it)g(actually)f(happ)r(ens?)1854 870
y(There)22 b(are)f(three)h(imp)r(ortan)n(t)g(k)n(ernel)f(options)g
(de\014n-)1854 970 y(ing)g(the)h(KVM)f(la)n(y)n(out)e(with)j(regard)d
(to)i(net)n(w)n(orking.)1854 1069 y Fl(NMBCLUSTERS)85
b Fo(and)45 b Fl(NKMEMPAGES)c Fo(are)j(compile-)1854
1169 y(time)29 b(options,)g(but)g(can)f(b)r(e)h(set)g(via)f
Fl(config\(8\))d Fo(as)1854 1269 y(w)n(ell.)40 b Fl(MAX)p
2195 1269 27 4 v 31 w(KMAPENT)26 b Fo(can)i(only)g(b)r(e)h(set)g(at)g
(compile-)1854 1368 y(time.)1854 1657 y Fm(6.1)105 b(NMBCLUSTERS)1854
1946 y Fo(The)31 b(maxim)n(um)f(n)n(um)n(b)r(er)g(of)h(clusters)f(for)g
(net)n(w)n(ork)1854 2046 y(data)i(can)g(b)r(e)g(de\014ned)h(here.)49
b(Naturally)-7 b(,)33 b(it's)f(di\016-)1854 2145 y(cult)k(to)g
(calculate)f(this)g(v)-5 b(alue)36 b(in)g(adv)-5 b(ance.)60
b(Most)1854 2245 y(tuning)26 b(guides)e(recommend)g(a)h(v)-5
b(alue)25 b(of)g(8192)e(here.)1854 2345 y(W)-7 b(e)28
b(usually)f(use)h(this)g(v)-5 b(alue,)27 b(to)r(o.)1854
2544 y(P)n(eople)46 b(tend)h(to)g(raise)e(this)i(v)-5
b(alue)47 b(further,)k(not)1854 2644 y(kno)n(wing)43
b(what)g(implications)g(this)h(can)f(ha)n(v)n(e)f(on)1854
2743 y(the)37 b(system.)63 b(A)37 b(v)-5 b(alue)37 b(of)f(8192)f(p)r
(oten)n(tially)h(uses)1854 2843 y(16MB)45 b(for)f Fl(mb)p
2355 2843 V 31 w(map)p Fo(:)71 b(8192)29 b Fg(\003)g
Fo(2048)51 b(=)h(16777216)1854 2942 y(\(MCLBYTES)28 b(is)f(usually)h
(2048\).)1854 3142 y(Since)41 b(this)f(is)g(only)g(a)f(\\pre-allo)r
(cation")e(and)j(not)1854 3241 y(real)31 b(usage)g(in)h(the)h(\014rst)f
(place,)g(this)h(v)-5 b(alue)31 b(can)h(b)r(e)1854 3341
y(sane.)74 b(On)39 b(the)i(other)e(hand,)k(if)d(there)g(are)f(other)
1854 3441 y(problems)e(with)i(KVM,)e(this)i(v)-5 b(alue)37
b(ma)n(y)g(b)r(e)h(lo)n(w-)1854 3540 y(ered.)1854 3739
y(Lo)r(oking)g(at)g(real-life)g(usage)g(of)g(busy)h(w)n(ebserv)n(ers)
1854 3839 y(\(see)d(7.1\))f(the)h(high)g(w)n(atermark)e(of)h
Fl(mclpl)f Fo(is)i(524)1854 3939 y(\(1048)e(clusters\),)i(th)n(us)f(ev)
n(en)f(the)h(default)g(of)g(2048)1854 4038 y(clusters)46
b(w)n(ould)g(b)r(e)h(su\016cien)n(t.)94 b(This)46 b(high)g(w)n(a-)1854
4138 y(termark)35 b(\(Hiw)n(at)g(in)h Fl(vmstat)41 b(-m)p
Fo(\))35 b(is)h(also)e(p)r(erfect)1854 4238 y(to)f(determine)f(the)h
Fl(mclpl)d Fo(size)i(for)g(load-balanced)1854 4337 y(serv)n(ers.)1854
4536 y(Imagine)d(a)f(Hiw)n(at)h(of)g(1000)e(on)i(b)r(oth)g(mac)n
(hines.)41 b(If)1854 4636 y(one)29 b(mac)n(hine)g(has)f(to)h(go)g(out)g
(of)g(service,)f(due)i(to)f(a)1854 4736 y(crash)f(or)h(simply)g(hardw)n
(are)e(main)n(tenance,)j(a)e(p)r(o)r(ol)1854 4835 y(size)f(of)g
Ff(>)p Fo(4000)d(w)n(ould)j(ensure)f(that)h(the)g(remaining)1854
4935 y(mac)n(hine)20 b(do)r(esn't)g(run)f(out)h(of)g(clusters.)33
b(Remem)n(b)r(er)1854 5035 y(that)c Fl(vmstat)41 b(-m)28
b Fo(rep)r(orts)g(pages,)g(not)h(items,)g(th)n(us)1854
5134 y(one)19 b(has)f(to)h(calculate)f(1000)q Fg(\003)q
Fo(2)q Fg(\003)q Fo(2)d(for)k Fl(NMBCLUSTERS)p Fo(.)1854
5333 y(Additionally)32 b(it's)f(imp)r(ortan)n(t)g(to)h(trac)n(k)e(wh)n
(y)h(clus-)1854 5433 y(ters)19 b(are)g(used)g(in)h(larger)d(n)n(um)n(b)
r(ers.)34 b(W)-7 b(e)20 b(ha)n(v)n(e)e(sho)n(wn)p eop
%%Page: 9 9
9 8 bop 0 83 a Fo(in)39 b(5.1/netstat)f(that)h(it)g(is)g(imp)r(ortan)n
(t)f(to)h(ha)n(v)n(e)e(a)0 183 y(quic)n(k)j(passing)g(from)g(the)i
Fl(Recv-Q)c Fo(to)j(the)g(serv)n(er)0 282 y(application.)55
b(It's)35 b(a)e(b)r(etter)i(idea)e(to)h(impro)n(v)n(e)f(the)0
382 y(application)f(p)r(erformance)g(in)h(this)g(area,)f(than)h(in-)0
482 y(creasing)i Fl(NMBCLUSTERS)d Fo(and)37 b(let)g(the)g(data)g(sit)g
(in)0 581 y(KVM.)e(A)n(t)g(least)f(a)g(rather)g(empt)n(y)g
Fl(Recv-Q)f Fo(lea)n(v)n(es)0 681 y(more)39 b(space)f(for)h(the)h
Fl(Send-Q)p Fo(,)d(whic)n(h)i(cannot)g(b)r(e)0 780 y(in\015uenced)28
b(directly)f(to)h(free)f(clusters.)0 980 y(After)32 b(all,)f(it's)h
(dangerous)d(to)i(use)g(high-v)-5 b(alues)31 b(for)0
1079 y(this)37 b(\(and)f(the)h(follo)n(wing\))f(options)f(without)i(v)n
(ery)0 1179 y(detailed)23 b(kno)n(wledge)f(ab)r(out)h(what)g(is)g(happ)
r(ening)g(in)0 1279 y(the)28 b(k)n(ernel.)36 b(A)28 b(\\just)f(to)h(b)r
(e)g(safe")e(tuning)i(can)f(eas-)0 1378 y(ily)h(lead)f(to)h(an)g
(unstable)f(mac)n(hine.)37 b(W)-7 b(e)29 b(ha)n(v)n(e)d(seen)0
1478 y(p)r(eople)d(using)g(a)f(v)-5 b(alue)23 b(of)g(65535)e(for)h
Fl(NMBCLUSTERS)p Fo(,)0 1577 y(rendering)39 b(a)g(pre-allo)r(cation)g
(of)g(128MB)g({)g(not)h(a)0 1677 y(go)r(o)r(d)23 b(idea)g(and)h
(usually)f(it)h(do)r(esn't)g(gain)f(an)n(ything,)0 1777
y(except)j(problems.)36 b(Think)26 b(t)n(wice)g(ab)r(out)h(those)f(v)-5
b(al-)0 1876 y(ues.)0 2160 y Fm(6.2)105 b(NKMEMP)-9 b(A)m(GES)0
2444 y Fo(This)30 b(option)f(de\014nes)h(the)g(total)g(size)g(of)f
Fl(kmem)p 1510 2444 27 4 v 30 w(map)p Fo(.)0 2544 y(Since)20
b(this)h(is)f(not)g(exclusiv)n(ely)f(used)h(for)g(net)n(w)n(orking)0
2644 y(data,)31 b(it)h(is)e(a)h(bit)g(di\016cult)h(to)f(calculate)f
(the)h(v)-5 b(alue)0 2743 y(for)27 b(this)h(option.)0
2942 y(Since)50 b Fl(kmem)p 420 2942 V 29 w(map)f Fo(w)n(as)f(freed)h
(from)g(other)g(usage)0 3042 y(\(4.2\))31 b(and)f(the)i(in)n(tro)r
(duction)e(of)h Fl(pool\(9\))d Fo(ensures)0 3142 y(that)21
b(there)g(is)f(more)g(space)g(here)h(for)f(m)n(bufs)h(an)n(yw)n(a)n(y)
-7 b(,)0 3241 y(so)24 b(an)g(exhaustion)f(of)h Fl(kmem)p
897 3241 V 30 w(map)f Fo(is)h(less)g(lik)n(ely)g(than)0
3341 y(b)r(efore.)0 3540 y(T)-7 b(rac)n(king)29 b(of)i(the)g(usage)f
(is)h(still)g(p)r(ossible,)g(though.)0 3640 y(Lo)r(oking)26
b(again)h(at)0 3739 y(tt)i(vmstat)g(-m,)g(this)g(time)g(at)g
Fl(mbpl)p Fo(,)e(one)i(can)f(see)g(a)0 3839 y(correlation)c(b)r(et)n(w)
n(een)i Fl(mbpl)e Fo(and)h Fl(mclpl)p Fo(.)35 b(It's)26
b(com-)0 3939 y(mon)c(that)g(the)h(page)e(v)-5 b(alue)22
b(is)g(usually)g(half)g(\(or)f(less\))0 4038 y(the)36
b(v)-5 b(alue)36 b(from)g Fl(mclpl)p Fo(.)60 b(Y)-7 b(et)37
b(again,)g(one)f(has)f(to)0 4138 y(tak)n(e)h(care)g(of)g(\\items)h(vs)f
(page-size".)62 b(Mbufs)37 b(are)0 4238 y(w)n(a)n(y)23
b(smaller)g(then)i(a)f(cluster,)h(th)n(us)f(16)f(m)n(bufs)i(\014t)g(in)
0 4337 y(one)i(page)g(of)g(memory)-7 b(.)0 4536 y(A)36
b(net)n(w)n(ork)f(connection)g(using)g(clusters)g(needs)h(at)0
4636 y(least)30 b(t)n(w)n(o)f(m)n(bufs,)i(one)f(for)f(the)i(pak)n(et)e
(header)g(and)0 4736 y(one)i(for)g(the)g(reference)g(to)g(the)g
(cluster.)48 b(Since)31 b(not)0 4835 y(ev)n(ery)i(connection)i(uses)f
(clusters)g(it's)h(sane)f(to)h(as-)0 4935 y(sume)29 b(that)h(a)f(v)-5
b(alue)29 b(for)g Fl(NKMEMPAGES)c Fo(b)r(eing)k(t)n(wice)0
5035 y(the)41 b(v)-5 b(alue)41 b(of)g Fl(NMBCLUSTERS)36
b Fo(is)k(a)h(go)r(o)r(d)f(starting)0 5134 y(p)r(oin)n(t.)0
5333 y(Again,)h(one)d(should)g(raise)g(this)h(v)-5 b(alue)38
b(v)n(ery)f(care-)0 5433 y(fully)-7 b(.)46 b(Blindly)30
b(c)n(hanging)f(these)h(v)-5 b(alues)30 b(can)g(in)n(tro-)1854
83 y(duce)e(more)f(problems,)g(than)g(are)g(solv)n(ed.)1854
282 y(Additionally)-7 b(,)34 b(if)f(the)f(option)g(is)h(not)f(touc)n
(hed,)h(the)1854 382 y(k)n(ernel)22 b(gets)f(a)h(sane)g(default)h(v)-5
b(alue)22 b(for)f Fl(NKMEMPAGES)1854 482 y Fo(at)f(compile-time,)h
(based)d(on)h(RAM)h(a)n(v)-5 b(ailable)18 b(in)i(the)1854
581 y(system.)60 b(If)36 b(the)g(k)n(ernel)e(is)h(compiled)h(on)f(a)g
(di\013er-)1854 681 y(en)n(t)c(mac)n(hine)e(with)i(a)f(di\013eren)n(t)g
(amoun)n(t)g(of)g(RAM,)1854 780 y(this)i(option)f(should)f(b)r(e)i
(used.)47 b(A)32 b(t)n(ypical)f(calcula-)1854 880 y(tion)k(v)-5
b(alue)35 b(is)f(8162)f(for)h(a)g(mac)n(hine)h(with)g(128MB)1854
980 y(of)24 b(RAM;)h(this)g(can)e(b)r(e)i(determined)f(b)n(y)g
Fl(sysctl)41 b(-n)1854 1079 y(vm.nkmempages)p Fo(.)1854
1387 y Fm(6.3)105 b(MAX)p 2355 1387 32 4 v 38 w(KMAPENT)1854
1695 y Fo(De\014nition)44 b(of)f(the)g(n)n(um)n(b)r(er)f(of)h(static)g
(en)n(tries)f(in)1854 1794 y Fl(kmem)p 2035 1794 27 4
v 30 w(map)p Fo(.)56 b(Lik)n(e)34 b Fl(NKMEMPAGES)p Fo(,)d(the)k(v)-5
b(alue)34 b(is)g(cal-)1854 1894 y(culated)g(at)g(compile-time)g(if)h
(unset.)56 b(The)34 b(default)1854 1994 y(of)28 b(1000)e(\(at)i(least,)
g(it)g(is)g(based)f(on)h(\\maxusers"\))d(is)1854 2093
y(usually)i(enough.)1854 2293 y(Raising)45 b(this)g(v)-5
b(alue)46 b(is)f(discouraged,)j(but)e(could)1854 2392
y(b)r(e)23 b(needed,)g(if)g(panics)f(\()p Fl(uvm)p 2746
2392 V 30 w(mapent)p 3040 2392 V 29 w(alloc:)85 b(out)1854
2492 y(of)43 b(static)e(map)i(entries)d(..)p Fo(\))59
b(o)r(ccur.)g(Usually)1854 2591 y(this)28 b(happ)r(ens)f(if)h
Fl(kmem)p 2598 2591 V 29 w(map)e Fo(is)h(highly)g(fragmen)n(ted,)1854
2691 y(for)g(example)h(b)n(y)f(a)g(lot)h(of)f(small)g(allo)r(cations.)
1854 3115 y Fr(7)112 b(Real-life)39 b(Examples)1854 3423
y Fo(Putting)k(ev)n(erything)e(together,)k(w)n(e)d(pro)n(vide)f(t)n(w)n
(o)1854 3522 y(examples)e(of)g(mac)n(hines)f(running)h(Op)r(enBSD)g
(un-)1854 3622 y(der)d(high)g(load.)61 b(It)37 b(sho)n(ws)e(that)h(a)g
(careful)f(k)n(ernel)1854 3722 y(con\014guration)25 b(and)h(hardw)n
(are)e(selection)h(has)h(great)1854 3821 y(in\015uence)i(on)g(the)g(p)r
(erformance)e(and)i(reliabilit)n(y)-7 b(.)1854 4129 y
Fm(7.1)105 b(c)m(hat4free.de)36 b(W)-9 b(ebserv)m(er)1854
4437 y Fo(This)25 b(mac)n(hine,)f(hosted)g(b)n(y)g(BSWS,)h(is)f
(running)g(the)1854 4536 y(w)n(ebserv)n(er)39 b(for)i(one)g(of)g
(German)n(y's)e(biggest)i(c)n(hat)1854 4636 y(systems,)27
b(c)n(hat4free.de.)1854 4835 y(The)i(site)f(consists)g(of)h(static)f
(pages)f(and)i(public)g(fo-)1854 4935 y(rums.)61 b(The)36
b(un)n(usual)f(problem)g(here)g(is)h(the)g(b)r(oth)1854
5035 y(the)26 b(o)n(v)n(erall)c(load)j(and)f(the)h(enormous)f(p)r(eaks)
g(whic)n(h)1854 5134 y(happ)r(en)53 b(when)f(n)n(um)n(b)r(ers)g(of)g
(users)g(are)f(discon-)1854 5234 y(nected)21 b(from)f(the)h(c)n(hat)f
(serv)n(er)e(due)j(to)f(external)f(net-)1854 5333 y(w)n(ork)36
b(problems)g(or)g(crashes)g(of)h(the)h(serv)n(er)d(itself.)1854
5433 y(Unlik)n(e)d(man)n(y)f(w)n(eb)h(applications,)g(this)g(serv)n(er)
e(has)p eop
%%Page: 10 10
10 9 bop 0 83 a Fo(a)28 b(h)n(uge)f(v)n(olume)h(of)g(small)g(pac)n(k)n
(ets,)f(whic)n(h)h(demon-)0 183 y(strates)35 b(that)i(loading)e(is)h
(more)f(an)h(issue)g(of)g(users)0 282 y(and)27 b(pac)n(k)n(et)g(coun)n
(ts)g(than)h(ra)n(w)e(data)h(transfer.)0 482 y(Originally)-7
b(,)63 b(it)58 b(w)n(as)f(running)g(one)g(Apac)n(he)g(in-)0
581 y(stance)20 b(for)f(the)i(en)n(tire)e(application,)i(on)f(an)g
(700MHz)0 681 y(A)n(thlon)52 b(system)g(with)h(1.5G)f(RAM,)h(running)e
(a)0 780 y(highly)30 b(mo)r(di\014ed)g(Op)r(enBSD)h(3.0.)43
b(Unfortunately)-7 b(,)0 880 y(this)21 b(system)f(sometimes)h(crashed)e
(due)i(to)g(KVM)g(ex-)0 980 y(haustion.)0 1179 y(T)-7
b(o)61 b(address)f(this)i(problem,)70 b(the)62 b(system)f(w)n(as)0
1279 y(switc)n(hed)38 b(to)f(a)g(new)h(system,)i(again)d(an)g(700MHz)0
1378 y(A)n(thlon)30 b(with)g(512M)e(RAM,)i(running)f(t)n(w)n(o)f(Apac)n
(he)0 1478 y(instances)54 b(in)g(c)n(hro)r(ot)f(jails,)61
b(on)53 b(a)h(fairly)g(sto)r(c)n(k)0 1577 y(Op)r(enBSD)34
b(3.1)e(system.)53 b(The)33 b(system)g(has)f(a)h(net-)0
1677 y(w)n(ork)46 b(adapter)h(based)g(on)g(a)g(DEC/In)n(tel)g(21143,)0
1777 y(with)35 b(a)f(Seeq)g(84220)e(PHY,)i(and)g(runs)g("headless")0
1876 y(with)28 b(a)f(serial)g(console.)0 2076 y(One)40
b(of)g(the)g(t)n(w)n(o)f(Apac)n(he)h(instances)f(is)h(stripp)r(ed)0
2175 y(do)n(wn)34 b(as)h(m)n(uc)n(h)f(as)h(I)g(could)f(mak)n(e)h(it,)i
(and)e(serv)n(es)0 2275 y(the)21 b(static)f(pages.)33
b(This)20 b(h)n(ttp)r(d)h(binary)f(is)g(only)g(303k)0
2374 y(in)42 b(size,)j(compared)40 b(to)h(the)h(almost)f(600k)f(of)i
(the)0 2474 y(sto)r(c)n(k)30 b(Apac)n(he.)45 b(The)30
b(second)g(instance)g(of)g(Apac)n(he)0 2574 y(is)j(m)n(uc)n(h)h
(bigger,)f(as)g(it)h(has)f(PHP)g(compiled)g(in.)55 b(I)0
2673 y(alw)n(a)n(ys)26 b(use)h(static)g(h)n(ttp)r(ds,)i(rather)d(than)i
(Dynamic)0 2773 y(Shared)f(Ob)5 b(jects)27 b(\(DSOs\).)0
2972 y(The)42 b(k)n(ernel)f(con\014guration)f(is)i(fairly)f(sto)r(c)n
(k.)80 b(All)0 3072 y(un)n(used)74 b(hardw)n(are)f(supp)r(ort)h(and)h
(em)n(ulations)0 3171 y(are)49 b(remo)n(v)n(ed,)54 b(option)c(DUMMY)p
1167 3171 25 4 v 31 w(NOPS)f(is)h(en-)0 3271 y(abled.)67
b(NMBCLUSTERS)39 b(is)e(bump)r(ed)i(to)f(8192,)0 3371
y(NKMEMP)-7 b(A)n(GES)21 b(to)g(16384.)33 b(I)22 b(considered)e
(raising)0 3470 y(MAX)p 205 3470 V 31 w(KMAPENT)33 b(from)h(its)g
(default)h(of)f(1000)e(to)0 3570 y(1500)20 b(or)h(so)h(to)g(b)r(e)g
(able)g(to)g(ha)n(v)n(e)e(ev)n(en)i(more)f(concur-)0
3670 y(ren)n(t)39 b(Apac)n(he)g(pro)r(cesses)g(running,)j(though)d
(there)0 3769 y(has)34 b(b)r(een)g(no)g(real)f(need)i(y)n(et)f(in)g
(this)h(application.)0 3869 y(The)21 b(mac)n(hine)g(has)g(an)g
(ordinary)f(IDE)i(hard)e(disk)i(for)0 3968 y(the)28 b(system,)g(con)n
(ten)n(t)f(and)g(logs)g(are)g(on)g(a)g(separate)0 4068
y(mac)n(hine's)22 b(RAID)h(subsystem,)g(moun)n(ted)g(via)e(NFS.)0
4168 y(Most)32 b(static)g(con)n(ten)n(t)g(ends)g(up)h(b)r(eing)f(cac)n
(hed,)h(re-)0 4267 y(ducing)28 b(net)n(w)n(ork)e(tra\016c.)0
4467 y(The)i("lean")e(h)n(ttp)r(d)j(instance)f(is)g(con\014gured)e(for)
i(up)0 4566 y(to)33 b(1000)e(concurren)n(t)g(h)n(ttp)r(d)j(tasks,)g
(the)f("fat")f(one)0 4666 y(for)d(up)h(to)f(600.)41 b(I'v)n(e)29
b(seen)g(b)r(oth)h(reac)n(h)e(their)i(max-)0 4765 y(im)n(um)e(limits)f
(at)g(the)h(same)f(time,)g(and)g(the)h(smaller)0 4865
y(mac)n(hine)47 b(handles)h(this)g(load)f(without)i(inciden)n(t.)0
4965 y(This)37 b(is)g(due)h(to)f(the)h(sup)r(erior)e(memory)h(manage-)0
5064 y(men)n(t)28 b(in)f(Op)r(enBSD)h(3.1)e(and)h(the)h(smaller)e(Apac)
n(he)0 5164 y(con\014gurations.)0 5363 y(Detailed)21
b(k)n(ernel)e(con\014guration)g(and)h(dmesg\(8\))g(can)1854
83 y(b)r(e)28 b(found)g(in)g(the)g(App)r(endix.)1854
367 y Fm(7.2)105 b(A)35 b(\014rew)m(all)g(at)f(BSWS)1854
651 y Fo(One)21 b(imp)r(ortan)n(t)g(fact)g(ab)r(out)g(\014rew)n(alling)
f(and)h(\014lter-)1854 751 y(ing)33 b(is)g(that)g(the)g(bandwidth)g
(isn't)g(the)h(imp)r(ortan)n(t)1854 850 y(issue,)40 b(the)e(issue)f(is)
g(the)h(pac)n(k)n(et)e(rate)h(\(i.e.,)k(pac)n(k-)1854
950 y(ets)29 b(p)r(er)g(second\).)40 b(Eac)n(h)28 b(pac)n(k)n(et)f
(needs)i(to)g(b)r(e)g(han-)1854 1050 y(dled)20 b(b)n(y)g(the)g(net)n(w)
n(ork)e(adapter,)j(the)f(TCP/IP)e(stac)n(k)1854 1149
y(and)34 b(the)h(\014lter,)g(whic)n(h)f(eac)n(h)g(need)g(to)g(do)g
(roughly)1854 1249 y(the)h(same)e(amoun)n(t)g(of)h(w)n(ork)e(whether)i
(the)g(pac)n(k)n(et)1854 1348 y(is)28 b(small)f(or)g(large.)1854
1548 y(The)49 b(\014rew)n(all)f(that)h(protects)g(a)f(n)n(um)n(b)r(er)h
(of)g(the)1854 1647 y(serv)n(ers)36 b(at)h(BSWS)h(is)f(under)g(rather)g
(hea)n(vy)f(load,)1854 1747 y(not)21 b(really)f(due)h(to)g(total)f
(bandwidth,)j(but)f(the)f(large)1854 1847 y(n)n(um)n(b)r(er)i(of)f
(small)h(pac)n(k)n(ets)e(in)n(v)n(olv)n(ed.)34 b(It)23
b(is)g(running)1854 1946 y(on)c(a)f(700MHz)g(Duron)g(with)h(128M)f(RAM)
h(and)g(three)1854 2046 y(DEC/In)n(tel)27 b(21143-based)d(NICs)k(\(one)
f(is)g(curren)n(tly)1854 2145 y(not)36 b(in)h(use\).)62
b(It)37 b(b)r(o)r(ots)f(from)g(a)f(small)h(IDE)g(hard)1854
2245 y(disk,)29 b(whic)n(h)f(is)h(quite)f(unimp)r(ortan)n(t)h(to)f
(this)h(appli-)1854 2345 y(cation.)1854 2544 y(The)41
b(mac)n(hine)f(is)h(running)f(a)g(highly)h(customized)1854
2644 y(v)n(ersion)61 b(of)i(Op)r(enBSD.)g(The)g(base)f(system)g(is)1854
2743 y(Op)r(enBSD)43 b(3.0,)i(but)e(man)n(y)f(pieces)g(of)g(what)g(b)r
(e-)1854 2843 y(came)36 b(Op)r(enBSD)h(3.1)f(w)n(ere)f(imp)r(orted,)k
(including)1854 2942 y(3.1's)29 b(pac)n(k)n(et)f(\014lter)h
Fl(pf\(4\))p Fo(.)40 b(A)n(t)29 b(the)h(time)g(this)f(w)n(as)1854
3042 y(put)24 b(together,)f(there)f(w)n(as)g(no)g(other)g(option)h(for)
f(this)1854 3142 y(application.)46 b(Man)n(y)30 b(of)h(pf)6
b('s)31 b(new)n(er)f(features)g(w)n(ere)1854 3241 y(needed,)d(but)g(it)
g(w)n(as)f(not)g(p)r(ossible)g(to)h(w)n(ait)f(for)g(3.1-)1854
3341 y(Release,)j(as)f(the)h(previous)e(Op)r(enBSD)j(2.9)d(\014rew)n
(all)1854 3441 y(running)20 b(IPFilter)f(had)g(saturated)g(the)h(pro)r
(cessor)e(at)1854 3540 y(near)24 b(100\045)g(utilization)h(at)g(p)r
(eak)f(usage)g(times,)i(and)1854 3640 y(dela)n(ys)33
b(w)n(ere)f(b)r(eing)h(noticed.)55 b(The)33 b(k)n(ernel)f(con\014g-)
1854 3739 y(uration)d(has)f(had)h(all)f(uneeded)i(hardw)n(are)d(supp)r
(ort)1854 3839 y(and)20 b(binary)f(em)n(ulations)f(remo)n(v)n(ed,)i
(and)f(the)h(alw)n(a)n(ys)1854 3939 y(famous)27 b(NKMEMCLUSTERS=16384)c
(and)k(NM-)1854 4038 y(BCLUSTERS=8192)k(mo)r(di\014cations.)53
b(The)34 b(n)n(um-)1854 4138 y(b)r(er)28 b(of)f(VLAN)i(in)n(terfaces)d
(w)n(as)h(raised)f(to)i(20)e(\(from)1854 4238 y(2)i(in)f(GENERIC\).)
1854 4437 y(As)c(of)g(Octob)r(er)f(5,)h(the)g(expanded)g(ruleset)f(has)
g(1132)1854 4536 y(rules.)74 b(The)40 b(\\quic)n(k")e(k)n(eyw)n(ord)g
(is)i(used)g(in)h(most)1854 4636 y(places)25 b(to)g(reduce)g(the)h(n)n
(um)n(b)r(er)f(of)h(rules)f(that)g(m)n(ust)1854 4736
y(b)r(e)h(ev)-5 b(aluated)25 b(for)g(eac)n(h)f(pac)n(k)n(et,)h
(otherwise)f(the)i(en-)1854 4835 y(tire)j(ruleset)f(m)n(ust)h(b)r(e)h
(ev)-5 b(aluated)28 b(for)g(eac)n(h)g(pac)n(k)n(et.)1854
4935 y(The)40 b(rules)e(are)g(ordered)g(so)h(that)g(the)h(ones)f(I)g
(ex-)1854 5035 y(p)r(ect)h(the)f(most)g(matc)n(hes)f(from)h(are)f(to)n
(w)n(ards)f(the)1854 5134 y(top)e(of)h(the)f(\014le.)60
b(All)35 b(pass)f(rules)h(k)n(eep)g(state;)j(not)1854
5234 y(only)25 b(is)f(this)h(go)r(o)r(d)g(practice)f(for)g(securit)n(y)
-7 b(,)24 b(but)i(with)1854 5333 y(pf,)k(state)e(table)g(lo)r(okups)g
(are)f(usually)h(m)n(uc)n(h)g(faster)1854 5433 y(than)33
b(rule)g(ev)-5 b(aluation.)53 b(No)32 b(NA)-7 b(T)34
b(tak)n(es)e(place)h(on)p eop
%%Page: 11 11
11 10 bop 0 83 a Fo(this)28 b(mac)n(hine,)f(only)g(pac)n(k)n(et)g
(\014ltering.)0 282 y(On)20 b(the)g(external)f(in)n(terface,)i(there)f
(is)g(only)g(sp)r(o)r(o\014ng)0 382 y(protection)h(taking)g(place.)35
b(Incoming)21 b(pac)n(k)n(ets)g(with)0 482 y(a)30 b(source)f(IP)h(of)h
(the)g(in)n(ternal)f(net)n(w)n(orks,)f(outgoing)0 581
y(pac)n(k)n(ets)21 b(with)i(an)g(IP)f(whic)n(h)h(is)f(not)h(from)f(one)
g(of)h(the)0 681 y(in)n(ternal)28 b(net)n(w)n(orks,)g(and)h(all)f
(127.0.0.0/8)e(tra\016c)i(is)0 780 y(dropp)r(ed.)37 b(Normally)-7
b(,)27 b(one)h(w)n(ould)f(also)g(drop)g(pac)n(k-)0 880
y(ets)35 b(with)g(RF)n(C1918)e(\("priv)-5 b(ate)34 b(IP)g(space"\),)i
(ho)n(w-)0 980 y(ev)n(er)j(in)h(this)g(case,)i(it)e(is)g(handled)f
(externally)g(b)n(y)0 1079 y(the)31 b(BSWS)h(core)e(routers,)h(b)r
(ecause)f(there)h(is)g(v)-5 b(alid)0 1179 y(tra\016c)36
b(with)h(RF)n(C1918)e(IPs)h(from)g(other)g(in)n(ternal)0
1279 y(net)n(w)n(orks)26 b(crossing)g(this)i(\014rew)n(all.)0
1478 y(The)23 b(actual)f(\014ltering)h(p)r(olicies)g(are)f(enforced)g
(on)h(the)0 1577 y(inside)34 b(\(VLAN\))i(in)n(terfaces,)f(whic)n(h)f
(has)g(the)h(b)r(en-)0 1677 y(e\014t)h(that)f(pac)n(k)n(ets)f
(attempting)h(to)g(cross)f(b)r(et)n(w)n(een)0 1777 y(VLANs)43
b(encoun)n(ter)f(the)i(same)e(rules)g(as)g(pac)n(k)n(ets)0
1876 y(from)h(the)g(outside.)84 b(Ev)n(ery)41 b(pac)n(k)n(et)i(passing)
f(the)0 1976 y(\014rew)n(all)i(is)i(normalized)e(using)h(the)h(scrub)f
(direc-)0 2076 y(tiv)n(e.)36 b(Op)r(enBSD)25 b(3.2)f(will)h(supp)r(ort)
g(m)n(ultiple)h(scrub)0 2175 y(metho)r(ds)i(b)r(esides)g(the)g(classic)
e(bu\013ering)i(fragmen)n(t)0 2275 y(cac)n(he.)104 b(One)50
b(of)h(the)f(more)g(in)n(teresting)f(is)i(the)0 2374
y(crop)33 b(metho)r(d,)j(whic)n(h)d(almost)g(completely)h(a)n(v)n(oids)
0 2474 y(bu\013ering)27 b(fragmen)n(ts.)0 2673 y(The)32
b(results)f(ha)n(v)n(e)g(b)r(een)h(impressiv)n(e.)48
b(In)32 b(Septem-)0 2773 y(b)r(er,)j(2002,)e(the)h(state)f(table)h
(reac)n(hed)e(a)h(p)r(eak)g(size)0 2873 y(of)g(29,390,)g(with)h(an)f(a)
n(v)n(erage)e(size)i(of)g(11,000.)53 b(Up)0 2972 y(to)33
b(15,330)d(state)j(table)f(lo)r(okups)g(p)r(er)h(second)f(w)n(ere)0
3072 y(p)r(erformed)21 b(with)i(a)n(v)n(erage)c(of)i(5600.)33
b(State)22 b(table)g(in-)0 3171 y(serts)29 b(and)h(remo)n(v)-5
b(als)28 b(p)r(eak)n(ed)i(at)g(sligh)n(tly)f(o)n(v)n(er)f(200)0
3271 y(p)r(er)20 b(second)f(eac)n(h.)34 b(The)20 b(CPU)g(load)f(seldom)
h(exceeds)0 3371 y(10\045.)35 b(Compare)22 b(this)i(to)f(the)h(old)f
(IPFilter)h(solution)0 3470 y(running)i(on)f(the)h(same)g(hardw)n(are)e
(doing)h(m)n(uc)n(h)h(the)0 3570 y(same)21 b(task,)i(where)f(the)g(CPU)
g(w)n(as)f(maxed)h(out)g(with)0 3670 y(only)h(600)f(rules)h(and)g(a)g
(p)r(eak)g(of)h(15,000)d(pac)n(k)n(ets)h(p)r(er)0 3769
y(second.)51 b(pf)33 b(has)e(p)r(ermitted)i(considerable)e(gro)n(wth)0
3869 y(in)36 b(the)g(complexit)n(y)f(of)g(the)h(rule)g(sets)f(and)h
(tra\016c,)0 3968 y(and)24 b(as)f(y)n(ou)g(can)h(see,)g(still)h(lea)n
(v)n(es)d(BSWS)i(consider-)0 4068 y(able)e(ro)r(om)f(to)g(gro)n(w.)34
b(Since)22 b(this)g(\014rew)n(all)f(w)n(en)n(t)g(in)n(to)0
4168 y(op)r(eration)30 b(in)g(Marc)n(h,)h(2002,)e(there)i(hasn't)f(b)r
(een)h(a)0 4267 y(single)c(problem)g(with)h(its)g(hardw)n(are)e(or)g
(soft)n(w)n(are.)0 4709 y Fr(8)112 b(Conclusions)0 5035
y Fo(Running)33 b(Op)r(enBSD)g(serv)n(ers)d(under)j(high)f(load)g(is)0
5134 y(prett)n(y)25 b(safe)h(no)n(w)n(ada)n(ys.)33 b(W)-7
b(e)26 b(ha)n(v)n(e)f(sho)n(wn)g(that)h(the)0 5234 y(in)n(tro)r
(duction)38 b(of)g Fl(pool\(9\))d Fo(made)j(op)r(eration)f(w)n(a)n(y)0
5333 y(b)r(etter)c(with)h(regard)d(to)i(memory)g(usage)f(and)g(p)r(er-)
0 5433 y(formance.)1854 83 y(W)-7 b(e)32 b(ha)n(v)n(e)e(sho)n(wn)h(ho)n
(w)g(net)n(w)n(ork)e(tra\016c)i(in\015uences)1854 183
y(the)37 b(memory)e(usage)g(of)h(the)g(k)n(ernel)f(and)h(ho)n(w)f(the)
1854 282 y(pieces)28 b(are)e(related)h(together.)1854
482 y(The)42 b(pro)n(vided)f(kno)n(wledge)g(ab)r(out)h(monitoring)f(a)
1854 581 y(running)26 b(system)g(and)g(p)r(oten)n(tial)g(coun)n
(termeasures)1854 681 y(against)49 b(resource)f(exhaustions)h(should)g
(help)i(to)1854 780 y(deal)28 b(with)g(high-load)e(situations)h(b)r
(etter.)1854 1180 y Fr(9)112 b(Ac)m(kno)m(wledgemen)m(ts)1854
1464 y Fo(A)31 b(big)g(\\thank)f(y)n(ou")g(go)r(es)f(to)i(Nic)n(k)f
(Holland,)i(who)1854 1563 y(turned)19 b(our)g(crapp)n(y)e(english)i(in)
n(to)g(something)f(useful)1854 1663 y(and)31 b(pro)n(vided)e(a)h(lot)h
(of)f(input)h(on)f(ho)n(w)g(to)h(explain)1854 1763 y(this)d(di\016cult)
h(area)d(b)r(etter.)1854 1962 y(Thanks)48 b(also)f(to)h(Artur)f(Grab)r
(o)n(wski)g(for)g(imple-)1854 2061 y(men)n(ting)32 b
Fl(pool\(9\))d Fo(in)j(the)g(Op)r(enBSD)h(k)n(ernel)e(and)1854
2161 y(for)c(further)h(explanations)e(ab)r(out)i(KVM.)1854
2360 y(Sev)n(eral)20 b(pro)r(of-readers)e(help)r(ed)k(on)e(\014nding)h
(sp)r(elling)1854 2460 y(errors)32 b(and)h(inconsistencies)g(within)h
(the)g(pap)r(er,)h(a)1854 2560 y(sp)r(ecial)e(thanks)f(here)g(for)g
(Daniel)h(Lucq,)g(who)f(also)1854 2659 y(wrote)27 b(KVMsp)n(y)-7
b(.)1854 2858 y(And,)44 b(of)c(course,)j(thanks)c(to)h(the)h(Op)r
(enBSD)g(de-)1854 2958 y(v)n(elop)r(er)e(team)g(for)g(w)n(orking)e(on)i
(a)g(system)g(whic)n(h)1854 3058 y(pro)n(vides)32 b(already)f(sane)h
(defaults)h(for)f(op)r(erating)g(a)1854 3157 y(high-load)21
b(serv)n(er,)g(and,)i(not)f(to)g(forget,)g(a)g(v)n(ery)e(high)1854
3257 y(lev)n(el)27 b(of)h(securit)n(y)-7 b(.)1854 3657
y Fr(References)1854 3841 y Fd([Aca02])78 b(Can)32 b(E.)h(Acar.)54
b(Op)r(en)n(bsd)31 b(pf)h(state)g(view)n(er.)2180 3933
y(h)n(ttp://www.eee.metu.edu.tr/)2180 4024 y(~canacar/pftop/,)c(2002.)
1854 4133 y([Dij02])105 b(Willem)74 b(Dijkstra.)178 b(The)74
b(small)h(and)2180 4224 y(secure)149 b(activ)n(e)g(system)g(monitor.)
2180 4316 y(h)n(ttp://www.xs4all.nl/~wp)r(d/symon/,)2180
4407 y(2002.)1854 4516 y([McK96])44 b(Marshall)19 b(Kirk)e(\(et.)g
(al.\))h(McKusic)n(k.)j Fc(The)f(de-)2180 4608 y(sign)34
b(and)h(implementation)g(of)f(the)h(4.4BSD)2180 4699
y(op)l(er)l(ating)29 b(system)p Fd(.)36 b(Addison-W)-6
b(esley)g(,)24 b(1996.)1854 4808 y([Oet02])84 b(T)-6
b(obi)45 b(Oetik)n(er.)93 b(Round)45 b(robin)g(database.)2180
4899 y(h)n(ttp://p)r(eople.ee.ethz.c)n(h/)2180 4991 y(~o)r(etik)n(er/w)
n(ebto)r(ols/rrdto)r(ol/,)30 b(2002.)1854 5100 y([Op)r(e02])69
b(Op)r(enBSD.)114 b(h)n(ttp://www.op)r(en)n(bsd.org/,)2180
5191 y(2002.)1854 5300 y([Ste94])101 b(W.)19 b(Ric)n(hard)h(Stev)n
(ens.)k Fc(TCP/IP)d(Il)t(lustr)l(ate)l(d,)2180 5392 y(V)-6
b(ol.)26 b(2)p Fd(.)35 b(Addison-W)-6 b(esley)g(,)25
b(1994.)p eop
%%Page: 12 12
12 11 bop 0 83 a Fr(A)112 b(top)0 367 y Fd(This)26 b(mac)n(hine)g(is)g
(the)g(main)g(serv)n(er)f(of)i(sys\014v)n(e.com)f(Gm)n(bH,)f(sligh)n
(tly)h(tuned)f(it)h(is)g(really)g(idle.)0 610 y Fb(load)40
b(averages:)81 b(0.19,)e(0.12,)h(0.09)1374 b(14:19:57)0
701 y(68)40 b(processes:)80 b(1)40 b(running,)h(64)f(idle,)g(3)f
(zombie)0 793 y(CPU)h(states:)80 b(0.3\045)40 b(user,)80
b(0.9\045)40 b(nice,)79 b(0.3\045)41 b(system,)80 b(0.0\045)40
b(interrupt,)h(98.4\045)g(idle)0 884 y(Memory:)g(Real:)f(49M/80M)h
(act/tot)80 b(Free:)40 b(41M)80 b(Swap:)40 b(0K/256M)h(used/tot)78
1067 y(PID)f(USERNAME)h(PRI)f(NICE)80 b(SIZE)118 b(RES)40
b(STATE)h(WAIT)197 b(TIME)157 b(CPU)40 b(COMMAND)0 1158
y(15902)g(root)276 b(2)157 b(0)39 b(2308K)i(1832K)f(idle)80
b(select)f(19:39)h(0.00\045)40 b(isakmpd)0 1249 y(27679)g(pb)354
b(2)157 b(0)79 b(964K)40 b(1468K)g(sleep)h(select)119
b(7:00)79 b(0.00\045)40 b(screen-3.9.11)0 1341 y(19945)g(gowry)237
b(2)157 b(0)39 b(4644K)i(5096K)f(idle)80 b(select)119
b(4:30)79 b(0.00\045)40 b(screen-3.9.11)39 1432 y(3605)g(postfix)159
b(2)e(0)79 b(304K)g(736K)40 b(sleep)h(select)119 b(4:29)79
b(0.00\045)40 b(qmgr)0 1523 y(22360)g(root)237 b(18)157
b(0)79 b(640K)40 b(9944K)g(sleep)h(pause)158 b(2:53)79
b(0.00\045)40 b(ntpd)0 1615 y(11827)g(pb)354 b(2)157
b(0)79 b(516K)40 b(1312K)g(sleep)h(poll)197 b(2:18)79
b(0.00\045)40 b(stunnel)0 1706 y([..])0 2114 y Fr(B)112
b(ps)0 2398 y Fd(Same)26 b(mac)n(hine,)g(same)g(pro)r(cesses)i(rep)r
(orted)d(b)n(y)g Fb(ps)40 b(-axv)0 2641 y(USER)276 b(PID)39
b(\045CPU)i(\045MEM)118 b(VSZ)h(RSS)39 b(TT)79 b(STAT)h(STARTED)276
b(TIME)40 b(COMMAND)0 2732 y(root)197 b(22360)80 b(0.0)f(7.6)118
b(640)79 b(9944)40 b(??)79 b(Ss)197 b(8Aug02)158 b(2:48.24)41
b(ntpd)f(-c)g(/etc/ntp.conf)0 2824 y(gowry)158 b(19945)80
b(0.0)f(3.9)g(4644)g(5096)40 b(??)79 b(Ss)197 b(9Aug02)158
b(4:30.56)41 b(SCREEN)g(\(screen-3.9.11\))0 2915 y(root)197
b(15902)80 b(0.0)f(1.4)g(2308)g(1832)40 b(??)79 b(Is)158
b(31Jul02)119 b(19:39.33)41 b(isakmpd)0 3006 y(pb)275
b(27679)80 b(0.0)f(1.1)118 b(964)79 b(1468)40 b(??)79
b(Ss)158 b(13Jul02)g(6:59.75)41 b(SCREEN)g(\(screen-3.9.11\))0
3098 y(pb)275 b(11827)80 b(0.0)f(1.0)118 b(516)79 b(1312)40
b(??)79 b(Ss)158 b(13Jul02)g(2:15.55)41 b(stunnel)0 3189
y(postfix)119 b(3605)80 b(0.0)f(0.6)118 b(304)h(736)39
b(??)79 b(S)236 b(6Aug02)158 b(4:30.29)41 b(qmgr)f(-l)g(-t)g(fifo)g(-u)
0 3597 y Fr(C)112 b(vmstat)0 3881 y Fd(Curren)n(t)25
b(vmstat)h(output)f(of)h(the)f(same)i(mac)n(hine)f(\()p
Fb(vmstat)40 b(1)g(5)p Fd(\))39 4124 y Fb(procs)119 b(memory)315
b(page)786 b(disks)197 b(faults)g(cpu)39 4216 y(r)40
b(b)f(w)157 b(avm)h(fre)118 b(flt)79 b(re)g(pi)g(po)g(fr)g(sr)40
b(cd0)g(sd0)118 b(in)157 b(sy)118 b(cs)40 b(us)g(sy)g(id)39
4307 y(1)g(0)f(0)79 b(50324)g(41608)158 b(14)119 b(0)f(0)f(0)h(0)g(0)g
(0)g(1)79 b(234)g(7151)g(160)g(0)g(0)40 b(99)39 4398
y(0)g(0)f(0)79 b(50324)g(41608)158 b(10)119 b(0)f(0)f(0)h(0)g(0)g(0)g
(0)79 b(233)g(1602)g(165)g(0)g(0)40 b(100)39 4490 y(0)g(0)f(0)79
b(50324)g(41608)198 b(6)118 b(0)g(0)f(0)h(0)g(0)g(0)g(0)79
b(233)g(1589)g(165)g(0)g(1)40 b(99)0 4733 y Fd(If)22
b(the)g(mac)n(hine)g(w)n(ould)h(ha)n(v)n(e)e(disk)h(I/O)g(blo)r(c)n
(king)h(problems,)g(the)f(output)f(could)i(lo)r(ok)f(lik)n(e)h(this.)33
b(Note)22 b(the)g(idle)h(CPU,)0 4824 y(but)i(blo)r(c)n(k)n(ed)g(pro)r
(cesses)i(are)f(w)n(aiting)h(for)g(blo)r(c)n(ks)f(from)g(the)g(busy)e
(driv)n(e.)39 5068 y Fb(procs)119 b(memory)315 b(page)786
b(disks)197 b(faults)g(cpu)39 5159 y(r)40 b(b)f(w)157
b(avm)h(fre)118 b(flt)79 b(re)g(pi)g(po)g(fr)g(sr)40
b(cd0)g(sd0)118 b(in)157 b(sy)118 b(cs)40 b(us)g(sy)g(id)39
5250 y(1)g(2)f(0)79 b(50324)g(41608)158 b(14)119 b(0)f(0)f(0)h(0)g(0)g
(0)40 b(271)79 b(234)g(7151)g(160)g(1)g(3)40 b(96)39
5342 y(0)g(1)f(0)79 b(50324)g(41608)158 b(10)119 b(0)f(0)f(0)h(0)g(0)g
(0)40 b(312)79 b(233)g(1602)g(165)g(0)g(4)40 b(96)39
5433 y(0)g(1)f(0)79 b(50324)g(41608)198 b(6)118 b(0)g(0)f(0)h(0)g(0)g
(0)40 b(150)79 b(233)g(1589)g(165)g(0)g(2)40 b(98)p eop
%%Page: 13 13
13 12 bop 0 83 a Fd(W)-6 b(orst-case)30 b(scenario,)i(the)d(mac)n(hine)
h(do)r(es)g(hea)n(vy)f(paging,)i(th)n(us)e(o)n(v)n(erloading)h(the)f
(disk)h(subsystem.)45 b(Additionally)0 174 y(the)25 b(CPU)g(is)h(maxed)
e(out.)35 b(Pro)r(cesses)27 b(are)e(w)n(aiting,)i(in)n(terrupts)d
(cause)i(massiv)n(e)g(con)n(text-switc)n(hing.)34 b(The)26
b(v)l(alues)f(are)0 266 y(arbitrary)-6 b(.)39 535 y Fb(procs)119
b(memory)315 b(page)786 b(disks)197 b(faults)g(cpu)39
627 y(r)40 b(b)f(w)157 b(avm)h(fre)118 b(flt)79 b(re)g(pi)g(po)g(fr)g
(sr)40 b(cd0)g(sd0)118 b(in)157 b(sy)118 b(cs)40 b(us)g(sy)g(id)39
718 y(1)g(2)f(1)157 b(324)h(608)118 b(314)h(0)78 b(25)h(35)118
b(0)g(0)g(0)40 b(271)79 b(412)g(7151)40 b(1931)g(80)g(19)79
b(1)39 809 y(1)40 b(3)f(2)157 b(324)h(608)118 b(310)h(0)78
b(28)h(42)118 b(0)g(0)g(0)40 b(312)79 b(501)g(1602)40
b(1876)g(81)g(19)79 b(0)39 901 y(1)40 b(2)f(1)157 b(324)h(608)118
b(306)h(0)78 b(21)h(38)118 b(0)g(0)g(0)40 b(150)79 b(467)g(1589)40
b(1911)g(85)g(12)79 b(3)0 1170 y Fd(No)n(w)27 b(let's)h(ha)n(v)n(e)e(a)
h(lo)r(ok)g(at)g(the)f(p)r(o)r(ol)i(situation)g(of)f(a)g(\014rew)n
(all.)39 b(A)26 b(nice)h(example)g(that)f(the)h(p)r(o)r(ol)g(can)g(gro)
n(w)h(o)n(v)n(er)f(the)0 1262 y(initial)k(limit)g(\(Maxpg)g(512,)i(Hiw)
n(at)d(516\),)j(but)d(someho)n(w)h(KVM)f(is)h(lo)n(w,)h(since)f(a)g
(lot)g(of)g(requests)f(are)h(failing)h(\(F)-6 b(ail)0
1353 y(14725\).)36 b(The)26 b(k)n(ernel)g(should)f(b)r(e)h
(recon\014gured)f(with)h(NMBCLUSTERS)g Fa(>)f Fd(1024)i(\()p
Fb(vmstat)41 b(-m)e(|)h(grep)g(mclpl)p Fd(\).)0 1623
y Fb(Name)315 b(Size)40 b(Requests)h(Fail)f(Releases)h(Pgreq)f(Pgrel)h
(Npage)f(Hiwat)h(Minpg)f(Maxpg)g(Idle)0 1714 y(mclpl)276
b(2048)79 b(1758499)41 b(14725)f(1757480)120 b(518)196
b(2)118 b(516)h(516)196 b(4)118 b(512)158 b(4)0 2142
y Fr(D)112 b(netstat)0 2445 y Fd(All)26 b(pac)n(k)n(et)f(data)h(is)g
(getting)g(deliv)n(ered)g(to/from)h(the)e(sshd)h(fast)g(enough,)g(so)h
(no)e(queuing)g(o)r(ccurs.)0 2714 y Fb(Active)41 b(Internet)g
(connections)0 2806 y(Proto)f(Recv-Q)h(Send-Q)80 b(Local)40
b(Address)394 b(Foreign)41 b(Address)315 b(\(state\))0
2897 y(tcp)g(0)235 b(0)79 b(172.23.1.1.22)395 b(10.172.2.32.1156)278
b(ESTABLISHED)0 2988 y(tcp)315 b(0)235 b(0)79 b(172.23.1.1.22)395
b(172.23.1.3.39679)278 b(ESTABLISHED)0 3080 y(tcp)315
b(0)235 b(0)79 b(172.23.1.1.22)395 b(192.168.1.5.42456)239
b(ESTABLISHED)0 3349 y Fd(Someho)n(w)24 b(either)f(the)g(uplink)f(is)i
(saturated,)h(or)e(the)g(remote)h(clien)n(ts)g(are)g(not)f(retrieving)g
(data)h(fast)g(enough,)g(th)n(us)f(the)0 3441 y(Send-Q)h(is)i(gro)n
(wing.)0 3711 y Fb(Active)41 b(Internet)g(connections)0
3802 y(Proto)f(Recv-Q)h(Send-Q)80 b(Local)40 b(Address)394
b(Foreign)41 b(Address)315 b(\(state\))0 3893 y(tcp)g(0)117
b(5346)80 b(172.23.1.1.22)395 b(10.172.2.32.1156)278
b(ESTABLISHED)0 3985 y(tcp)315 b(0)235 b(0)79 b(172.23.1.1.22)395
b(172.23.1.3.39679)278 b(ESTABLISHED)0 4076 y(tcp)315
b(0)117 b(7159)80 b(172.23.1.1.22)395 b(192.168.1.5.42456)239
b(ESTABLISHED)0 4346 y Fd(F)-6 b(or)31 b(whatev)n(er)f(reason,)j(sshd)d
(is)h(not)g(pro)r(cessing)h(data)e(fast)i(enough.)48
b(Ma)n(yb)r(e)31 b(the)f(deciphering)h(needs)f(more)h(CPU)0
4437 y(then)25 b(a)n(v)l(ailable?)0 4707 y Fb(Active)41
b(Internet)g(connections)0 4798 y(Proto)f(Recv-Q)h(Send-Q)80
b(Local)40 b(Address)394 b(Foreign)41 b(Address)315 b(\(state\))0
4889 y(tcp)197 b(8811)236 b(0)79 b(172.23.1.1.22)395
b(10.172.2.32.1156)278 b(ESTABLISHED)0 4981 y(tcp)197
b(5820)236 b(0)79 b(172.23.1.1.22)395 b(172.23.1.3.39679)278
b(ESTABLISHED)0 5072 y(tcp)158 b(11631)236 b(0)79 b(172.23.1.1.22)395
b(192.168.1.5.42456)239 b(ESTABLISHED)0 5342 y Fd(Let's)34
b(ha)n(v)n(e)f(a)g(lo)r(ok)h(at)g(the)e(memory)i(usage)g(with)f
Fb(netstat)41 b(-m)p Fd(.)58 b(The)33 b(stac)n(k)h(has)f(to)h(k)n(eep)e
(85)i(clusters)g(in)f(KVM,)0 5433 y(someho)n(w)27 b(the)e(application)i
(is)f(pro)r(cessing)h(data)f(either)g(to)r(o)g(fast)h(\(Send-Q\))d(or)i
(to)r(o)g(slo)n(w)h(\(Recv-Q\).)p eop
%%Page: 14 14
14 13 bop 0 83 a Fb(384)40 b(mbufs)g(in)g(use:)314 174
y(100)g(mbufs)g(allocated)h(to)f(data)314 266 y(178)g(mbufs)g
(allocated)h(to)f(packet)h(headers)314 357 y(106)f(mbufs)g(allocated)h
(to)f(socket)h(names)f(and)g(addresses)0 448 y(85/1048)h(mapped)f
(pages)h(in)e(use)0 540 y(3144)h(Kbytes)h(allocated)g(to)f(network)h
(\(8\045)e(in)h(use\))0 631 y(0)f(requests)j(for)d(memory)i(denied)0
722 y(0)e(requests)j(for)d(memory)i(delayed)0 814 y(0)e(calls)i(to)f
(protocol)h(drain)f(routines)0 1236 y Fr(E)112 b(systat)0
1534 y Fd(Lo)r(oks)27 b(lik)n(e)f(the)g(mac)n(hine)g(is)h(doing)g
(nothing?)36 b(W)-6 b(rong,)26 b(lo)r(ok)h(at)g(the)e(in)n(terrupt)h
(coun)n(ting)g(for)h(dc0)f(and)g(dc2.)36 b(It's)27 b(the)0
1626 y(BSWS')f(\014rew)n(all)g(describ)r(ed)g(earlier.)157
1890 y Fb(1)39 b(users)158 b(Load)80 b(0.05)f(0.08)h(0.08)707
b(Sat)39 b(Oct)80 b(5)39 b(17:22:05)i(2002)392 2073 y(memory)g(totals)f
(\(in)g(KB\))550 b(PAGING)119 b(SWAPPING)198 b(Interrupts)353
2164 y(real)119 b(virtual)158 b(free)550 b(in)79 b(out)119
b(in)78 b(out)197 b(7903)40 b(total)0 2256 y(Active)80
b(91472)197 b(93712)119 b(10848)236 b(ops)1099 b(100)40
b(clock)0 2347 y(All)158 b(116216)g(118456)80 b(270684)236
b(pages)1178 b(pccom0)2667 2438 y(128)40 b(rtc)0 2530
y(Proc:r)80 b(d)f(s)f(w)275 b(Csw)79 b(Trp)g(Sys)g(Int)h(Sof)f(Flt)314
b(forks)158 b(3669)40 b(dc0)314 2621 y(1)79 b(9)470 b(6)158
b(5)118 b(21)39 b(7936)158 b(4)f(2)314 b(fkppw)354 b(dc1)2275
2712 y(fksvm)g(pciide0)118 2804 y(0.0\045)40 b(Sys)118
b(0.0\045)40 b(User)119 b(0.0\045)40 b(Nice)79 b(90.0\045)41
b(Idle)432 b(pwait)158 b(4006)40 b(dc2)0 2895 y(|)157
b(|)g(|)g(|)h(|)f(|)g(|)g(|)g(|)g(|)g(|)275 b(relck)2275
2986 y(rlkok)2275 3078 y(noram)0 3169 y(Namei)354 b(Sys-cache)159
b(Proc-cache)g(No-cache)355 b(ndcpy)157 3260 y(Calls)197
b(hits)158 b(\045)f(hits)197 b(\045)157 b(miss)119 b(\045)353
b(fltcp)314 3352 y(2)314 b(2)79 b(100)1373 b(zfod)2275
3443 y(cow)0 3534 y(Discs)80 b(wd0)1726 b(128)40 b(fmin)0
3626 y(seeks)1923 b(170)40 b(ftarg)0 3717 y(xfers)1884
b(8446)40 b(itarg)0 3808 y(Kbyte)1963 b(39)39 b(wired)78
3900 y(sec)2080 b(pdfre)2275 3991 y(pdscn)0 4414 y Fr(F)113
b(iostat)0 4712 y Fd(Medium,)26 b(but)f(constan)n(t,)h(tra\016c)g(on)g
(sd0.)34 b(In)25 b(fact)i(I)e(w)n(as)i(generating)g(tra\016c)f(with)f
Fb(dd\(1\))p Fd(.)235 4976 y Fb(tty)472 b(cd0)510 b(sd0)h(sd1)g(fd0)f
(cpu)39 5068 y(tin)40 b(tout)80 b(KB/t)40 b(t/s)g(MB/s)118
b(KB/t)40 b(t/s)g(MB/s)119 b(KB/t)40 b(t/s)g(MB/s)118
b(KB/t)41 b(t/s)e(MB/s)80 b(us)40 b(ni)f(sy)h(in)g(id)118
5159 y(0)78 b(540)i(0.00)118 b(0)40 b(0.00)118 b(0.50)40
b(2614)g(1.28)119 b(0.00)g(0)39 b(0.00)119 b(0.00)f(0)40
b(0.00)118 b(1)79 b(1)g(5)f(3)40 b(90)118 5250 y(0)78
b(179)i(0.00)118 b(0)40 b(0.00)118 b(0.50)40 b(2560)g(1.25)119
b(0.00)g(0)39 b(0.00)119 b(0.00)f(0)40 b(0.00)118 b(0)79
b(0)g(2)f(2)40 b(95)118 5342 y(0)78 b(344)i(0.00)118
b(0)40 b(0.00)118 b(0.50)40 b(2601)g(1.27)119 b(0.00)g(0)39
b(0.00)119 b(0.00)f(0)40 b(0.00)118 b(0)79 b(0)g(3)f(5)40
b(92)118 5433 y(0)78 b(181)i(0.00)118 b(0)40 b(0.00)118
b(0.50)40 b(2601)g(1.27)119 b(0.00)g(0)39 b(0.00)119
b(0.00)f(0)40 b(0.00)118 b(0)79 b(1)g(5)f(3)40 b(91)p
eop
%%Page: 15 15
15 14 bop 0 83 a Fr(G)112 b(pftop)0 370 y Fd(Easy)26
b(and)f(quic)n(k)g(o)n(v)n(erview)h(ab)r(out)g(curren)n(t)f(tra\016c)h
(\014ltering:)0 619 y Fb(pfTop:)41 b(Up)e(State)i(1-3/64,)f(View:)h
(default,)g(Order:)f(none)0 802 y(PR)118 b(DIR)40 b(SRC)707
b(DEST)668 b(STATE)118 b(AGE)h(EXP)79 b(PKTS)40 b(BYTES)0
893 y(icmp)g(Out)g(192.168.100.32:361)122 b(192.168.100.22:361)161
b(0:0)236 b(9)196 b(1)h(2)157 b(96)0 985 y(icmp)40 b(Out)g
(192.168.100.32:361)122 b(192.168.100.23:361)161 b(0:0)236
b(9)196 b(1)h(2)157 b(96)0 1076 y(tcp)79 b(In)g(192.168.100.7:1029)122
b(192.168.100.32:443)161 b(4:4)118 b(4165)40 b(86302)h(25871)f(9251K)0
1487 y Fr(H)112 b(KVMsp)m(y)0 1774 y Fd(The)27 b(full)h(output)e(w)n
(ould)h(b)r(e)g(to)r(o)g(long,)i(th)n(us)d(shortened)h(to)g(relev)l(an)
n(t)f(p)r(o)r(ols/maps.)40 b(Someho)n(w)28 b(this)f(mac)n(hine)g(is)g
(not)0 1865 y(really)f(exhausted,)g(ev)n(en)f(with)h(the)f(default)h
(settings.)0 2115 y Fb(_kmem_map)41 b(@)f(0xd0518cdc:)h(total)g(size)f
(=)f(33431552)i(bytes,)g([0xd0890000,)h(0xd2872000])0
2206 y(_kmem_map)f(@)f(0xd0518cdc:)h(103)f(entries,)h(actual)g(size)f
(=)g(2453504)g(bytes)h(\(7.34\045\))0 2298 y(_mb_map)g(@)e(0xd0890c00:)
j(total)e(size)h(=)e(4194304)i(bytes,)f([0xda63e000,)i(0xdaa3e000])0
2389 y(_mb_map)f(@)e(0xd0890c00:)j(5)d(entries,)j(actual)e(size)g(=)g
(118784)g(bytes)h(\(2.83\045\))0 2480 y(_socket_pool)h(@)d(0xd05424c8:)
j(currently)f(has)f(6)g(pages)g(\(24576)h(bytes\))0 2572
y(_socket_pool)h(@)d(0xd05424c8:)j(high)e(water)h(mark)f(of)f(12)h
(pages)h(\(49152)f(bytes\))0 2663 y(_nkmempages)i(@)d(0xd05029d4:)j
(8162)e(\(_nkmempages)i(*)d(PAGE_SIZE)j(=)d(33431552)i(bytes\))0
2754 y(_nmbclust)g(@)f(0xd04fb278:)h(2048)g(\(_nmbclust)g(*)f(MCLBYTES)
h(=)e(4194304)i(bytes\))0 3166 y Fr(I)112 b(c)m(hat4free.de)38
b(W)-9 b(ebserv)m(er)0 3452 y Fd(I'm)26 b(using)h(a)f(bit)g(more)h
(aggressiv)n(e)h(timeouts)f(on)f(this)g(mac)n(hine)h(to)f(lo)n(w)n(er)h
(the)f(n)n(um)n(b)r(er)f(of)j(concurren)n(t)d(connections.)0
3544 y(This)j(inlcudes)g(a)g(shortened)g(KeepAliv)n(eTimeout)g(to)g(10)
g(seconds)h(in)e(apac)n(he's)i(con\014g)f(and)f(the)h(follo)n(wing)i
(addition)0 3635 y(to)c Fb(/etc/sysctl.conf)p Fd(:)0
3826 y Fb(net.inet.tcp.keepinittime=10)0 3917 y
(net.inet.tcp.keepidle=30)0 4009 y(net.inet.tcp.keepintvl=30)0
4100 y(net.inet.tcp.rstppslimit=400)0 4191 y(net.inet.ip.redirect=0)0
4283 y(net.inet.ip.maxqueue=1000)0 4374 y(kern.somaxconn=256)0
4644 y Fd(The)h(timeouts)h(dep)r(end)e(hea)n(vily)h(on)h(y)n(our)e
(usage)i(pro\014le)g(and)f(need)g(to)g(b)r(e)g(tried.)39
b(The)28 b(ab)r(o)n(v)n(e)f(ones)h(w)n(ork)f(\014ne)g(here,)0
4723 y(and)e(should)h(\014t)f(for)i(most)f(w)n(ell)g(connected)g(w)n
(ebserv)n(ers.)0 4801 y(dmesg:)0 5039 y Fh(OpenBSD)37
b(3.1)f(\(windu\))i(#0:)e(Wed)g(Apr)g(17)g(20:10:40)i(CEST)e(2002)141
5118 y(root@ozzel:/usr/src/sys)q(/ar)q(ch/i)q(386)q(/com)q(pil)q(e/wi)q
(ndu)0 5196 y(cpu0:)h(AMD)f(Athlon)h(Model)g(4)e(\(Thunderbird\))k
(\("AuthenticAMD")h(686-class\))e(700)e(MHz)0 5275 y(cpu0:)h
(FPU,V86,DE,PSE,TSC,MSR,P)q(AE,M)q(CE,)q(CX8,)q(API)q(C,SY)q(S,M)q
(TRR,)q(PGE)q(,MCA)q(,CM)q(OV,P)q(AT,)q(PSE3)q(6,M)q(MX,F)q(XSR)0
5354 y(real)f(mem)72 b(=)35 b(536457216)j(\(523884K\))0
5433 y(avail)f(mem)f(=)f(494899200)j(\(483300K\))p eop
%%Page: 16 16
16 15 bop 0 83 a Fh(using)37 b(5689)f(buffers)h(containing)i(26927104)e
(bytes)g(\(26296K\))g(of)f(memory)0 162 y(mainbus0)i(\(root\))0
241 y(bios0)f(at)f(mainbus0:)h(AT/286+\(86\))i(BIOS,)e(date)f
(04/02/02,)i(BIOS32)f(rev.)f(0)g(@)f(0xfb210)0 320 y(apm0)h(at)g
(bios0:)h(Power)g(Management)h(spec)f(V1.2)0 399 y(apm0:)g(AC)f(on,)g
(battery)h(charge)g(unknown)0 477 y(pcibios0)h(at)d(bios0:)i(rev.)g
(2.1)f(@)g(0xf0000/0xb690)0 556 y(pcibios0:)i(PCI)e(IRQ)g(Routing)h
(Table)g(rev.)g(1.0)f(@)f(0xfdbd0/176)k(\(9)d(entries\))0
635 y(pcibios0:)i(PCI)e(Exclusive)i(IRQs:)f(11)0 714
y(pcibios0:)h(PCI)e(Interrupt)i(Router)f(at)f(000:07:0)h(\("VIA)g
(VT82C596A)h(PCI-ISA")f(rev)g(0x00\))0 793 y(pcibios0:)h(PCI)e(bus)g
(#1)g(is)g(the)g(last)g(bus)0 872 y(pci0)g(at)g(mainbus0)i(bus)e(0:)g
(configuration)j(mode)d(1)g(\(no)g(bios\))0 951 y(pchb0)h(at)f(pci0)g
(dev)g(0)g(function)h(0)f("VIA)g(VT8363)h(Host")g(rev)f(0x03)0
1029 y(ppb0)g(at)g(pci0)h(dev)f(1)f(function)j(0)e("VIA)g(VT8363)h
(PCI-AGP")h(rev)e(0x00)0 1108 y(pci1)g(at)g(ppb0)h(bus)f(1)0
1187 y(pcib0)h(at)f(pci0)g(dev)g(7)g(function)h(0)f("VIA)g(VT82C686)i
(PCI-ISA")f(rev)g(0x40)0 1266 y(pciide0)g(at)f(pci0)h(dev)f(7)f
(function)j(1)d("VIA)i(VT82C571)g(IDE")g(rev)f(0x06:)h(ATA100,)g
(channel)g(0)35 1345 y(\\configured)i(to)d(compatibility,)j(channel)e
(1)f(configured)i(to)e(compatibility)0 1424 y(wd0)g(at)g(pciide0)h
(channel)h(0)d(drive)i(0:)f(<IC35L060AVER07-0>)0 1503
y(wd0:)g(16-sector)i(PIO,)f(LBA,)f(58644MB,)i(16383)e(cyl,)h(16)f
(head,)g(63)g(sec,)h(120103200)h(sectors)0 1582 y(wd0\(pciide0:0:0\):)i
(using)d(PIO)f(mode)g(4,)g(Ultra-DMA)i(mode)f(5)0 1660
y(pchb1)g(at)f(pci0)g(dev)g(7)g(function)h(4)f("VIA)g(VT82C686)i
(SMBus")f(rev)f(0x40)0 1739 y(dc0)g(at)g(pci0)g(dev)h(8)e(function)j(0)
d("DEC)i(21142/3")g(rev)f(0x41:)h(irq)f(11)g(address)h
(00:00:cb:53:62:c3)0 1818 y(sqphy0)g(at)f(dc0)g(phy)g(17:)g(Seeq)h
(84220)f(10/100)h(media)g(interface,)h(rev.)f(0)0 1897
y(isa0)f(at)g(pcib0)0 1976 y(isadma0)h(at)f(isa0)0 2055
y(pckbc0)h(at)f(isa0)g(port)h(0x60/5)0 2134 y(pckbd0)g(at)f(pckbc0)h
(\(kbd)f(slot\))0 2213 y(pckbc0:)h(using)g(irq)f(1)g(for)g(kbd)g(slot)0
2291 y(wskbd0)h(at)f(pckbd0:)h(console)g(keyboard)0 2370
y(pcppi0)g(at)f(isa0)g(port)h(0x61)0 2449 y(sysbeep0)h(at)d(pcppi0)0
2528 y(npx0)h(at)g(isa0)h(port)f(0xf0/16:)i(using)e(exception)i(16)0
2607 y(pccom0)f(at)f(isa0)g(port)h(0x3f8/8)g(irq)f(4:)g(ns16550a,)i(16)
e(byte)g(fifo)0 2686 y(pccom0:)h(console)0 2765 y(pccom1)g(at)f(isa0)g
(port)h(0x2f8/8)g(irq)f(3:)g(ns16550a,)i(16)e(byte)g(fifo)0
2844 y(biomask)h(4000)g(netmask)g(4800)f(ttymask)i(4802)0
2922 y(pctr:)f(user-level)h(cycle)f(counter)g(enabled)0
3001 y(mtrr:)g(Pentium)g(Pro)f(MTRR)h(support)0 3080
y(dkcsum:)g(wd0)f(matched)i(BIOS)e(disk)h(80)0 3159 y(root)f(on)g(wd0a)
0 3238 y(rootdev=0x0)i(rrootdev=0x300)i(rawdev=0x302)0
3468 y Fo(Kernel)27 b(con\014g:)0 3698 y Fh(machine)37
b(i386)g(#)e(architecture,)k(used)e(by)f(config;)h(REQUIRED)0
3777 y(option)g(DIAGNOSTIC)h(#)e(internal)h(consistency)i(checks)0
3856 y(option)e(CRYPTO)g(#)f(Cryptographic)j(framework)0
3935 y(option)e(SYSVMSG)g(#)f(System)h(V-like)g(message)g(queues)0
4013 y(option)g(SYSVSEM)g(#)f(System)h(V-like)g(semaphores)0
4092 y(option)g(SYSVSHM)g(#)f(System)h(V-like)g(memory)g(sharing)0
4171 y(option)g(FFS)f(#)g(UFS)0 4250 y(option)h(FFS_SOFTUPDATES)j(#)35
b(Soft)i(updates)0 4329 y(option)g(QUOTA)g(#)e(UFS)h(quotas)0
4408 y(option)h(MFS)f(#)g(memory)h(file)f(system)0 4487
y(option)h(TCP_SACK)h(#)d(Selective)j(Acknowledgements)i(for)c(TCP)0
4565 y(option)h(NFSCLIENT)h(#)d(Network)j(File)e(System)h(client)0
4644 y(option)g(NFSSERVER)h(#)d(Network)j(File)e(System)h(server)0
4723 y(option)g(FIFO)f(#)g(FIFOs;)h(RECOMMENDED)0 4802
y(option)g(KERNFS)g(#)f(/kern)0 4881 y(option)h(NULLFS)g(#)f(loopback)h
(file)g(system)0 4960 y(option)g(UMAPFS)g(#)f(NULLFS)h(+)e(uid)h(and)g
(gid)h(remapping)0 5039 y(option)g(INET)f(#)g(IP)g(+)f(ICMP)i(+)e(TCP)i
(+)e(UDP)0 5118 y(option)i(INET6)g(#)e(IPv6)i(\(needs)g(INET\))0
5196 y(option)g(PULLDOWN_TEST)i(#)d(use)g(m_pulldown)i(for)e(IPv6)g
(packet)h(parsing)0 5275 y(pseudo-device)i(pf)d(1)f(#)h(packet)h
(filter)0 5354 y(pseudo-device)i(pflog)e(1)e(#)h(pf)g(log)g(if)0
5433 y(pseudo-device)j(loop)d(2)g(#)g(network)h(loopback)p
eop
%%Page: 17 17
17 16 bop 0 83 a Fh(pseudo-device)39 b(bpfilter)f(8)d(#)h(packet)h
(filter)0 162 y(pseudo-device)i(vlan)72 b(2)35 b(#)h(IEEE)g(802.1Q)h
(VLAN)0 241 y(pseudo-device)i(pty)d(64)g(#)g(pseudo-terminals)0
320 y(pseudo-device)j(tb)d(1)f(#)h(tablet)h(line)f(discipline)0
399 y(pseudo-device)j(vnd)d(4)g(#)f(paging)i(to)f(files)0
477 y(#pseudo-device)j(ccd)d(4)g(#)g(concatenated)i(disk)f(devices)0
556 y(pseudo-device)i(ksyms)e(1)e(#)h(kernel)h(symbols)g(device)0
714 y(option)g(BOOT_CONFIG)h(#)e(add)g(support)h(for)g(boot)f(-c)0
793 y(option)h(I686_CPU)0 872 y(option)g(USER_PCICONF)i(#)c(user-space)
j(PCI)f(configuration)0 951 y(option)g(DUMMY_NOPS)h(#)e(speed)g(hack;)h
(recommended)0 1029 y(option)g(COMPAT_LINUX)i(#)c(binary)i
(compatibility)i(with)e(Linux)0 1108 y(option)g(COMPAT_BSDOS)i(#)c
(binary)i(compatibility)i(with)e(BSD/OS)0 1266 y(option)72
b(NMBCLUSTERS=8192)0 1345 y(option)g(NKMEMPAGES=16384)0
1503 y(maxusers)38 b(64)d(#)h(estimated)i(number)f(of)f(users)0
1582 y(config)h(bsd)f(swap)h(generic)0 1739 y(mainbus0)h(at)d(root)0
1818 y(bios0)i(at)f(mainbus0)0 1897 y(apm0)g(at)g(bios0)h(flags)g
(0x0000)g(#)e(flags)i(0x0101)g(to)f(force)h(protocol)g(version)g(1.1)0
1976 y(pcibios0)h(at)d(bios0)i(flags)g(0x0000)g(#)e(use)i(0x30)f(for)g
(a)g(total)g(verbose)0 2055 y(isa0)g(at)g(mainbus0)0
2134 y(isa0)g(at)g(pcib?)0 2213 y(pci*)g(at)g(mainbus0)i(bus)e(?)0
2291 y(option)h(PCIVERBOSE)0 2370 y(pchb*)g(at)f(pci?)g(dev)g(?)g
(function)h(?)f(#)f(PCI-Host)j(bridges)0 2449 y(ppb*)e(at)g(pci?)h(dev)
f(?)f(function)j(?)e(#)f(PCI-PCI)i(bridges)0 2528 y(pci*)f(at)g(ppb?)h
(bus)f(?)0 2607 y(pci*)g(at)g(pchb?)h(bus)f(?)0 2686
y(pcib*)h(at)f(pci?)g(dev)g(?)g(function)h(?)f(#)f(PCI-ISA)j(bridge)0
2765 y(npx0)e(at)g(isa?)h(port)f(0xf0)h(irq)f(13)g(#)f(math)i
(coprocessor)0 2844 y(isadma0)g(at)f(isa?)0 2922 y(isapnp0)h(at)f(isa?)
0 3001 y(option)h(WSDISPLAY_COMPAT_USL)k(#)36 b(VT)f(handling)0
3080 y(option)i(WSDISPLAY_COMPAT_RAWKBD)42 b(#)35 b(can)i(get)f(raw)g
(scancodes)0 3159 y(option)h(WSDISPLAY_DEFAULTSCREEN)q(S=6)0
3238 y(option)g(WSDISPLAY_COMPAT_PCVT)k(#)36 b(emulate)h(some)g(ioctls)
0 3317 y(pckbc0)g(at)f(isa?)g(#)g(PC)g(keyboard)h(controller)0
3396 y(pckbd*)g(at)f(pckbc?)h(#)e(PC)h(keyboard)0 3474
y(vga*)g(at)g(pci?)h(dev)f(?)f(function)j(?)0 3553 y(wsdisplay*)g(at)e
(vga?)g(console)i(?)0 3632 y(wskbd*)f(at)f(pckbd?)h(console)g(?)0
3711 y(pcppi0)g(at)f(isa?)0 3790 y(sysbeep0)i(at)d(pcppi?)0
3869 y(pccom0)i(at)f(isa?)g(port)h(0x3f8)f(irq)h(4)e(#)h(standard)h(PC)
f(serial)h(ports)0 3948 y(pccom1)g(at)f(isa?)g(port)h(0x2f8)f(irq)h(3)0
4027 y(pciide*)g(at)f(pci)g(?)g(dev)g(?)g(function)h(?)f(flags)g
(0x0000)0 4105 y(wd*)g(at)g(pciide?)h(channel)h(?)d(drive)i(?)e(flags)i
(0x0000)0 4184 y(dc*)f(at)g(pci?)g(dev)h(?)e(function)j(?)d(#)h(21143,)
h("tulip")g(clone)g(ethernet)0 4263 y(sqphy*)g(at)f(mii?)g(phy)g(?)g(#)
g(Seeq)g(8x220)h(PHYs)0 4342 y(pseudo-device)i(pctr)d(1)0
4421 y(pseudo-device)j(mtrr)d(1)g(#)g(Memory)h(range)f(attributes)i
(control)0 4500 y(pseudo-device)h(sequencer)f(1)0 4579
y(pseudo-device)h(wsmux)e(2)0 4658 y(pseudo-device)i(crypto)e(1)p
eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF