[pypy-svn] r79257 - pypy/extradoc/talk/pepm2011

cfbolz at codespeak.net cfbolz at codespeak.net
Thu Nov 18 16:09:35 CET 2010


Author: cfbolz
Date: Thu Nov 18 16:09:33 2010
New Revision: 79257

Added:
   pypy/extradoc/talk/pepm2011/paper.pdf   (contents, props changed)
   pypy/extradoc/talk/pepm2011/paper.ps
Log:
if everything goes right, I will use those as final versions


Added: pypy/extradoc/talk/pepm2011/paper.pdf
==============================================================================
Binary file. No diff available.

Added: pypy/extradoc/talk/pepm2011/paper.ps
==============================================================================
--- (empty file)
+++ pypy/extradoc/talk/pepm2011/paper.ps	Thu Nov 18 16:09:33 2010
@@ -0,0 +1,9567 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.98 Copyright 2009 Radical Eye Software
+%%Title: paper.dvi
+%%CreationDate: Thu Nov 18 16:06:27 2010
+%%Pages: 10
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%DocumentFonts: Times-Bold Times-Roman CMMI8 CMMI6 SFSS0900
+%%+ Times-BoldItalic Times-Italic CMSY7 BeraSansMono-Roman
+%%+ BeraSansMono-Bold CMMI9 CMR6 CMSY8 BeraSansMono-Oblique CMMI7 CMR5
+%%+ CMR9 CMSY9 CMTT9 CMEX9 EUFM10 CMSY6 CMSY5
+%%DocumentPaperSizes: Letter
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -P pdf -t letter -o paper.ps paper.dvi
+%DVIPSParameters: dpi=8000
+%DVIPSSource:  TeX output 2010.11.18:1606
+%%BeginProcSet: tex.pro 0 0
+%!
+/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/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]{Ci}imagemask
+restore}B/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: alt-rule.pro 0 0
+%!
+% Patch by TVZ
+% Makes dvips files draw rules with stroke rather than fill.
+% Makes narrow rules more predictable at low resolutions
+% after distilling to PDF.
+% May have unknown consequences for very thick rules.
+% Tested only with dvips 5.85(k).
+TeXDict begin
+/QV {
+  gsave newpath /ruleY X /ruleX X
+  Rx Ry gt
+  { ruleX ruleY Ry 2 div sub moveto Rx 0 rlineto Ry }
+  { ruleX Rx 2 div add ruleY moveto 0 Ry neg rlineto Rx }
+  ifelse
+  setlinewidth 0 setlinecap stroke grestore
+} bind def
+end
+
+%%EndProcSet
+%%BeginProcSet: 8r.enc 0 0
+% File 8r.enc  TeX Base 1 Encoding  Revision 2.0  2002-10-30
+%
+% @@psencodingfile@{
+%   author    = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry,
+%                W. Schmidt, P. Lehman",
+%   version   = "2.0",
+%   date      = "27nov06",
+%   filename  = "8r.enc",
+%   email     = "tex-fonts@@tug.org",
+%   docstring = "This is the encoding vector for Type1 and TrueType
+%                fonts to be used with TeX.  This file is part of the
+%                PSNFSS bundle, version 9"
+% @}
+% 
+% The idea is to have all the characters normally included in Type 1 fonts
+% available for typesetting. This is effectively the characters in Adobe
+% Standard encoding, ISO Latin 1, Windows ANSI including the euro symbol,
+% MacRoman, and some extra characters from Lucida.
+% 
+% Character code assignments were made as follows:
+% 
+% (1) the Windows ANSI characters are almost all in their Windows ANSI
+% positions, because some Windows users cannot easily reencode the
+% fonts, and it makes no difference on other systems. The only Windows
+% ANSI characters not available are those that make no sense for
+% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
+% (173). quotesingle and grave are moved just because it's such an
+% irritation not having them in TeX positions.
+% 
+% (2) Remaining characters are assigned arbitrarily to the lower part
+% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
+% 
+% (3) Y&Y Lucida Bright includes some extra text characters; in the
+% hopes that other PostScript fonts, perhaps created for public
+% consumption, will include them, they are included starting at 0x12.
+% These are /dotlessj /ff /ffi /ffl.
+% 
+% (4) hyphen appears twice for compatibility with both ASCII and Windows.
+%
+% (5) /Euro was assigned to 128, as in Windows ANSI
+%
+% (6) Missing characters from MacRoman encoding incorporated as follows:
+%
+%     PostScript      MacRoman        TeXBase1
+%     --------------  --------------  --------------
+%     /notequal       173             0x16
+%     /infinity       176             0x17
+%     /lessequal      178             0x18
+%     /greaterequal   179             0x19
+%     /partialdiff    182             0x1A
+%     /summation      183             0x1B
+%     /product        184             0x1C
+%     /pi             185             0x1D
+%     /integral       186             0x81
+%     /Omega          189             0x8D
+%     /radical        195             0x8E
+%     /approxequal    197             0x8F
+%     /Delta          198             0x9D
+%     /lozenge        215             0x9E
+%
+/TeXBase1Encoding [
+% 0x00
+ /.notdef /dotaccent /fi /fl
+ /fraction /hungarumlaut /Lslash /lslash
+ /ogonek /ring /.notdef /breve
+ /minus /.notdef /Zcaron /zcaron
+% 0x10
+ /caron /dotlessi /dotlessj /ff
+ /ffi /ffl /notequal /infinity
+ /lessequal /greaterequal /partialdiff /summation
+ /product /pi /grave /quotesingle
+% 0x20
+ /space /exclam /quotedbl /numbersign
+ /dollar /percent /ampersand /quoteright
+ /parenleft /parenright /asterisk /plus
+ /comma /hyphen /period /slash
+% 0x30
+ /zero /one /two /three
+ /four /five /six /seven
+ /eight /nine /colon /semicolon
+ /less /equal /greater /question
+% 0x40
+ /at /A /B /C
+ /D /E /F /G
+ /H /I /J /K
+ /L /M /N /O
+% 0x50
+ /P /Q /R /S
+ /T /U /V /W
+ /X /Y /Z /bracketleft
+ /backslash /bracketright /asciicircum /underscore
+% 0x60
+ /quoteleft /a /b /c
+ /d /e /f /g
+ /h /i /j /k
+ /l /m /n /o
+% 0x70
+ /p /q /r /s
+ /t /u /v /w
+ /x /y /z /braceleft
+ /bar /braceright /asciitilde /.notdef
+% 0x80
+ /Euro /integral /quotesinglbase /florin
+ /quotedblbase /ellipsis /dagger /daggerdbl
+ /circumflex /perthousand /Scaron /guilsinglleft
+ /OE /Omega /radical /approxequal
+% 0x90
+ /.notdef /.notdef /.notdef /quotedblleft
+ /quotedblright /bullet /endash /emdash
+ /tilde /trademark /scaron /guilsinglright
+ /oe /Delta /lozenge /Ydieresis
+% 0xA0
+ /.notdef /exclamdown /cent /sterling
+ /currency /yen /brokenbar /section
+ /dieresis /copyright /ordfeminine /guillemotleft
+ /logicalnot /hyphen /registered /macron
+% 0xB0
+ /degree /plusminus /twosuperior /threesuperior
+ /acute /mu /paragraph /periodcentered
+ /cedilla /onesuperior /ordmasculine /guillemotright
+ /onequarter /onehalf /threequarters /questiondown
+% 0xC0
+ /Agrave /Aacute /Acircumflex /Atilde
+ /Adieresis /Aring /AE /Ccedilla
+ /Egrave /Eacute /Ecircumflex /Edieresis
+ /Igrave /Iacute /Icircumflex /Idieresis
+% 0xD0
+ /Eth /Ntilde /Ograve /Oacute
+ /Ocircumflex /Otilde /Odieresis /multiply
+ /Oslash /Ugrave /Uacute /Ucircumflex
+ /Udieresis /Yacute /Thorn /germandbls
+% 0xE0
+ /agrave /aacute /acircumflex /atilde
+ /adieresis /aring /ae /ccedilla
+ /egrave /eacute /ecircumflex /edieresis
+ /igrave /iacute /icircumflex /idieresis
+% 0xF0
+ /eth /ntilde /ograve /oacute
+ /ocircumflex /otilde /odieresis /divide
+ /oslash /ugrave /uacute /ucircumflex
+ /udieresis /yacute /thorn /ydieresis
+] def
+
+
+%%EndProcSet
+%%BeginProcSet: cm-super-t1.enc 0 0
+% This file is generated from `T1uni.map' and `glyphlist.txt', `gl-other.txt'
+%
+% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ;
+% LIGKERN quoteleft quoteleft =: quotedblleft ;
+% LIGKERN quoteright quoteright =: quotedblright ;
+% LIGKERN comma comma =: quotedblbase ; less less =: guillemotleft ;
+% LIGKERN greater greater =: guillemotright ;
+% LIGKERN f f =: ff ; f i =: fi ; f l =: fl ; ff i =: ffi ; ff l =: ffl ;
+%
+% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ;
+% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ;
+% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ;
+% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ;
+% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ;
+% LIGKERN nine {} * ; * {} nine ;
+%
+/T1Encoding [
+% 0x00
+/grave
+/acute
+/circumflex
+/tilde
+/dieresis
+/hungarumlaut
+/ring
+/caron
+/breve
+/macron
+/dotaccent
+/cedilla
+/ogonek
+/quotesinglbase
+/guilsinglleft
+/guilsinglright
+% 0x10
+/quotedblleft
+/quotedblright
+/quotedblbase
+/guillemotleft
+/guillemotright
+/endash
+/emdash
+/afii61664
+/perthousandzero % PERTHOUSAND ZERO
+/dotlessi
+/dotlessj
+/ff
+/fi
+/fl
+/ffi
+/ffl
+% 0x20
+/uni2423
+/exclam
+/quotedbl
+/numbersign
+/dollar
+/percent
+/ampersand
+/quoteright
+/parenleft
+/parenright
+/asterisk
+/plus
+/comma
+/hyphen
+/period
+/slash
+% 0x30
+/zero
+/one
+/two
+/three
+/four
+/five
+/six
+/seven
+/eight
+/nine
+/colon
+/semicolon
+/less
+/equal
+/greater
+/question
+% 0x40
+/at
+/A
+/B
+/C
+/D
+/E
+/F
+/G
+/H
+/I
+/J
+/K
+/L
+/M
+/N
+/O
+% 0x50
+/P
+/Q
+/R
+/S
+/T
+/U
+/V
+/W
+/X
+/Y
+/Z
+/bracketleft
+/backslash
+/bracketright
+/asciicircum
+/underscore
+% 0x60
+/quoteleft
+/a
+/b
+/c
+/d
+/e
+/f
+/g
+/h
+/i
+/j
+/k
+/l
+/m
+/n
+/o
+% 0x70
+/p
+/q
+/r
+/s
+/t
+/u
+/v
+/w
+/x
+/y
+/z
+/braceleft
+/bar
+/braceright
+/asciitilde
+/hyphen.alt % HANGING HYPHEN
+% 0x80
+/Abreve
+/Aogonek
+/Cacute
+/Ccaron
+/Dcaron
+/Ecaron
+/Eogonek
+/Gbreve
+/Lacute
+/Lcaron
+/Lslash
+/Nacute
+/Ncaron
+/Eng
+/Ohungarumlaut
+/Racute
+% 0x90
+/Rcaron
+/Sacute
+/Scaron
+/Scedilla
+/Tcaron
+/Tcommaaccent
+/Uhungarumlaut
+/Uring
+/Ydieresis
+/Zacute
+/Zcaron
+/Zdotaccent
+/IJ
+/Idotaccent
+/dcroat
+/section
+% 0xA0
+/abreve
+/aogonek
+/cacute
+/ccaron
+/dcaron
+/ecaron
+/eogonek
+/gbreve
+/lacute
+/lcaron
+/lslash
+/nacute
+/ncaron
+/eng
+/ohungarumlaut
+/racute
+% 0xB0
+/rcaron
+/sacute
+/scaron
+/scedilla
+/tcaron
+/tcommaaccent
+/uhungarumlaut
+/uring
+/ydieresis
+/zacute
+/zcaron
+/zdotaccent
+/ij
+/exclamdown
+/questiondown
+/sterling
+% 0xC0
+/Agrave
+/Aacute
+/Acircumflex
+/Atilde
+/Adieresis
+/Aring
+/AE
+/Ccedilla
+/Egrave
+/Eacute
+/Ecircumflex
+/Edieresis
+/Igrave
+/Iacute
+/Icircumflex
+/Idieresis
+% 0xD0
+/Eth
+/Ntilde
+/Ograve
+/Oacute
+/Ocircumflex
+/Otilde
+/Odieresis
+/OE
+/Oslash
+/Ugrave
+/Uacute
+/Ucircumflex
+/Udieresis
+/Yacute
+/Thorn
+/SS % Germandbls
+% 0xE0
+/agrave
+/aacute
+/acircumflex
+/atilde
+/adieresis
+/aring
+/ae
+/ccedilla
+/egrave
+/eacute
+/ecircumflex
+/edieresis
+/igrave
+/iacute
+/icircumflex
+/idieresis
+% 0xF0
+/eth
+/ntilde
+/ograve
+/oacute
+/ocircumflex
+/otilde
+/odieresis
+/oe
+/oslash
+/ugrave
+/uacute
+/ucircumflex
+/udieresis
+/yacute
+/thorn
+/germandbls % or /germandbls.alt
+] def
+
+%%EndProcSet
+%%BeginProcSet: texps.pro 0 0
+%!
+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]FontType 0
+ne{/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}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[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
+%%BeginProcSet: special.pro 0 0
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
+ at MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
+newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
+closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
+/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
+currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
+N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
+neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
+rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
+scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
+lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
+ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
+/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
+pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
+restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
+/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
+setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
+moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
+matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
+savematrix setmatrix}N end
+
+%%EndProcSet
+%%BeginProcSet: color.pro 0 0
+%!
+TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
+setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
+}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def
+/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{
+setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{
+/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch
+known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
+/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC
+/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0
+setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0
+setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61
+0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC
+/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0
+setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87
+0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{
+0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{
+0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC
+/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0
+setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0
+setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90
+0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC
+/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0
+setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0
+0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{
+0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{
+0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC
+/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0
+setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC
+/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0
+0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1
+0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11
+0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0
+setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0
+0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC
+/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0
+setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0
+0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0
+1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC
+/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0
+setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{
+0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor}
+DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70
+setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0
+setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1
+setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end
+
+%%EndProcSet
+%%BeginFont: CMSY5
+%!PS-AdobeFont-1.0: CMSY5 003.002
+%%Title: CMSY5
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY5.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSY5 known{/CMSY5 findfont dup/UniqueID known{dup
+/UniqueID get 5096646 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSY5 def
+/FontBBox {21 -944 1448 791 }readonly def
+/UniqueID 5096646 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY5.) readonly def
+/FullName (CMSY5) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 3 /asteriskmath put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
+7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
+DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
+511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
+1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
+028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
+1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A4D77D0DAC26A1FA54
+D2471EE9BE33D2E87853491D634A3F05B7672519E09291AC2D08D95BFB80CABC
+FA89042E94FED8DC9929ECEFAF741D273687B2127F5B80ED7D16F146894841D5
+1A80D8085E27114AC35CD5E578760D8982CF4D8587FD3385FE50E21A253A37E2
+AB628DF3500FD2C21BCCBC8C0B6AD3AE21DE63AE6586DB06B3FB1966625EBF52
+90FEBA873F819AB480FF994D80C01DE1E2F28C665E74FACFF98B2972CCCAD279
+96F2EFF1113CDA922985E095249765989A4C6A92A76340DCFA07AFF34AC5E177
+09B739A72D0D1EAE1A6164F3AA0DF1651EFED335B68C8465E1A61025235D4A5A
+C3661B9C0456C35C770242149B3B98A29784BF71030C7DBB2C13958E5CC263AE
+FEAEB9FBA84E06D772E94A494B60E32AB8FF862E57175DB17F6162DFFED60EF2
+D46FB78237E778C7321ED79FAC137945A46B2D90B778DA46308899577BC7844E
+3E09303AB2DD1F64D58756DAD62ADE22C62DE6C9BDA77CB12B1FCE3374CFA442
+E0CABC7C9AE699CD955077A7268FA0FD3FF5EEDE605990F0DF0078799F5CED44
+6ABDB2E7D9214BECB8B2CBCF328F7F5B8F346B55C9BA5C785A252DA59602B6DF
+186D23D5D90556EB52D7C0B44E4A9A189C180FA213E12E9838F0B2902779E289
+3E2B7DF45A01F36D88C9CB814AE5D41064030D37393DDD7D5974C1A27EBEC064
+B0403898996140AB14E6EF1B48D555A1C4DE29AD0C5D284988B92917442D2C61
+3B15E55CD91837B0496FEBB51486CEA7DFD9787AEB484BE887111903124340C0
+EB034A75292E59CC038E75E1DDB0027407492EEF92D70E0303BD7B2703E131FE
+BA91B289003B7E5BF85D2E5E130CB37949AEE51EA57FD424402B0BEEDEDEB5C3
+E23643F3100312F94C157C98939EA2312B11DE0A683D4018FFBA2864626C9449
+0D656EB0C79246A7F5ACDF442A55C9188D8F3FA64A9B6BFACD8F81D7546E0CD4
+3C5CC653CE9514306439AA2BD2FF2B965EA69A30331E8D65056D919476867463
+97DAFADD16BF9366E95C7C4276093B639541F7AFC9AF745260685D84DD3095D4
+1B925540372ABFB68CEF211D65756FE0E99733B5DB40D5A42016E8715208D4B0
+7A120EEB34147BD179FAFA94D0880121D1C6B27F94965ECC1A93D1B73AC1B3B7
+191B7B3CD4F2E0E52A3893255C4B3F1A70A0ED36DAD262538E02E8A227F6D6A1
+8A047A91ED6409F1E0D9B40698C817918AA47B95A082E3394AC42DE93BF9CB28
+68E63F3363FDCDB014E89990C50210750E8442D9555B0A796B243AB03190B2BD
+57C39F233318B6474F1B3CCE31C21BEF68FF5E3F866789041910B1B11ACEB75F
+146BB1A162AEFB268700C2DFBD9752BCF6F136ACAE815C0AA4147AA2CE61D282
+1BA716B693E2F713D0653B17C9381DA86E1CFCDD1B1FB9A72ABDA1AB2BCAD30E
+A4EAB601BE3F8EB95B32DCF5DD114683AA64E14F9A958D16CC6DAC7DC3ED651D
+603959B0265FD36F8DA41F3173A708D88C73EEA1533CE48C2AB26B4DB7CFA662
+A8A463CC178C31D342EF907B3B44751859F2BD510F1CA93D61AD39E8E5D7785D
+D465C47F3EDFAC22DC2B5DD93B2F752EB5482E138A0A1E5CD62747E0F524E29C
+A56E58A6BA543CB3AE051F4D90891B65712B63DB197E60275EAF5975007D09B7
+95F916615F97C50D8FDCFB67F1B677DC5139E6F46ABA079AC552F27F507CAE8E
+E5C04D31ECDD6CF5E8A447846375C1748651245EB9C780D87FFF162AEBCC9E0B
+155B318CBF420DF0CFBAA5669C2DBC81B55B5042514B05B7B82FCC827E21462B
+BC8F8FA96E2CC4441E07E0901EA72495013400453E49B7D243FEF528E4078AB6
+49277EE77C81B9167D2EE1961AE265A8C01F7562ECDC47D9FEC391097474EF8E
+54A5A7FE6C98A81ED29D42A3D54326219F638C92AF8A087607CA2A2A80CB1183
+8571CD40199FBDB9D70AD83979C739F533359FB2DF0AC4AE3A0E9DFE735ADE9D
+6E29B3F6DB9A5B11418E9C860EFDBCB0E49BB900BBCC85860100F1FFA5AC07B5
+14F37C5AE5E1A35168BC48BA7012A297C7771789302AF44765A6DBCFDD418172
+62DF3A4785385CC9D055A9B4FFF373041D9F5E9DA83BC1C5F3265E49BA624B82
+F15BC17B135D8723324865A9CCDD2EF3A0F64C17914F9B238C946FBCABD92B30
+AF90191996ABF2E4972AA9D0EF7B64AD0126D07714D4059CE032905BDF877D7C
+3440C374D7B5D0073E13ECDF3DEF2938EAC1908CC60D0E5EF5F52AE8A1B0BD34
+8A454CDA66E7340783A7152CCD74EAAD4112C7D70F3C867E140988BB610CCA20
+F1BF5E3DA8097509CAB419E01CA47D449C50EB8FC6DBB75AE2C5312BBCC5CA91
+86B221536517CAA6870429B65069FE3CBF3FFFB5631B57597E5C0C3E39199FF6
+4DC35B155A759CBFAA96409BAFC7EDFF03D2671F0396641446605843CA4AA36A
+15070DE52DDBFF487C5398CF7604DE843F32CAB26A96F8A9DCD03F3DCAA57E47
+6F0D36CDA34B96B7F4986275D79A1BC1954D2BC0BE1509709E40FF23B84F8D65
+3DE1D1D8A2AD94AE3DE202D62993EC4BC5AF66CE512EFFE7CF39028BCEC1667D
+8782111D9D503BFA45E4960E6197D8CB5697B1662BD2D991532074AF5491DDC3
+2EC52B4E5AF9B2DAA5D5E4CB644BED25DACC3F445E4C7D58A1E9737F4EC04A79
+238E3578311D88EE6D067725C580A146FF150871FAB2B366B5AFE5CE3B386EF2
+EFB540348505A1749BB34586851FB2FEDA92ECC395B618911E1D00B427251B05
+15B9E42AC1F0F239827B938EAB8CD20FF9705F4D7FB5F5F911CED9EE8FDABE8B
+3C3442DC3B716C3686E1B0573EAE3905C3964ACB336FA3C38B17F229EA10F036
+ADDE7FA5CFC01FAAD33F75A125F52AD395C7DBD3AB6F2321D7B5B55F0ED237CC
+61FA8278FFF9956C64B8ACBE357D4603CC4599BFA198AEC01E4F4AE047754C16
+E155C8FD09C996D9B5EECDB243FA48B0CED1F0882103729EAECDDB9523D6BC22
+0AA1545814579043F0DDA2D7F015E56C399EA3C644A15BA6B144361449609C40
+A4986E00918A7B44BB06E7090F73FFBE4EE3E051121939EAB0349EE84715DE36
+FB187C50AFD74C44C25BE4B7037466CD60F211FFD7044245159505196B0E181C
+0177F14D0B486CDFB767708C171FE513AAFA2B60665CA55B1E5F9E0304B63666
+3BF44EC4F5B7DA58891081F78B37BE8453E86AF3557B97D8B4969CCDE2DFD255
+91FB4D9CD41E5F931751BDF7FC8C700C633470064C0BB00FE5745918A69CE430
+D86FE46DEC014C019C06621B2EC6C3F196A8A5E1E613AD8B28A9D0B981C11A29
+4AD11CD3A46D089F8EF7D8298971A5F9F6F139CA794AB4BF0AAB2D4D428A8E4D
+B80EC134CC7CD74D3F08E7BC8AC5B1846E1E5DBFA97AE4DB885286C7D06B4CF8
+948E889ED85E8703CB97D7AE19E1201EEA205157BEEFAA3E17B8BDDFD01BDB17
+691010A662280C279942158F68BD351B235EA4EBE24D54C0055A19A3F230F353
+77202A1D7BE371010624CB741D4BA2E690B33FE582D666E9788A3E3348A0E100
+2843E0B2FDEE05DF75F4D49DFE2B69BE79E97DA1B3638289395444F1CF6CDAB5
+5E6EEBB6F907807B913290C25D8AA546B121EA90DD113588011DBF01B7F88AA9
+B9CA9731532478D3BA57786817C1D31D8C51C307D7F500F1B58C2CEC9594E5C4
+E5E7239D90C8B5B4A81F95C048272A2C05EF0613463E4094E922F7326815EF3E
+6E82D5A36840A76B1BB25185CD66B05FF2D140E0F22CFF73EB3F57732E935BA6
+8C64BB6809E1B45089273527834789637621793414B6853A1C301612920E3F91
+458D043CC1B6CDA271864FD4CCE585FDF025FAD217F975FC36FAF8B79A6551DE
+AC3863E25DE972E2A4AD997E77A2C05A1A14152BCFDEAF40072A0AD952A3944B
+AB12D66ED3C408DD104B8638D67417D2A95A87E226A03C28181047CF5BE58409
+7D07D2529BF867BB61ACFD68F817BCA73815F787162614EB926563EE2F8629FA
+6BEBC05465458A03C2A8673A3CFF7552855E082A7B5C2D4101A1B96449071485
+279C1EC56610507DF786427B4E4D949BDC9127C2802451F3B21D60D5827E5B7D
+0A683F4402725547EEBE27C38839876A3B1B7FE0D7107D6E2292631D1B9EFC79
+87D05342972EEE2C413568BA971AF56A2D4D89C7C0D0120AD504D444655CFF3C
+957D5EF19169401CAAA2C4C144FF87AC7DD3451A63CE796B8F6C600F913F55A5
+A74B928AD676ED097740BDA578DA299F42CB7B7334BD2281E403129866031EEA
+1219E7F9BBA230D049EEF401CEB412BF7FB58FB2F9B7D1E47F0D774956B803E2
+872A7A5A38E5B7EC4A225C73522EFCE6E98E3EDA3BB402BC5BBBA209074BD2A8
+C856290D01A092160E8FB0D9EF324776AD39D7016C63A500D0839E670009F4C0
+20F033554B6B7CCAB7BF60494431E4F2755E4CD966ADC7A078D434FA59E5E49B
+9903F4E722ED169CC3D0FADE874E3141CD47C69BAFA3183BEA4F37B388F4F48B
+7D143D4B79CC5E701EEB350447D9600D39A7C03A25B5B8B6A5A7284A8DB4969C
+CDE2C99C39EC07BD8559A45CB5AF23B849C1826713828F43DF265068950DDADF
+3B584B90748657609A89008187BDE4286F95694D01760260274A23A41FA66A78
+773902ADDAD18F98F045FF7D20AD20EB685C145D44237EDA272619EA9AB71497
+DC8BBE9EEED31EA77C9410FE650C65A6CA71F0E72E7D83BBCC0A59DCEDA6399D
+64A8F4865811A637838445D84D97204CA7A918DD476471A598D7536276C0F0D1
+F0A88D8BCCA56409342C1FF678CFF90FC7B287C36CE682E1B200B54B2CCB12DB
+D1DC9BB4E1CDE2B9B6BD4B80DC226E10FCF20A9E7878A16EDFF37FB874E4868B
+A9F1C452EAA7126E81763A2DE2B502132046322BE26140F04FEB0E7167920679
+FE8618E1AC5C03360AD3D8B5E913E1CF0C1BE9E446DFB050C3978165838278DD
+23D17DFDC85DC7B168F173D0945D110976084CB27B6F8AB2D22410DB05BD345D
+E4E38CC7EDCBAE36CCBAC590DA5C12D969D51B847A1460F4FAEE7D648818D26F
+20FFE485D842C2088258F4F0B1FDCA46A7110645C25E3A31C4E6986C220985A5
+DECCA30BAA3A4B5CE0152B8A9D68B1FD67F21050A87BDAE6B665036B9C73953A
+11B16AA3285456220D09A03DCD8402C06A2BB18717B1AEA7594F748817176E12
+87E685FE70E28C0382EAE8948A6E9FC2F46E2B70DAB208611DFD5A5D97D39CCA
+8F9AD9A171DF53CAA6E3E5AE87257561BE15E3BB21779397A30AD4B22A1A1EBA
+4B7235F59EEEC1FAB7294D521EC1E36723A4D7BA007DA4239C05F0E6DE546D5C
+7A58CCD00F6AC96C20B7182CCCE3E5937D7A64F7CCD52A107BB8092D5F95A8A0
+589B2DC542511DC89A0EEEF23E711C7444BDF95F64CF486F158CA162138A36DF
+5400A5D03AE62A945373E95840F6D6C7BCCC4FE65382584A4DB36D23FBA6562E
+1F3AFCDEF27AED61245EF880426B14B3DB5D9731039FB98F2F51094CD7D5EC78
+1F8B03F07064CED40D139BD04C868B1E51A994731EDBA98E7D678A07F7AF6E56
+92586848C58ABFEF378F5C1B4C3E20BA860BC7310B9AC48F2143B5495F9B3A35
+85C9AD5AFEB23DF6376EE78BCCE054C8FAA925965E38EEA6F68CE1B5329D9DD4
+DAB3F3342C6E6D9E0C70E63989DE8DD2D3C4C671233888ABF56C58F69D29A742
+B5AF39EBF1092C2C4A906B872310DE0E83372B1C7F6E295D8DFFEFF960DC0F4D
+83D7878BD8918B9BDFA17889D52AAF362B6162C07810672E23F66F8CF3BDBD6F
+0E016C4FBC8CBAA796057A6B9BDE3233909694110279F81259A5E628FBDF6159
+CA0CD6997EBD34C3038A02FA4B422A98AAF4297B998685D7080EAEBC22E27900
+8B0178A75E5E52363A2E56507B3E44A6F9A9DD81886317A07B4823558D3690C9
+8C722915FEFFED7F6CFF4E94DA744562835E29C97333CFE50D49A5EDB886F4D5
+279DD9CD35C15656F9329CA06A0CE1BD5986784A910EC3DC7AB1A068C8ED4829
+DDBC83091AAF21092234F614A6CA2C4A854B5049B5622BEBBA68AFC0AF9C6686
+74555347CD055BB13B5CD7B5B6954A5794AFCFAF9AAA3682C7333564660E7C1A
+8FB3DACF1ABACC3D68C26D07060C7D5B9AE9C9377A771C3BCD317F0ECE3CED11
+C0438A29708D99A1F3C02E67AA1D7BB57AA7D8C64A2028349BDDD4BF6DB3139E
+C1BB6D7D906699484EE2A5D83296BEE09644B62EB10658E06E4176C1E5E7BC4F
+36F3454F2DE69F0C5B51FD5874F67287294399923B19A40CBCA4B580BCDA347A
+9AFB7AE64C8E9070D5586086E6F42EDB8C0E9729649CDAF7C0337BE5E670DB9B
+D5C038262B65603C1CB1BD00D4ECE2BDAE5B77A8A129DDD79DC7D080AA89B7D7
+439A03568C2C826EF23C2ED7160B2F8F14C05F444E364DDE247748541CE7E265
+1414B5A15E7152C6E9056B0CD43421D4AA5EBF1EC2CC70516F920F08B0CDC38C
+DF480EEAF04D7F12638C9CF8DC4F827DB07256F4432345FCDA86CFCB637D04D8
+931A81D2DC47674AB435738871A65422D3FD46DFAE9049F27DF0DE33A0E3207F
+A6832153135BBE5A283CDFF46ABC74C78B3320EAB1E881E59E07C3134F3830B0
+8216AAD3995D3F8F6CC988C73B2B7A5B79E81C6E8377FFBDAB29B4CB6317B118
+84A437E14B0B213BE7ED610E9469405AB950965B2CFBD4CF0B3415BC9638771D
+C2D8265D4FF0018FCD3851E645A82C179FB4995A337C0A854999E0D91EE8C98A
+A9EB781A0DEAFAE1D666D2F5813BB2E79C232E5C96C686D414921DCF8EAD4C7D
+06F79EF5078C77556346283940EAEE347B06F756A800FEB7656DC02597A674DB
+6F8BAC8751BA046D7040B5BA0AC766522FF9657F71C7C89DC93E92000A00120F
+301DE3ADB5D7D62B57E0824B9BBED388A5CF1B39B034AE2E44BE27CC0F5F0223
+2A219166697692167403DC2083384A698551FBE48BEC89629820596FD569543E
+75174901415C56DCBCA012694D671655AA84A8D8307B34066F1AC149C8B4BE3F
+578F57A39B93DC454580C44B12D6D1BC653CCEACE809E5F3F7406B9F4A868D68
+ED4C5C23D7B2497668D718621A94AF4938A16FDACFC6E3B216BB615324375050
+24A7466E820435B11E93E91F673D609932BE884AA1CDB9D433A40D189A668498
+A1B708DA358F56A1F2CE297C61D9AC19ABF79539914749E5DEE0FD0DC998F4D8
+1A4CD93D0A06E68CC764308BCE69D4D53FB2F0AB742D7E9618321EE87EB1DEBF
+14561A916C8D58B9C6AFE80D586F5FCAC3C6489038178E77B515108E48C7AF9A
+AC9C3F93598A28CD03864C6A65659E8E6C782F50ECFBE2C27678ABF0978877FF
+C685386DF9D9D8F51EB5AA618D2B3F63FC6A0D6107469DA479D540447D785235
+2FBD6C4054C30D02DF3D2732031297F53AFC937F6CEEE01B2EF34D59FD0EBD21
+854C5CAD32C59F6D8F843795472ABE1F73107C0F5A5B9274CFF2346E7627355D
+5E7B3B3451C89DF5572F4E9BDCAF526425B34D71875B5109EE341F55C551DA50
+31E2EC3BCB7A79CA3F737D3CC23200160C76E29B9A5740BCFA0355AFE7930076
+1F621C801268E18B83A108068B8DB4ACF7079069AD73E37ACB779490900CB770
+326BA14A6CB1E7FF537AB11F432809968CC441F418AD1A36075D948D487C55B3
+C6FC12080681BC9685764E9348B28A29E6FA025EBE0C175AAA6CD60CE6E2417D
+FAE5E146264FDFFE499FF7B6F04466BF3406D2AF6DE542862EB51614000D9B0F
+0C630C2955964D0D808C8C65211DA05FF14547308FADEAD9A907B1944DBCAAE4
+DAE093FAF4AE1AC91793F025C0F0C1E74DE7817154052436A369CF7F52E05841
+5778334C75C7ADDF2B7C1D996C18E65366EC4F8F085AF9DE24D54FF213C73716
+0C383C2741EC725E1FD07F83ED9BED3CEBA6BBF54C5CAC897D17E19F62A11AA9
+B3D13D0649DE56955AF9924057554C39C82F9349AE6BB9B64BF829E70FEC832C
+4C485AA946B559E464DCB8AD35A51CF8A997F1E3432F41910F82B415DEC1878A
+0650595C11ACBFB118910B1C5821F8B6A410286752DFED0F82CEA57C8D763F06
+BC262A0706D92AA301250011908C1B0E9104B7ED130CFD89387A5D6995A2ED01
+3AC41DEECC5EBCAF68D35AE4B7ECB982E7C507F9A825F7D10791563182B36150
+D3A57948C01B1C0A09D1B0B952A9AC8A62297A7FB7666F495FC71D628B3F5331
+17629C045F8B74E8E98438C5DDD73186EE47DF60177CDBEEE089F6A08A98003B
+8634A36458D0E0CDD169CF236BCAD946844075C8AA53F10A5BC48EF7265B9217
+410473CA471112D10841A1F655A8BCDAF640F33BEBF94A9D74351855C984BE17
+83A0F24C3CF8C7E76C8457CFAAB359A368B3AA5CA11ADFF89D7FCEEC9F49B7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: CMSY6
+%!PS-AdobeFont-1.0: CMSY6 003.002
+%%Title: CMSY6
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY6.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSY6 known{/CMSY6 findfont dup/UniqueID known{dup
+/UniqueID get 5096647 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSY6 def
+/FontBBox {-4 -948 1329 786 }readonly def
+/UniqueID 5096647 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY6.) readonly def
+/FullName (CMSY6) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 3 /asteriskmath put
+dup 48 /prime put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
+7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
+DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
+511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
+1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
+028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
+1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A4D6AE353EAB9DBA0D
+4335868937E3A2D0F9C8A4FBEAE138AE56EF84665582DDEF7B546714518D224A
+F91D19409EC600924626D79F58E272E3657E631C06412F9D42732B6AE0A93D81
+E2B13A81C76CC37FCA6DB35A1C6A572EFFEC7E1581C57B1D22EAE9C407771F40
+71D002A06A6AC249FCB7605C902A76EB298B05E39D543A63332A91B8A1ACE05B
+F902540FEC1024680B8D5857E4931D00781747C87ADCC45430B5462EA480BE50
+D07C5C9EA0D8D6447324434CF0D637BB13037B6E1C48F191C52CF2B9511690B5
+405280D5C825BD376EF12429837CD44BEA223DC8E199D8F85856C0FD551471CA
+B30481FAE99B71FAA56B639F549F449F2CA6F5450AADEAD4C09595A7A8530D12
+B23E012978225E112D23BD1D48DB097994A9D5EC707216D2BF5DF8B69E66ADBF
+DBDA4737737F51EB7A38A4207BB46456A8117067748659D654B1D14849F14920
+E57462ECFF602A181700A346C1E95131C6F1C66132915FFD999FD4105AFFE7D6
+7DA46DFCC4FE53265B14D7326F5A44A3E97902CCB106AE99ED6434AA9EEE7E6F
+60B8034EF80DF885FC63DFACB0AD1C00BE56F79B1AD41B065C59A35073B450F3
+7E6BC7B90C9D9337F9636943ED701398E6886947E126F1E12D74C5E4B5CF06EA
+E60F9B121B9B15E6752B127CCB9C26017A84BE6DD918AFE46DBF27BC06E66AD9
+830BF2D6CA9E24A0199DD3E732405F3210C97C9BD21545B5E4DC10E17C1A2C71
+851ED2B272055831A6F95864137C218E555B054BE3616820FE671E5BC08E7A48
+D683ACDB91E05F469C0C8919D71027E179F4911E878F8D13F999C63C4EC2C21D
+ADE1A11979B539C4C5746AA157A4EB4A7A153BC5D966197A7FF6A2DA3FDB161A
+EF43C2D906C617868617E72163D5B0BC29C36A60867C120A02E08264231FD46C
+1D3B62622A05129188D818E2AE83FB2770DF1D466CA38A49D15F9056BB7AB8BF
+D7DEB2E3B3A8157B59D138787B21CE3B3A456E230CFEC1374AC66B7DBBE788FD
+5182DA23264093CEF60D5BB0073AEDB68A61ECF1C69669244A1FA0CBA44DB83F
+352AEE6012082B8A3FD62F4497B1BE0E4FF77FF94BF221212D63BC1E35B9758F
+2D7F8FA002751DC0380AB954331E9AABA6C122F8F3D7E69CE8A6B359184F0531
+6B158ACF34C64C32F4671D430820B36C9A9397E9C877D734B17C3BBD8A88CE2B
+9F96D7AC5B8D55415E942D6C05392D03DAE53449F8FBE2225C91F228704BE9A1
+ECC568FB2E90C73F2F7AFA62859C35F0FB26756DE719BEA5A3EB81A6481507F1
+813CD1680EBFCF612FD9D3AA4B90688521446FABD5C54CAFE7B879F24B54449D
+2B30738B137B5E212B34BC5384BC2216A5D13F761D6E13A043DB2AABC0276705
+5C80CA394A8179D60DCA4651CE8B0A477165FF48A31BEC6B7C0852C9D72E11BE
+FEC5E4B984DFDE90218C105999E070FC83F1716D13389B5EEAE3F26C82FE9A7D
+3C67A98027D15DAD791348A21DD922C71145D287C7EA83B225377744BBB0082C
+22FD44E1B0DF60956DB9C4790F4E2F81C477DD4CA9F4BBB4287914EBBB4F6E36
+976C9E573496A2311E5C7677FBC4BB755B8BF925F291DE0442FBB8921402A487
+ECF23EC556C3FD66158727B10B74C778FA91EC16629F6E949624D265FA6FDF1F
+772E965A2C30C80AEEDC4A1867AE3D6D116BCE0F96D1A0C5138F294CC7C2AD72
+8BE152B314E26422FA2DDDFA89A054CEFC6607D932FACB035FC9FD9959C4A468
+CAC0F4DD41DFB83297EFFE36C352CA0A6B1485BF8433522BBBCCF9C73FB7334D
+1CFC92348F91C4D0EAD90B22BAC6B27D21CDF5AE65C056BDE3B30424F76C8EFE
+D7CDBC854B13EAEE0485CC348AC52F5345B7545B4FFC60B6E7CEF8D32354B233
+8DF503A03F5201EC012AA67157F4A47B902D269A060A5B8E10A37CA7CAAFD417
+1A13EED9533BD4A6E8845D7D236CB254D40930C273EA4372E0B13912B2CE9261
+275D51D202D461FD69AE352E95F72D61683267D4951BB602A0BACEAFF9516F3A
+C30EFFF3ACC08AD374A730287B148FE8E168089D239E1084E0F7D83CB9815031
+5428874FA4640E1C216514AA16C74BD2B9A95EFD7B6B0C575A5D5B3AD1086CE7
+E8EEE33490CDCF2E3FBAEDC984FE53D033987580E75E74E455E44496E186349A
+DE4B5125F69BF79936565986B3D91E6A25CE6E1C4527FE22580A39805A91BF6B
+90EFC8AD31FBA71FCC90EA04875B5A7ED05BA2FFD1C04774E1ECE84B4105ABBA
+798C339FB61ABF75C6FD3F24BC775A7FDBDD87BACCB9A86B4D928917CA62C0B8
+56343CAE0051A1172E7F234001A5FAA947CAF382FBF23E57F1144425713423E4
+4FC1AE1D096D10D6FECAA6A9186B0D519F51D06CC976A65A37E9219492E6218A
+FE9F99700C0D0D18BC48632268DA0F0CC24BE660E30645E7F63B0AD49CCA26EA
+CEDE4DED685DBD38F5C4BB6AD6CDFEBED1B14A456C27C448C91CBF6337FB3632
+7B9A565874F9849FC5E22C5A0437AF29E2B7FA405CF6B7AFEF66AE7449E89746
+66ED2D4C15A36C45C0F64E6F185B808FC788984C230B4BA63204B38C309F2DE2
+2937A92C184077F5252C9D6171EC6378273C32B61CF65E4DC124B321A4049294
+BB6CDD064D4E07605DA5FFB7B3B0A55A09D26C8624F03D8C197885BFF0A20B77
+257637447F628A4A642F6F92019F9ECA5B2DBCEDA63C05E5258C9DF131EDD1B2
+B4B04E7A5441035163BC2769B79C89ECFDF071E3517C59A45C9E97800724E1F5
+FDF504E2798FA9074A37B210B1C24DCC0B78263E2297ECA31D5C258BDD92D2DD
+8C53DD3B3BC3835E5AF52311EF0AACD6DCD159C45743B1AE7EE5A0111DCC9193
+441FB81F945D219DFF26BF50D80606DD3392CE941242CBAEA45077FBE6AD78E3
+0DF4FA54CC33CAC27A337FF307F14E60D1FA48FB8368E307441D6811676CFD38
+094A558CBF0B92503014BB169E345C27C74543CDA9E8134F85AA0DCE45EAF612
+1AB1D86FFB5E13CBDE8E0F68B19E30D0D9F5F0A3EF2A84AEE4D7F1F63A045297
+3F5C3080F313B32066E0C209C2708636C33A6531F1A483F3AFDFEA62305EF41E
+C55594660133146B24184070B87C22EE5B80D66C409076D733245FD100E936D4
+E844D8A15CF45C0CD6AB04F3B5FCB0BC7B1517BAF21CED4D6CCC3F19D21BABC5
+FFA9768D77A41BC3F5C4595D868F2FCA88D6E41558FA5A70FB562E4EB22651A3
+886F0ED1B46BFFF297A28ED67BAA28A1302BC866AA7A73418BADE0870872CE0A
+305A5E46BE0CF6B5794539B8509F1E2DB4E40124D72201589BC4B55ABA2F5C40
+E167175C7F7378203C949B8967E8CCC40F44A2D1D555A4273733874265542C0A
+3C47FF7144C4DB276320150FD5CF453A505BD3BC1E98738A1CBE175574037D47
+8EF9F80622F57DF4DAB8FB13004ED1DBBFB4664F8D7ADCCBD529B22235740EB1
+216799B2D8CEC7CC4D16D8273B6AEEA427D480AA6E3C463F46763864856713DB
+05307CE674714CAC8351410627B8D1087155F3788E744158F3428A767CDC9769
+CFBE28A30D635D7C4FC44E43E7F13128A867389FD66CFAE939AE2745055BE71A
+AA7A7817E24D38773771C77328F4A755C872AA977C062A3BF7EBCD6DEBC7746E
+70346293A661684D3988A5D0B29860E6789FA8911E0C0749ADCB9A6B053B0E31
+3D490B9A2982CFC167001648FDF96D040BEFDB75A4EB90E2974927BF38F10E78
+17FFB9DF2A65CF56C1F63544662CEA0E88A5141F990DF6B5DA79CEB5B4744083
+C4697EB37422BF120332AB934D292CE8A3624E2C8FE6862C2211254558459BAB
+D8F1D8C76C604098701163703FAED0BB298396C86A0427106C007A7CDBB0AC8E
+35F39B240F8D9D43C1BCECAB622C02E721A323383973B61DB81115E3552E4260
+9F252F18E01C1EA2B0A1DED4BA50A5822D10AC7ABD664C460A4022BA910804E2
+2094A3AE0F2AE375FB22CBD35CE9C2542C240A79BC6A79F1135E58985837E1CC
+1E5D6666BC5D61FE6EF590316F9D1E80C42B9A7B6106D8B7F575447AACBB2660
+2C96D7F024FFE3292611E82CFE62D95646B92CEF6F03EEFCB3F6950A22B0997E
+52C38B55B77C2EE7A4D047F27ADEC6BF0BC639589FD0D1E0A47C948AB5BADA43
+9846CBB5B1CE53E96622B59133303AA0F559A481E50382A2A38C98C1A56D9AD1
+1668FDDBB1FE8068DCE68E5DA13C2D9918D1FEC7F69A6DDD3A29E31A57B7BDDA
+EAC616202162DCC7B9DC52AF821A9C1D2D7F860A2F294904A55499432C7098CA
+BF79B1B0A1527B99A4C57673AF54297BA822AF200FFBDEC475158AD6ECB55F87
+555012ACFBDD0EA527CB5793CA7CACE2FD956F30D7A8AC7F6A98979BE4BD744F
+BB84A87668E3DE62A814B92D3139981200D5ADA86C5D733CF5107DF6CB5C999F
+F6F63ABEBC9694F0F67EC632BA8C58E715D92FD6BDD056F29753BCC3E54B0A7E
+63EC33F7A29740EF0D8351B5897B126FB6C33E9A33CC83DAB91691690B8B9598
+FD3F397FAD45555CF5FB9CD80879A0CAC1CD8E8D536F05134B21FA4065452DE4
+BC8F63C82A3C34A01D00F4BB254F2AD7F6171EFFF6D7BE1213C9456AB383C568
+BEC17694C545B98E8AD734D0522FEC92EB3182DDDAC54740AD352E7645D08B4D
+CB4DA9B381D36C920C77869619855B4CF730E590B0405CD25884D6DB4D49F1E3
+D79EC4D0489514359CABED492BD751104091A661A510F268EC681F818780F304
+D960A15E583F354DD574767B860C57CC9CCA991E710576C626EA909C6677057A
+C409AEE846B4D5C0535F849F33470FA395CCF5C05CBB9A1FB62CF656F7A2AA42
+34730F786153A9856C337112F6A555A70EFA76404E2B88DA2DB91E8A2BC5A05C
+CC339DCA364A87738B60497CB790EF16875CBC506695DC7D70C6ACCDB2A00555
+3877A013482D55281C83BB630CB3EFB0657E5490176CF23420B97265B22B4CFE
+1DF9E0B294F064F5160540EF3A452641C82E347A96514E4063A7FF16832736A8
+6F21F6881E269CA09FB66DF37CAE7FF46D6B9AE42B6396EBF9A7A06453A81EBD
+808B047421B0F88F62B3FF217542FBDA872D03A476FBC7C0D658C03AF70ABB40
+03F1A3027E0FE186A22AD461835877ECF843C0E8B8340306092FBC5E91783A48
+E010EBD29F114BC273BDC53D2C94275F8956A74561813AA6C2D896CB3F6E13E3
+30F6C230C00917A40EC6F4689B65BEE32F5722BB1D1147585AB3B3D2D5EB8273
+CBE30D1C6CA1BCC4BEA9B87A014E7ED3CE53D13ACC8D426267CD3BFB8497E1DC
+C51CEB14F9CFB4D4BC9D6EA5A49DC3871DE59C89F855F079299F45D363F78634
+493829329E3F370D117DEAA18E7A6989C515667C2229779B9A5494DF0B4109E7
+71D79D379FA7B408A4675FA3DE17ED0ED632F9A443527CDA8E960411AD4070EE
+173ABBFAF9101BE92BE59707F98419503A85AC58B949E8595D66D7B13B8FD4EF
+11B28FCB5955C5F147BD7FA141AE0CA2ABCB1CAF82FE22D3281852205087CF45
+549F4D5B47F52AF50E8F6FA0AEC0F95FD0B1EBDCF965BC8A924CE0F4598AC546
+C15CEE4EDE7E6DD0E5FEC3A531B944CEA406DBEE21C4CF3384A79D0D5CD51BD8
+AA5B8B1FC987AEB57E86D3C6FDFADF998A6D6043449FA5B88BB2DCBF2945A513
+AD7ECD01B39BE46A577437E1774C3FEA176287C51ACCA15909E987B5AC2CA664
+709AA5605EA89A8DCE6B4014CFA781E822E8B05F377BD0187D5EAA0585A98E2D
+6726C471578295D824D1FBFE89F04A67F1A360D799CDF92C1218F29C24DE22CB
+C6B625D044404C22C89C433715BD77D0BF171030BA84E292B7A81E2FD99D4E67
+BA702C2EFA11D4461D833E74E97C9E295C6D170DB6BD73D615D03E678B0296C0
+F8BF99321767684127625942B4C3241BD0608460C81D97FA658BC179917B5065
+74A4D1F729CEB1D51C82F9C90F0C712917AC482D413ED7CAAFD545508652DACC
+1A03842E354F734C5FCEC8C7BEA4C69B066DBC83BFAA473D0A632DA2CEDF20B7
+6C7C83B4AE2AF7E05AA2C081BB6870AE38848F3870DD62C7D56EF1CCDD4BA3B0
+32C61ABE629BBC464BBAB06AA0202772C16D82427ABAB4830ACEA267B0109A81
+BA5D832731D1E9C9F0552BEF7A9B7AAA73760C6A09B910009BA9D93F1A56298B
+A43A32D43CAA3988643DE373FF47C176CE92D7931601F0034E6CC303876498AC
+026BB32D2F656A3541815697CBA2B6D527B69816161B2E13171E073D7CD85435
+3D32708391F63D592B71D98805CD19978C2BAF780CB124372EEA0A3DAB537683
+DC74F9E9EF98843F170FB086AEFD526CB81A7CC88046C52E1E56EB40F6F5C75A
+FE9D5ADE49E82078858072F68BCD02487EBAF4E3F7F309628C1FDCD4B01F7D00
+E1AE0A7CD3455953FFC77EEDCC5B5ECB1FA583064EC17132A3C12C0153C4B87D
+AA57FF73AD33C22C81C545F0593DC7EF438FF7A5F76A04E52848E00CF2C8CB06
+F295B1CD3BDB1D9E4EDD765D3753EA8DB76DAACAD75CEAC866FC4CA41501200F
+F12998E8DA573786AA9A7232287A6D19A12536026BA4423EF0B6D81D38BDCD9D
+2BEF15BCF32824F8EE802B461F52BD926A5BEB2E6CB31AF83E98E849D4339FFF
+95419941B12D2F3B76CCD34D6B78B91BDFA5DB4D4879501DF3E514A5EA8F1713
+E96330C5B4F1B7BA42D42F05E229FC303AE00E954A81F9BD43016F5930A0C490
+6C753157E4355F6ED3C5D1963779EB27402522B5E9D459206B3A06E594DF198B
+785F96B96E13045594EB42EF4A8BFE0DFCB4C5A2DA9594431FBE72A5AE18991A
+36FEB5FD9E8B238B3A095939B6ECAF5644BCE7DFFD8EA3E723F66B305F142B71
+B26F34E0538E4B58C4B5984883C6B08F3D1F596B56578FFB0EDFFE3F95E3B6AB
+63CEFA183A5A49F07F0F7559994F56D7305139D06AC8DF9466E715D90AECB1E2
+C35E3CD3F387579B3C9CA6F5BD741A7A5D7B63FC0130AF374124DC8C6AFA4FAC
+E40BD5923FE889E87126FB22C1AC4FFBD351F884D70803BBE1BD0D40D3CDA0DA
+F6984C373D3174358BC41C8DD4A215283ECCBC24F345FE65E316F24940198A6C
+3B5483129706AEB60D6C0CCE0DF9C130593475C72A92662A323EA5B689E5AD0F
+C949536875C37AA2517281A36A1C1D5650AC96E0CC00C03266E279B54232A1E6
+E6697196A4270E1DC794D8DBDF0690372AE19121B85FFD357E965228C66BBE6B
+D2E55533F7A1BF30B2EABBAC98CE35C619556CF9F0A522E8EFE4BE3EC61FDFE4
+E364608963C928AA8B302B1636DE15C83711C8FA060C5BBB1BCB8E02215A4F4D
+560DBC4A235F6F07EFD20ABAFEDE0795AA3932556D6AE3F6EB8FD0C1C509FAA2
+55CCC2703661C9F48233B429F020E01C1F3B8090D331C3B925DD5D1CF9D19F95
+6B192C593225B5186109D3E6636E87BA6F24EFEACD1F06A29DB1D1F4DE0D0253
+87641AA4A1113755D0DDA6EE4234CD9AF550DF63A46FC6F698E623BBF6F05278
+858904B415033C1A33B7770D99247815E2A8F1216EB42EF9742EEB4E1D90EC3E
+F2C0661DFDD996CE1FD66F946B9D4FFADF86861CF8EDCD570CB400D181697747
+83F38B92B1803874C24AF99C66E5F966B0E72B725FFBC6172341596D8AE51C3C
+4676A65E4D32F499FB1ED170554DA7AFD79DE5953988516A8B2B123FA207BC49
+D80645DFB16A79549BD5E41606D80424DBFD6F5BA1DF0EC271C596EBB4FD0B84
+DC5EEC45C3FF598241368442A3FB06B460C7D46678069011FFAA3072402D4DD2
+3DA6139A548FA99A68AC61134087071ED8B4A37A0A8A1A3B48A2A8CCAA351D75
+1828BA7DD5B7758A43F98F4D449ECB58B20B26C40B35AC82623961CD892B5DE3
+777908625E1A91DDE62DEBB2EE5EA3CAD7E089F421DF613D976660D547CCB02B
+3C6A727CAA1107C976C63F1775AF554AC9D6E72C27E58EB91C766DE3C9B18C70
+02F76150373FA95630C23C92C3B6C925388988408791753AA23161F2CF0CD44F
+934E3CD426A8A81D716EF220D70D2BA19D0ECB521503EEC0DEB24F72AA850A8D
+77DBFFB11716E43EEB769687DD62EEBDD103E5BAB7D6339C498E11403B2FCEFE
+8359AB475B9D30634B4B17FABC1FD9DB8FACA1B59982A8A3B1E8DF5D3353B5F7
+55C1EDDB7D596D1C402F6A84BADF53D471D5BB4355CFA0E7A929A58AF9F079F9
+41C0B50A3AA4CDCA7295FC2C7968A3428E23C95B7E7259A3C1784CD952B889EC
+8795ED2D3BB7672A24748FE8D81A6C443DFBDE5732BC857EB9A69C73586C4C09
+C73A8DDE73DFBCEE9E3508D57A95C197A14F600AED8F452FEC6AE6E020B8AE15
+68D0CFC52A228D9EF5E0F6F5273613D3368B9D0EAA2246EC50B5E223CD993117
+ABA04A1EA8C70E52EA1F91304C52F682DF4F457BC004367681F4DA2B6B0E7A65
+FEFBCD76D92B7D03A3EEA4992722F1EC95517A3EDB4596BA65F37E336FD4C68E
+59EF3338994987D07CFE8BD0937970CB8A1054F86235F525C2470D54FFBEBF6B
+83CEDAF7A570B1D591F63DDBF4F1FB02AA5982BDBD4DE8F64D18AFC2EE210DEB
+0E22A03B5277661FEC7F4EB6E80476EB4A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: EUFM10
+%!PS-AdobeFont-1.0: EUFM10 003.002
+%%Title: EUFM10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name EUFM10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/EUFM10 known{/EUFM10 findfont dup/UniqueID known{dup
+/UniqueID get 5031986 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /EUFM10 def
+/FontBBox {-28 -257 1055 741 }readonly def
+/UniqueID 5031986 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name EUFM10.) readonly def
+/FullName (EUFM10) readonly def
+/FamilyName (Euler) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 84 /T put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
+7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
+DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
+511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
+1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
+028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
+1319147A4A219ECB92D0D9F6228B51A97C2954700AEB687D409334C3AA4C4576
+E8852B6EED963A2F12E1100C2F11AD64F9834008B17D7275137C8C6D065343D3
+6248876705271ADBF66792903C82D020865C425B823891577122B2D7910FDFE2
+F4377C1205D6BCE44FDE602980F41785C74039DC7E77C42814E47564A330585C
+0EAA804F53354D2BF30DD8999BC82881D04A63FD7C16EB3DE7A78BCD1062B2E2
+7F849386AD6B44361BC7B2A27EEF08BF9252C9A554DB2552DE3D80C400948542
+151B97B4A6FCFEDF0AEA4A87151F6BDADDE1A02A27BA84FDE7C186444F70AEC9
+6285D8FAFC80273B979C260AD93F76ED3FD8D834918E8CDB5CAA3EBBC58211D6
+CA7777DE276EA9EA5E4306D1C4AB235004A5A92A878D5530D0BF76B3CAB2B70B
+51086A20BD83153741973134DB567F287C1A40FA0CB348695F0A2DF000FDAA99
+63E9185B925995AC9E4379E85F5E2EE247D10282D8AA57E577CB9821562DB547
+BF4CB33A47E39B73F8832EB3460CFA5739653A69BA1D4AE7B37EF1B4BA92A819
+556EE6B71B483EF1E4F09023E0F10CDD59ED9F1C141885F065F053CCE6E7C3B4
+5AA830C57A7620D3A3DA81505E731C4BA2F9CF3B222047AF9EAC6AD77C0FB923
+89159CB2F90003255BEE1310D5493723FB75D7CBECE52EF2F52BD4DB260F4A86
+6DB8E36CFC5DF31870994DFCDEFC799FB1DA860E2574A3082D1D68F3ACBA5E69
+156630E8293D1CA94A40BD813F2E4D28E7BCDA3455FD734A606A8D1B178DDE19
+07469221E549388BA5C6675D93F522E27648ABBFE3397225B48EFAD1B4BB6453
+7D170F2FC43086983541177C2767884B79C0DEE036C410235C618DC539AFB4CD
+5AFCF6328F5CBECE827E1FD2D6FB3737D876D3295406983A31FCC6AA4B7E9BB4
+2E02806DFC1BC32320CAA6886427BCAC16579607E1C0E824FF4E98D4A2D3852D
+68722BC9ED1EFAFBC005208814EBC75AE76A94C40C7DE72A8FA8AF1E8ECB325F
+81132BE4E2A2637B1D3B115D15A6353392965EFD8640B9D380F931A9739FCCBB
+099F00C9D622415E4D4017C5577F7ABE95D3F13DB230F95677ECDDB8D82CA371
+274CD508F77BE835BFF3C38EF1A27FAF4DD9A0E5FB9F2B6CC863CC52376F0E5A
+3DC147E438685418FF91FB0D7F2A7CF41D9E6F8D7CFDB0B6F4ADD20FCE139F5F
+63D62BA3D19D147F3CE880078429BB573F3C8508AA0CF2CC7937F484CBE7800E
+E4B41ABD773B5CFBF51FF4FA18FEDC002207FD56BC49CED92A6472D9D631E45C
+BB3439D9229CFDCEDC45ED8A12BC3DB78426953385AC118D60FE14EFEB0BE54B
+6D9904F63F9DE0E4CB3F161F682A173B4DCD9A97AB2DA5C3D8C43149098E19FC
+8AEA6686FC1C2727E4322B7C679DA359FD3BB798F62AF4AAA4FAF3A04EF40722
+A0DE5E8D78BD73DA6CD98F2AAB93B57E173C61F086B71700EAE519475E954EC3
+4FE7B41765070B8F6CDD4806917ABBE8A5107391969AD95045AB41E7E390E8D0
+4A32BD366FB9206328892625ED99C6B3492A0F9D0559DE7BF7F55B39B9B3BD10
+2D00C7358FA032CF71AF7302C3AA6ECD1F25F006ABAD0C8EA89BF98148EACCF3
+EAA24EBD4CCFF079233EF20FFA32FE10A0A4F227EF904DA9BB20D9D9480BD607
+92636C36C70ACBC70798B1A16A5EBD7C3E8E34280A89BA07E07CF813E91C6974
+487DF2F85A2085477686918B6BAB721D968DFF3B291BF9A772A22295C9A1A010
+C535D796AF658A813305878D9CDE915B014AB17F461C9395E19933956CC29805
+5D76456671D1B7ED8431F85D9C3AC9D7E51D4AC509DAE09303EB86961A4C48A7
+7509F2300BE605C819602C6D969E003674241E5EF1E87A71E78CB6BA412B7EF4
+EF933DCD09CEE6F1BDD23BD99933E675F8827B7D8EC11656AFE1AE77B2AEB592
+2F994F39006720EF3B2093B9AA8FC84847A5DD0568376505531238DBF13C8BA0
+F9FAE24261F0A7855AE3F5D477151CAEC906B8CEC6E51427BBB28D8F181417E2
+DCE55956FA3F3283857B09B3577630CD06A43E8D9019B00A0E62CB549C7453D1
+85276A431C3A22370FC1A3D6428C63D779EC73E5D93CEF8BA5E68AE9DC6BE6CF
+6EE94659A3EC54EA34F8054B6B2EE1EF067EE093B40811FE85E15EDC61F71A55
+C47284266277E1C1E18901ECEA82C4EA183091006CE95E9D9441F60955EB43C0
+B74BFBD1E1FB99BF3C6AB6BB665E50CF7D42EA10F036ADDE55839581F427E156
+A72B4E8D10B4A74D459C24D3DB747755F73590712E8804324670EC25789B3AF9
+06483AB21635C075E75A5656F228E58888EDCE5EEA541A30DBE91656228398F2
+437F320600C0F037C9E95CA50067EC8F17545C7C0BCAB973F211E2EC7151A85C
+6B52C522B085DFCBFB087BCD5ADFB29B84B16AAFDC42D1EFEC922409D33F08A2
+270010D2FC8C8ABA455EA2E866760604BBEBAF382ACDA623273B6915E3732BFB
+8401E38AF114E6D0735A796732C0A4F2573EFF7C82C8D149003E83BB5FE9ADE6
+0AAC56947AA394E01103B515FD73BB4167DB0CB148FA20938A8098991FD78142
+FE14EC1EB3BA4B9F24AF8FCCC0FE3EFF0CC474DEE6AE233D66EAD198B48AF4C6
+815425A863D1C38054390788F9A529E53ABF08E5C0976F403E86F50EE4B83639
+9080B37B5286E62992DF0169898A60B1C0B83820AF640A157F0505DA970D6A0A
+B5C36D4293E29796621E7F428D3CEB65704AEE15EB5F575EE40D1EC994DBAE08
+F4492A2451C7E3A801A03FD4F10EE46AAAD8AD5E5AF2092CBA6C392DC408C0F0
+27F2E4FD3A6A5F26352F065937FC6DAE1B838A8DEAE7B045F16EB98A0282EBC3
+0924F6F80F52F4A013D64FE8156350B079C4DD410BFF6511E062125F1452402C
+D702513F68DBAE266D3AA3EB6EA903FFD7D1D80B9A61E2D4CEFA84385F4D412A
+5E08A6CBA614DAEABE02DBAADDEFB3008E57177973EDF2765CEC2A7CAC2D33D2
+2ADE1F5C7AA37B2F50ECFBFF71399E8199F4C31AFE0C2DCB46C449272F3A1D8E
+7AAC8B6297D4BA1D8FB2BDDF3E6C11916D8850EB9F015880948CA564A6D320F3
+DF313BA41D5EF386AD9367B66829A40DE1BC753BC8BDB26467ACFB504F627D44
+88E1CAF6EAF28E1AE7C229616B277A4972ACC39C3F5CA060D848B7C6B52F9C49
+A8FD03CD59DE1242321681BEF58A1328DA0F04C8245C3B46E21421D6236A0FB2
+4AAB7212A4884FD68867A4CF56D83882284EE9B23AD5D6CA3CD06A390C52E518
+C6555D9EC12FFCF0FA22A0A3131F65DD8887FB74551FA2DDB695E0A2D8076852
+9C1C2474C5B226D2DE288E1C045D895AD9DD77F86EB8E477B58ADA6EB39D45F0
+4C9C31EC9546088A2EAA16250C3CB2B69744C29EE17BA5DA565AB595336F6A4A
+F4B935E3C3CB45E3A781E1BCD215ADE4EA41CE0E4FE7C6AFE376A91FF4B32BFB
+4907875C95F01FF669C5FBD1490EB4C0494599D938564947E2EB66AFDAE42C6E
+A146A87FA0EA5A4A87300D0E0779E65D65FC8150362720F69F7091B8AEEBCD4E
+1CA80254BDBB46DCF63FE6C639F6BA0B53216BCF4C3DCDF3F5B6ADC750836480
+8A81E80CE7F64246632EF334893727F45F53B77283C341DEA3CA971E8F0281B6
+0A9FC2A262FDA6F6A08AEE2A25FFBFD209113E689E2CC3B6C7DF8A4D7D83918D
+26C7D9E28CAB82A4E08783E1D677E3BA8B03B1B850F18B6A5C75DBAB7EE8F232
+9BF1D20D4BDE64A7D1F57EC7EF76B56375D55178FF5E6C9A2D5BB4D74B8A57DD
+7251F041335F234253534648D36D008892E7D3377A3E117927879A854150631B
+E0EA648CA7E9784C5FB129B77A7ECDD0E55125D37225DFB34B115A06BF80F1EC
+9918C6739DFED6DECAE3AFC029620C6D2BE5458C8EF2CF28F373E5B98999F31A
+CDC03658FD6B089A2E939B1ABEDBF965C895C7392EB3B8ADA4FB9DA7D5FA250B
+43B32BEE49AE20D02C81D693B4C74F2FCEA305EB969074C8F64C7F92BCCDA499
+DB8C4AABA59278C9BFC68F2DFCE626A5AC8F2324E196EFEF2A4E62029BE2DCDD
+DBC8B6071960E3DD4BE58300863172328C3A2F612E104A31731102B31EDB747D
+8D2687A1C20E2BE3675F4AE46AD26B06C56526503716F993E5CC1259FBB589E7
+C0C3D57AB03E869704B75AE5E370C218303348F32EB3BF386AEEA427C0B40614
+2C4370E468CBE81F20EA547F40EAB8B859327F455E579AF787D6ACA83DB2BA4C
+EA6C099E32E1A3FB511353A49BD652B173B5003185F2C7C86301594F540AD7E6
+3911C6799F334096CD34AFCBCE2B75118A79A6A1A93A064BF07F6AE76DCA13E1
+E6D01EB7C5B654C6DBD56B3FAB7D8A9D0622B353A216E22A314B574F03097C5C
+674AF8DE867FF051359B825B049D1456808C62726456A7AE9B101FDBDB55B722
+B3AF027BB211B00DBFF5BCC7577788515F69B5E58247693F9DB6FA10F03B99DC
+316A6BC6207D5B1CC8E950D9D4F5DF6DA101027CD0DAEC8B5C75074FDA080EFB
+EE888C74D622664250554DF7451D9CD4CA640CA92D92EFACD1092A43EFD508D2
+62C41ADFFDABF3E7CF7A53E6177AFF2AE269AB7424E3C592DDF1033AA5D3580C
+C29DF68E3E30D79941571693D57F94F0E3D87F7EE8E8247B300EBDF80FA429DD
+CB6217A45EDD8894A8766FE0705615D250501BA2C1DED89160EFBB5B16753E0F
+1EFE90D5F0227F7D76641515BC41FF4AB1132A9DCCEF47B58AD0387DF4DB078D
+F87A7EA145DCA6AD24F98DFE04DB5F305EAE66D692F56103BD5B3A57623CCC60
+8EB47F7581CEA75387CB31D9B35BDEA0EC5F9E90D8CEB17B06CEB045392820BD
+856C1FF7BC427A32F6B8C53DDF041B8D373FA22B504E60BA53277503C38C5B76
+AD80A21DF0B6FC5AAA58DBE8AD8872B81F4484AE450306013F69EDAC486EC64D
+73D11BF67F575DF605F929CB8202FD8EDD1F5449C89F4D3B3891E45B3251D97A
+7E9DBF742BF9C72CC02D0E742F60C12F198BB5B698A5A0AC66B243E1A8C611CB
+A0B8AA2DFBBBFBAAC107389ACDCF209F33A8149BF7D24C106D0D59BB1665A43E
+27F3C4E5DB68F654D3E364F599AB641DE380F29218A23D87E2ED05CA888A1E87
+34774ACFD3A870099D8D1C192E955461F36C94B00C732B7F2BAF532C71AE6D9D
+DD781966F7EB77DAC4D33F4901232F4B4E7FAC2AA452DDE07B090539AE7E20A2
+D6BE09AF40D8357C7A12329034E2E9BA70CBE18B1CA05BB535025A6361CBB0E9
+7602B0AB13977D14408B756398FC0EB3724EB0B40DDEAF12D80C51066928E241
+4EEC3A3BFDCDF1D3AA1BBAB655AE05DA07499C9FF5A19096E67FEEE762BA61C7
+EFFDF956FF894EFC9FA14014BEB7DDE1AD62D4AE44B391536033CF74C86F19D4
+4368036018F93F2F79B10B1CAD5C454F19A10EEC2BF92C5FF8FD3124B6448076
+086840BF6E4079A2DA05BC8A1215E8CC8360AEABC591EC2D3A386E81C47CAE34
+F2CD9B45C6247F5561BC7CC4316C52F20A8668C79D8ACED3E353DE19A86E4812
+F028B8E693A2754A3BC77FFE2EBE00D3BAA847106E66161A1F14F6949A7B175A
+6CBE5934C8CE635C96A24E5DF7B46AAA7131F12F11A5C168CA9F96675790015F
+128E05EEA1C09CF4D57B99866C611A02EB9AD4F19B0D306CE98971D1EC585F35
+2EDBE736E406027E6E7016B38BEF06F005C14890DC5B02EC2114D923874D8C59
+3CB9444570B6483A78CBA2D18E57E33A5757A59984CFD0860D5B3C2CC781E877
+43B5E6825900E1E8E705D9BF121212B33E8E6C2FFB0D84D341D6C8250410517D
+A088F3D175197D60BE2036ACF8413D0B91B02106EBEE28FA11873B80EA1401F3
+F99D101C6620E9802BB78C4534E80C2A683F48EEC7A62CE4831F513E8FF4F97E
+56F75C44C5F421512BE0B0F6973A1CD462D61EF67CFC490057F0C07023B87D06
+908818A6FA00F3815CCBBDB018A16BA92E616AEC5F7AB105DB5CCD8977B69AC4
+75DB731D2AB714360597A0436FA72DC70380FB47650EAB4404436AEA973A9F61
+26744E1553BF842ADA45BA01438746009D87FCD25F40D7B01F08918CF0B39006
+CF85DCD960C17540DA574501B7BAD490881FCD90C244C47B912AB0D77D7298DF
+3E7D91995D9CE83A4BEA802FB9F1226A17A5F9A3BEA95B7A86FAE92CEBEAA58B
+A75704FCCC2C1B0D49AD63F8F9D1E128A0ED6DAC69203F4698DE624B8E423601
+C7626C05EBF39246E9AB373D861681AB6BCF48F3D49370B11F2756E79328E1C9
+651392FDD8EDEA936C696CDB60E54779DB38665141CBEF463D798F4B6C668023
+BC5566718F4B3AA207493D44FC67E686D8E3BED6D06411FED5B52598915173ED
+BFF8670435AF434AAE1C33AF9A88F858FE4C12B64E0ADDD71E2C2FFF016BA124
+CC327A0404AFCF9C2FDDA96C26C4914AA24279782820ECF6CB88B6AF8282A9E0
+998718BFA6FFFF1DBD12992F3EA027274EBC2D84D3E7D41573355524DA75D159
+2661ACBE435BAE264712C975A8AA5B8E246E4698682B54AB931DC6838B699834
+7AE55BE022B807662CC5E4F4ECFDA1FBAA417262F8B6BAC14263692E0EE39765
+D278021BEA0D3C71FC98CEDB47D16EAC540E58D578437C1D8361CDCE0FC7FF45
+0AF01EE12BCD35F71ABE8C6B767DC95D956F2AD282185402C30A93EF973770DA
+CB8EBEAB7A58460B8CD3F6E957D9E233478B3A06B0DC72DAF29EA5CD341F8089
+926293195A3971FFA5C9CD02F99CCAD7F19AB98BE763224B19616DEF40306EA2
+2023A1B9A595D989631244CEE6F42DC830855C80141404CC220B2492565C5D3F
+24FDF03570ED0DA8D729D7E8DB8E51C06503C3D9717A92651035E58683241F48
+992CEEB2DC24047F16D9D2776C32D8AAA6B654911DA4FC34EA3D7647CE0BF768
+19C94F27B33C5B1ED265BD64F2DDA79FA28FFDF3170D3A59D9CE329D883B50AB
+1F6E9256B4C198EE5DEC65434E241BBD28CFFD8E5F30DE477E384CDA277E4BF2
+CA4063540D14615268DEDE79305F6B8E033ABC52897C0D508C9906E481B1BCBE
+AB87A8D3D528C5AE35CDD9ABE39D612AC5B337026D8892A0DBDF538A64E2AB3F
+A834ECCCE3E09DD7D05E494B76E31C88062C6275890A9F1079D0BFC7D4F58DDE
+F6CBD261ACD98E51F1116C03D3D2BAB27C2276C6F4242AD23E4B93EE63EAAB97
+5D2F5FF5723364147B5A02780D46BE9F62A701B585FDBE40A8FABBF35A757B18
+1C4F3070D85A0032D29239552E4F770AC41D49AE91276D376D57432D16258986
+1EFF7C7D9AA542FC01290B7F3A501462AE509969F2C2ED81E088FF7CF1B8A118
+E9DF4667832E097B0651FE7279D472D6975115AEF6EBAE731349D4696EF024C9
+995A75536AAC35B8CCF5B2304E2AA418435F250BCC993320E2D571D0E82C1BCC
+DD91EF8466BB12B3FD52518C1CC8E1C5999850D448177049A8773556DC31024C
+BCAD8B66129AB1297C0BC7AF03C63A867E7A597E8881988827D61141DBA2EDB3
+90AF992AB04296B99CF39293EFD019B78A50FB850DF0C675BCDD451292C5068A
+4F5D967A7C2EBE4E2D5DF7E97969E68F5CB6DDE7945904AAACB8EC1E5A02ED87
+1FA08A4088335FA9C23EAD7DC0279F2DD9CA9749321E5A133FA22A5FFE05D92F
+71F0D192378813F39779B260B6B5D3FB56F623D7C5F05796D2406154AA78DA06
+435AC0EE613CEAE3112C78BD3E20BF60D3CC4C8721FD8CBCA6B1BEA501F351AE
+16CDB2AA0841222122FB923C46973FB2E190523B19C4BAF7CE0AE35B006E1ED3
+E0F73D754CF7CAB03CA3366A11FDF24772E1966FE6537F776BC5DAC5AD5B5F9C
+815B4F86BED54E4A1C42CEC8030092ED99E78819CC4FEBEAAAC220439FDC8F59
+AAC8AA545C3617FABCD7605C487A00CD2F7BD6810796E92F1FFB71E7BBC0DDB6
+2F905F9EFE36171713366FD9AB35CEFAE60FC97C6B9EF843E74818A90E27D468
+5FDAECAE65DF331D3DD3CAE01EF1E27CB74C4AF7625027B562291999274391E1
+C23AFE3ED42C803A9D0E87E1EF71AE0732F89F6DCFC226CE27A83713347F7ED8
+8BF18767637093A0A313154FF042EF40ADC363F94F2CC9B0606B790D5B476C1A
+FC610D1F8DFA49314F27EE8C681F79CBFF4F970C58A3622E284FD0A3624584C8
+39CE100683A0B37FB647942E839101E4FE35829CFF931EBF83B2FD73B18D239D
+5BB6F9A2DC70D5CB34D4FCCDDDAE19B930F82A6D7401A83EC2992BF4BAA3DD67
+2D8102BC70E3E35309AC87625F94F964C1490A67675785A3C5B07B1F24414F8D
+1DADFED229A7046AD7E03A90C8FD8A7DA0654AE5D32E1840436FB73A1DF14B79
+2B7B44B94F5A909E267621A79AFCBF380482AF87B4BFBE0479FE52AACBC5DF25
+E08EA909AB5E7025266D5F6FEDCA001117F5342EE87C072939CCCEAFE16642EF
+DAC870BFF53552CFC8FB5FE4A70DBB3BDE6451319324D623DED2458F7EFF2A10
+EA60ECEE04CC749EB310D1B49B345A1F152B7B2931D03B8B63012D064113DD1D
+5C175AEB61FC962B7E1DE3A55FA4AF91B5BC758C7270B6FA659EDCBF94B0DC4B
+7B39E620C89875FA9924B4E5B107DE51A1BF2EF2CD369E5470EA573603C79004
+6FF9A0FE750A16DB41F5B59755581DDF6DB0F7C94B8F90B193A22873D4DA4102
+A85353
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: CMEX9
+%!PS-AdobeFont-1.0: CMEX9 003.002
+%%Title: CMEX9
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMEX9.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMEX9 known{/CMEX9 findfont dup/UniqueID known{dup
+/UniqueID get 5092765 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMEX9 def
+/FontBBox {-25 -2958 1495 772 }readonly def
+/UniqueID 5092765 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMEX9.) readonly def
+/FullName (CMEX9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /parenleftbig put
+dup 1 /parenrightbig put
+dup 2 /bracketleftbig put
+dup 3 /bracketrightbig put
+dup 10 /angbracketleftbig put
+dup 11 /angbracketrightbig put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7
+5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99
+8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716
+EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C
+02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D
+46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A
+4B60D020D325E4C2450F3BCF59223103D20DB69434BD2F5E56C8FF46EC332DB0
+76984939803A4D2E4F7065326BC983B6DC4219499435B304C1AE83C8A14C4085
+131D1CB66E24EF3AECA881EB3CAFBD7CC6E70F905DF2FF583BF11F2E5A674AF9
+11C625E782E1503243619CCD6B1222599F709EC8E7657B1053FEE4D83E29B295
+494CE2255E9D555D71DACD865C95E1A3ACC8D19A468D316142A854F452DE76EC
+B45C35C92BCCA844FD24BF5D5A43BED6C829FAC12BEC9C216414BA7783DB2747
+0B114774A6508C9D617C38A99EB5DCC26758D9D55A563F8240143878C5C49256
+AD489CE0A01657DE0051A2E845EFA4EB61043270B4A8E5E0676E90149CAB94D5
+AAA65B9198DF0EC8439A194D5CC14FB65FF3BC2D67707BAA7B23484DA100F9DA
+DB0610AF3AD273DB18B69EC987D6D9A0BF699BBBEA34A0AF1AE401429DA0C85B
+AE89B1AB922D16074CE2208BA2C3F88AE84F7BD87F4F23EE64789BB62814BFD3
+946734BDD1586BBD77254160BDA350FCC2C30B7F6B6AE44B928191DD564693B1
+29D840BF729843DA6A707EA375F7541D398527AA15017B3B625000ADAE91FCD5
+B749C01D15B2A8C60E3E4D97D5C454974BFB02CC706122041709F96659FA31D7
+C27D613F0B45ED42ECEA2090986FD97A3AD736C9310B7FBBB8B6FDF7052B9941
+A609E7F7EBC0B652B6FAC06337ACC5A1D1260454F16F5EC6C967D5B7402600FB
+546B55667896C188F50BDDA2E195EC55C0A7B48D6A025845BCBB4B567BB19946
+69191A766E28660A8DC4A15C8022948207DDE6E7451DDDED8376E52631E4F0D6
+B947E227F99E03605688E5E28EDFF6E8033E25FBE8F6A86D5A26B2937FF48C14
+BD9AC06DEB234FD1669C8F3EE9B8BF3E17139E08C308A3BB0ED0AAC81291D8E4
+2C1134A3314BCC0D93D513E3EC0D91C45C05ACD19994AB285B896334721B8C42
+420BF74A5CFE7CBD243D3DDB163362132A0285C280277B4C60D9BFC3D40944A3
+943697BD335C27F16ED870DABE54DDDA4BB5C3868DA4CC1C0DDCB50826700ED9
+9DF963A75151C5BCDEEDCAF2576E0E21288D194E540B422BC03B62CFD137E732
+D0660236BEA09052A292CDC218E48181DEE1BEC6548C828AF0FBCCF10BDCD4F8
+B71AAD95C5CF688815B9BF856FCDBBF769FD395885A88F4A13FC7B9440BDE7D1
+90324ECFF82AD30375BF19834A5CDCE28FFEC0FEFE45ABF372FA5C6F03D972C7
+AB3BC52C7E1C1783D6F80155B3A5BD54F19E6B3FF7155A6DD083438D0EA7AE2F
+F5BD3F1C0A13438F4C42B3379D2868D688C14DF6202B5006BE89F09FEBC4EE0A
+CCC50B10D3F9E56CE282FBA763D6F46CD62A860CA0744267D336833173C93951
+87995BAD6E789CBABD53DBAD179F29DBFE73E9E28FB75ABC0C3014A72D9C3CE0
+A80412E418D69741397C867907C795A20D45306EDCF032DA7A4A248C8FFA0189
+2552A041D06D13826860886B2FFC1361EEADCD6BE3710CD640E881B2811E81A7
+45BE7BF836AFDBC85E5AE36274D19BB1A12083A35BC231D6C1D98F8470ECDF8D
+8AFF93893D5C0557152DB776FA755663D4E1A7659DD7D7206305378297175CE0
+444B24650996FFAAEF4A23052AA4E77553F992DF1D6819C195B0B962F5571346
+7CC036EE1D527B68965DC2EED66818821AD02BDB5A27B3129C43986C3928E391
+BA170B1B161818BB2E2529024B721839DB116A174DCE89F92FAF4DC83033434F
+C96D97A6202D48E7FADD753825159E50FD051D7D268C5807225D52D161569EE7
+F94A99E78DB76DF5860227F5B6ECB1FA255E162C3D2AF6D96099CF3286E96DE5
+31D324EB92FBDCE0FAFC586FECDA5D9376D40C9B1A43BF1D52D3D54BA06745AB
+58E755921509C3335F72DBB2366726C4CB688000C1D6BCE706A3DE168DD0D5B7
+45BF139E205273B248F5C4E3844D4CD211E6208A2BBDBCD88AA8DABCE4FD0594
+151AAB58FAF716298DDFFA7A97C02AC060A114FDB3A0FA6EF7B8F1CD8606BE46
+8B7DAC1E72788C555BF9B5701865B263725AF314DB471239363AA8437EF51206
+2181B31E56C30103126582F77EFC23CD8F37DE389C16333F6C4F78699D187746
+EF94B8A9BF312AC2ECE4F23F9A7AA0487D09CBA71C11241155AFDA73BC914425
+4943E10468A243ECDBC5E70A06A00529EC2DF656F21EC7522BF41EF0F8BF7D35
+E0E76D6589E77900943C06AE933DBE3668099BA91C38C19E945BDDBFA4FA5C49
+ECDC4F183CB9189609F753DBE5D5B1AD7FA8BB9E28E3BF72DE2C604D88F43552
+ED0C3D02277BEDAB0DB5B7A9CCABC8932006E8D44300E748C149C08D41F86608
+F980E68813988906B7A4C5436CA1C10E54EF608945632E82B22021193A51342F
+5530D708792FCE9BEEB224D03DEA481107BAFAFEA271D16C3E8B89A481933D27
+03A044FB481748F2C7CCDD0562AC53F9AC2A9423FB0C7DDDE764022EEC181FC1
+1EEED102ED0F29A61D17004FACE1A1CBDB8994E2AC2F88DA74B173C45362EBBA
+597EA55D327886FCAB9221CE187D9589BB795BAA03F931CBF86DE3E8668CE8E0
+F8FD3B098CFE2ABA2099BFF8DA83E54E9996D2DC42E7D9416DC2D7FCBA3A0DDC
+B8CF9B37F7EB7AAAA6AD85297B042900688BEDB470E6E38CE0929AD5176A6C7F
+059174C1123F3AFB6FE77E4CBA0394C9A305FBC8FC817BFA6F97D530C77AFBEA
+29CA42B9551906D7187398AFDABD2EE9B06243E95BB467EC8E0D895474C9C455
+1CEE93868A6412C4BEFF0BD0272BA95DDCC0369AF8160EC2FE1C60F5E535D25F
+B0632C01BF40867E507E7BDD03BCC3BC21337FA3B974244E5D4591437FDFB185
+78F0176F5DEA5803EAE72E013AA7FFE07C40EB971DD7937DFE111BBC33F4F8D4
+5504AA54C414D94A9FA908B7B5356B913CA1AC0E71BD21E3CE550226FC5ED00A
+86C05BAB4571AF93066C4F4612CC3C51BEA3F241EAE68A79284DB837F5B1904E
+B642AA64A984EFB35F870912ED178F53DBAEA4A0E6E116256930BF507C01DE54
+8BB70AE4F99C5639BE4F065C51C95D3C97512E6C7E2E796E90CC540B09DF02A5
+CCD2694E35C075BA264B1C1C83CBDAFCA48807A008B1873273AA1028923AABF6
+6660CE500CF174183CB593014D8A272EBCF3A09133603CFFEF43A6FF059BCE52
+5BF232A5E067BADBAE7D90A56392F6B5922443B8A14DE64434A0018E21C1CC89
+CD5D85A03022B4D80FC1C3C8740140DD6793C65319FC3E906C7CB714DB22068C
+A66714E765A17F446CBDC8DBEFFD8A8E284DBAA179C9DD9BD9FD0A1DCEE171D9
+D5E47F8246FBBBDEEA159301B189724C21E5318D1B73BADDEBD21FCB6E8DBCBA
+4872FB568BEEFFC852FC84255B5014DB80589DC29AF1EDA5A57309FA19167514
+967F9F9D5DE56CA3E66A3D937C041E83C29AC39C357667715A824ABC7A39F398
+60C43B9ABB86F0CB56F9CDC50B6CADBA7938D020CDD81D1B59430611632E2368
+E7483D596A272D1D99B5CDF4BA2B66C9F50625ACFF60905652C251B724FF8C68
+D45C0174D12B87E95E7D480DADA7EF001F12A1B3528ADEFC3052E7CBAE406533
+32CE0D5F96B7A2DF24ED4B5C6FB220E751257161A0F095017D90E95F1DCB6B5B
+BF0413399B722A309C1155A0A9F2903CBB7F192149DB130BC24E5C41056FC750
+1E83C4E6EE02EA45465598DCF7C4892D00F14A954A4AA6C2E616D39F09BDEA3D
+27F0BABE6CC9D417A17D3EB2C138A842F1E53B30F58F05C9C77F3A0CD8B3ED6E
+5F67D05F551E95D9D1133D33C9F8CF57839C998E204A1FD39F24EAA20FB6B3D4
+9FF31D4D1826745AD4D3E95EEF71DD2D4E6300C42BA9316F1560E2D9A094007E
+79C04433D225BFDFDEA8F2E6D42C456B722F80EF4223ABB38991344ED1C78CBD
+830400A52BD0F2253E20A30122A842971BE77794DA8CC6290EAFEC44E3273E10
+54A6A2AE4E8F8072FF4A37265CC0C1FC4F773190B439DC006D769F3089928C4B
+DFD6A6012A39A0C8E997599EA3F4A73FF32C011819711BC6FBC4B6260A02DC29
+7348188F3B7EF0BDEBB8EAFF7347A3023C478F446CE904FC25AA2DDA51D976DB
+584A2ACD393B9E9C601AF9DA9629DE5C003F742AFE6D414A9BF1377D823B465C
+CCCD4A7D7D108A9D639C6BBC15844D9CF1AB8B8B2260AE601E7E9F7394E212B2
+693B47C8AB94612A779255A9FD9685585B0D1A7FB8B7E586197426517B122055
+CF9A5207EEF696E1B881E64754AFDF0C60838783E6BD49D470FD0553649DB0FF
+7B8CC86CF80D05B0701580E75D874515C4C8A7823CE924E9E7ADF1C97085A6CE
+24EE43E7969701EE5D3E5F07F59492A9A946F300DD83F9FBA4B8CDE73C12C563
+0691D30B57F253DB008E4595AE2D472376E88E30246642031DFF3132F971D172
+19F4B6C6F87303ABE5E1B4CF1AE504D1E4B5BF5C86E232B42304840A9BB34E73
+BA98A3186A01B72D98C92032180DCBD3A8715016557108B939293E23697D81C3
+FEBC37582B7F7AA541C220DD5D93E555AC54D7D277AD6DE29158CE8B89E29C67
+A305FD1F200B5ED02588CC1E0CCC93F9C8CED113066C401E1FCB4EDFB49C9224
+0FDD03519559B710C046DF2FD60DFE4029FD9505867321D98507F0523E93739A
+81A9E72430D30D0585977DD323CE222D408E4E2DDA7FBFD91A1EE1F75B530C6C
+A5F6ABA3BB9B6CF94C29837A4186EA933C7BA60AEA9CF1F7F632F5F561A4CB79
+CA533B32069D8A8D2DBD8089F295FB7E0631ACF087B7E777BF77EC394DEE5BE3
+B69A27B122339829F3593ED92F42FF2721840133DD96450BD9DBBCF984B3383B
+DF60B5C6603EA17DD5A3D0BBA5C61E1A7737E5F7719E2CAF59EEB87293BBC72C
+0BE5F5A97CF28FD8CE19177B37E8C223549F926B6A979F89C06FEBFE86178B82
+44F429C3C3C1F6506CED46DE0774ED12D7BF94756D38A8B1801B086CE71FBD37
+8C17A639A05280033FB5A7B8770A953C0CCB14B386D336C1CAE1CAFEEECCAA1C
+936164553CFA7ADC9E540353BC77C57AF8F96CD0FB7C41D5265011C86FD66BA7
+993FE45C8BD006B9BF0CFCD721A80368A1C4DD30EE15EE526D6F511DD5B42A75
+9C53639E5CD73845FCA08B21A3EF803C0DD4DC61598CC3446AE68FD548B9F5E3
+94B6A56EF1D7BDDAED84F8213EB7DCC84E699BD985ED8E5CFF2C729C02A925D8
+B7906366BD4520AF1B56A6D16D5B8D1A9B9AA1EDD2CCD597BF963F42611D48E8
+D2B4F733DAF0336890511388ADFC1A8801D25944E95BB859DC761B72B9E99A53
+584DB945DEB895BE8B6CD42F39D9568CCE9F89781614437088584A57EF884C63
+12FBD3E7874C42F97E8E2DEE2130ABF60DD60A3D84224AF5F6BC06F1DE598843
+C9016FCA08B9A343FC5638A5F849C84B248C3BD487895F602268D3E6F5EE8AFD
+0016BEAFE2901B570E75465A86AA357D15EF02EE39D18AA90D784DD117CC911D
+47BCCD7B6221F4A0741BDCF8BF30EBA66596F2164C5C9B9BB1E013C9F92D0E26
+A8C82CE7E6EEB0870BB2A6D09BF336CC2AC4B35D740403A60C31984F11B0D4E9
+8A8B95DCF96A7BC07C1FF7510EA6B709A2FAF612CDF75B71C1E471ECF2650192
+4643D9FCCDB1FDEC4FD158AE04768C099C7CC1FA1F693F884E04522E179C9E63
+778D704419A3EA4217A85AD8E70B6BF53F87430E511C3FBDEC1909CB52912EFC
+3E645F84680F4750762BC29CDEE4D355E3F2DA698F474D585E4068CE0BA9C253
+89E76F438987B389480A7CB39CBD601D9A2A5640EE3894A345548F18269D275B
+D43F757712E746E7EA971055FC27159818DB2E464628E362EEA21A9C5250AD98
+58DB14F128F2C1394D38F5D12417141DF703A471BE813269CDB23E3F8AAE820C
+65A72B14E8663ED16AE4BB7B979545FA7A3EA413E6435E0BAC5F16EDA64F5AC4
+5B3B4188BACE769342E1B5405A3D87A3E8D337E8C6BB74C0FBAE053BFBC86746
+3ACA563C0B70FE33B38C5F5C0D704B90D8A081F5A21ECDFE0C800CCFE29086AC
+1AFD3E9F3A37C62656182F8FA82BDC9B6D818FBC9377271CB5F4F60E2AA1422B
+4A52A35434D55740380F28026DFC190C9FB8F2D60A87E9D6C2FB65E3B745EBED
+917DCC5CD77BEEA69D2C9698A0A2BB3FDCA2C338B1D4FD47B06FE48A1B643DCB
+AEFEE774A7636F7D29FDB77B8DFC56FB7769521857ACE49C2A46A19EE83FA941
+F1F79A39384D9C0C69F3AB2E22B142FAD9F6EC6F4D9FDE36E12BD766206EDAD7
+91BBC76CC9F6EBD6668BB435501709CBE1CF23C32C5C2A877B57445EB3B879D2
+FC850D78BCB7E116C1155981F8B1B7225FB495E0927B42DE27F16AA7DF593762
+67A6AD250B378667E70198B04B040132AEB3747E89F9F2A213AC9D008558D32A
+23DA61B5AB7D18DF90C68BF29FF638630D5E69872C3B7D905182BA65661CF042
+EBD958B8648F5B650425B86336F3F57ADC4C3A02CAAC08E87DB5EBF6DE8C6E40
+CEE8B7138105873B76925E5F08EB999C4A24E1F3EBEFD79B17D31BC0E2D12C4C
+52708F03EA1F6859B3F91B885F76E6EE97D3A813F2635231F9C93D642EBBF666
+EDE5B814BC413C5B85E31DB99EC2A1D6861801C7ADA21BFE167441B26E1E2BDC
+6BBE9A438B41B5E3A7006637708163CF0E95AA0C47C15DDA87893AC37C3130E4
+81F084FA674E69515E490C819676C2E4FB666A4125C7677FEB8C32299E6751AE
+0ED2F1CB6AEDC00E0F8D8EEDC6C735A5CB813F1DCC95BD568030E63AD7DC317C
+6F61B99A39C65B93D0828817A1079F40909A01A2F11A01FA256D2C57F7A28BFF
+82D4E3E4CE220F270536A6424468A2A55C567AF75363C7BBE849BA0547D3867F
+34A50839A7061287272464F0C5CA47C965A265E044A366CA620896AD19EE956A
+8049A30C2B93FA109424AD69F8C369379C5B6DC1C695DB16E43912308DE3E3F3
+18F592F0C2559951F9B1ED4D9B66D0F691BE22D45361D74A216C4D91B72AC393
+28A28481B8377D8A20E2DCBB87FEAAA6C47861D12AB22FE1DE62CC65798D5614
+58AFBBDE546B5712A69F199C1D84CC20281C24246CFBE9B2DAF3A9DCDBA4E5D1
+BA82CB7082E3F560522D4947B51182431BBC02250648D7D2B771FFE8B272F269
+14D4A76B275B1DB785C374A227624FC944DD8E80A0316EFAC25B7CB975195EC8
+B248452D9D09C2B304FB2F5D416BB6387C2B0EB06223AD089BB9BF21B6079B1F
+22DFF38A0E248B9733CF97D23214A30167C32E63803515168556062D710FE258
+C6E3AD9D3DCB888950940F7E91F5B5D25C03B5A25AD033C8443DA01914A20EA8
+F2E6CAFA15F6E10D5645DB2EEF7D627BB5DA85DA1DD2009CBFF9D2DD159FF95C
+211360B517EFA263CFD0D2368C13381D3BBF877CA98DC6ACCA103B099DC2F3FA
+B7A6C1A01CEA32F205716B83CCCFD20C8ED17A3D778B36C1F28C88B7151637D8
+ACA1CD904829034DE2B388CCBE8789A647604825949FAB2921C78C670DD741AE
+E988968EF346E13CE3021D1A0DABB13746EE4D782630708F40346358D1E71DCE
+A3889ADAED210ACA14904C4F06EF1F86542C5ABF455201647355CD7AE4106036
+F1B7EE78A25934E8D077D323F961A71FA3CCCDF5A2C468B48D08BE2763346935
+0AE028DB5DC32E84F6D20CDCC34837AE20D6FBE559C10A65DD5ACF4BD1AF9BD0
+2D5280D6763618A3803F4777CB8D89F7F96B93EC116373B47C98A95D9C332C38
+4DD9CBC706C928A414FA1FCC656C3D91023125015202411418DBAEAE0472AE86
+C7CEF889388A03B9BADC361256A312AC34F3A4D860D8913EC169F62D3F454A67
+DCD2AA7A2527B1C5D97A19D1B3BD7ABCF3AD100AFC0E9034072DDB3C5E9798A4
+9E1169F9A3F7B02F3B296B007B58B0C6D339F22A74D7AFE603133A68D0F093DB
+579758C48EE8F4A0BF1105A77651F1187EA3D249A27EF54454648921301F24CF
+C5AE350D7F2AC05B1116EA029A87DF78E35B96E549B9B74E7D804BF42EBD80D0
+E4AB8E4D1296F3D644CB65D974826AE82940A572E9430A66AA87A3EAC94B9AA7
+6A5242253BF167C43B1DB2E3C6600355FD8C83A461FD54E32EFD8E992D8B4184
+16295C2E5C5847E58B67AA946FC892391338DDE87062E01EF9F4914F8627CD9E
+4D0EB45BB62535AEC9E73C10ACB3F88BD99CDFC163B313B7F88815AF3FF8E199
+8A2904B0467BC14F361999E7EF0FDD87F98844CF18D3BBF8C793F361828C78B0
+E9762F6F2860A846EA6A26F10F9329983100DA195D9158737E5447B421A2B46D
+B4096871FC65E79F2CD4DF5DE3B18C5E140BC00099EF7EF7F6DAC95A9D54DFEC
+E813323A101E725A14BDB45D923760EE2534AF6A65D51C8ACF117B992076AAE3
+F68A6CEE21532B4AFFBFAD7D994E53C6A5FEF74D396569CCB6461F1CCAFFCCB0
+5F787026FE3BC0AF27C2DA214606A83F104516310BA1C06DD22AC1DBB2242E69
+E4DE7C8A03181BBA8A0E73371CFC4D0FE2927F4254BCABE0B59E36E8E284E822
+D5090B7BF1C1C6008FBC8A0D6F8CF0B8BC39956B73DD38E2F315C4831DF89CBF
+9FB1BF817A22BDB5286981B17F89D6C30C4A1F33F52EDB6CEC33A62F7567AFD8
+C3D7244931F2A26F6D2B55116AF2C348879E1071E7AEDD1AC891F501ABA5C2E6
+9CF740FB918920CADAC98C2E08AF942DA04B00F8231DA92C0790FADDD7DE5B6F
+14078F485AD485F2287FA5D26571669149C0CE185C4BD0462A2B2E1E6E2C8105
+118B5360B24AB0ADAABB3B65378E86ED85823EF49FB3B748818BE4CB6EB8137A
+7ABF1874BF8864CC28D7AA0A1D369BB98F0E73494A90B55983B1284DAD99003E
+C2F6A69CFBB57F6850EAA9E5E2AC6D07F48118041E8222D73886A117621F788D
+5EF76586759DCDDF002A3AE4B4B92D724257F55FF420132F38CC47597EB93E29
+8B4D73736D3452B24742FF3331E0FF3D232C5796AE8FBA58D80119A0B21C75BC
+69ABF5CA4CE35D2A471109DF7610BFF46F50A54EF5F435E959824D9F16C95225
+3F35F1ADF728DE5A66DFFEB89122F53954864855E1FBD7AE8F90485A720F8CE9
+89B27F90
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: CMTT9
+%!PS-AdobeFont-1.0: CMTT9 003.002
+%%Title: CMTT9
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTT9.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMTT9 known{/CMTT9 findfont dup/UniqueID known{dup
+/UniqueID get 5000831 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMTT9 def
+/FontBBox {-6 -233 542 698 }readonly def
+/UniqueID 5000831 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTT9.) readonly def
+/FullName (CMTT9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 97 /a put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 103 /g put
+dup 108 /l put
+dup 110 /n put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 119 /w put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794DDF2E6BABDA4215500A0
+42D1A3D0D02C0C98BB1D6ED0B7791274C38B038FC7921FF1FB8FAE7258C09259
+4B8E1BD9EDCEDE9ADAD9BD9598EEA9691589649A9A21539161E374075BEE3457
+689F308A4A7AC9F2FE4B301A6C36B0442FB92E3B002623493DC087800B5A0521
+0DB96A23175AC584DE166F59142779F26FEE9783E28DE49FC3A8D6583EE63FBA
+610DA773CA18ACE6F64A4867A1A7817120ABF9DE4D17782866E6CB6B65A9F6D8
+3667C8D3E61E5356E35343FDD4C6436DF73934470916CB5F0ECEA6BFF092E735
+C7C355B56189D1DD5715EC97E50145FFC17BB1497315A9585D713A7A6DFC7933
+995468EFD0F59E3C15865B87925A3F2930E20D5A35970E2C44F1629FA16E00EE
+EE21EFC50D49F5BC02300D0A7BB85E649CB4E2E828C8B1C5469463013E71D723
+2CB11BCBAC191AC751A2AF7FC228395CE9472DC1809052012AEC2CD66695DAF0
+4CA04234F0187F4116C93F59A7F1F8123DE87F111853B785A20CA8B49B3B0CEC
+B11AD345E1A11578D2EFEB0536D125237086CC8CD9F34A5137AC5DDFD8746014
+D74AAE8239B81ACF65F379CF2153B06A238A2D767F294CAE0D79228F0B7D45CE
+510AC9657A1776202FEF42F96D476E7DF407786AEA12DEA0013D3B4C5D0640F5
+BC5BB72C34066270399CE595827175B23B25072723BD24E07F6BCD9EF0175DEF
+93714BAA53960F81103CFB731CED4A267B53727BCA3C97B0BA5004055D4EF0EC
+F725658E53AC86E4061B489AD4154915C3981B3B703E1E2A8D390CCECCA99385
+45EBE35441B062D7D12DAB2B31569387187D74A4043FD71F1C6D352EAE0F6757
+4345FBFB6DB15CAE47CAC4BAE47AECAE5FF5EC19057DCEFA1B23F47364ABDF47
+088A7C6A2AE26B10459B6D41CB69182FD1472F326CE3A15B59255D1DE3B616D8
+9D1F12561038839781E657C896B8C58A32DF5AEA23732A0966D96C68C988ED7A
+09B7E2C8F9F3D0D56879764781566299A4EDD3588BDF70E3D924D25074F30988
+E35BDD827AE4D0B4A06F55A9976BF0DB3C0B1D09CD08E8CB168B50617691638C
+0EC1A791C228177D4FFB021EC3DF5082CA3487AD2EFC8DE9466A690ADDB4C52A
+FE2A6DB4CC275CD33D9136E735279FBB2008D59E667905EBB04326EC33C98B2C
+94744B7F540D86E90DED64572ECF1EAD3A58EC101642B245A9C7232DC8FB8741
+03F97883BB32FB955C22F878FA0FD114451A3B3859B0B5537AFAB73AEC7DB2BF
+409E1FB41D473714F6BEA73CB085139879FA31710E01915C2938C37BAD6D7D71
+45B897E00857D3931A489EAC7B42BCE4E65F73F67FE027CE482DC47598ABCB95
+39E98DA8ECA3E23F0799D5963ABA6E2984DEACBE7B46B40ADC6213E0F4D08971
+58F68C946C748E4B4217CBA2391BE2086C9758F4E32C9B6413E48D84D33A6E85
+84747029C0A9C9B92841D217A902BA8EB333999D62FDA9F82BFC8ED11F67988A
+0CAE42182E414A9766AFFF4B046A09D476F8E3F15A8C7829BEE982D8350BDF5F
+F215F2BBBF68D4B567BAB798B9604C79306C475926E9FEC0F07A99F43473C6FD
+B15AC29C3D07FEBAD1BAFF75AAF2FBE94F104F1DBF838044FAD94B661B06AECD
+D9AEBD02B60CA4546DD6B5B5C1A3833ED07845671CEFCA8955CE0DE5DB8FC93B
+3306683CBFB8E5B79A863DE78D455DE9D592043C2686F88A43140F8B9F3B553B
+7047420E93E753829F8D47AC7621CFE3626F271E31F0019CC02D0B57F67BB47D
+8CFB63E902EA3231C00EC66EEC0D30FE8394558BD3535C888C4CEFC6EB72E737
+712ADC6300162D5D79BEE0CA1F6E4127A0BC90656C01692F6D82C85550AFC97E
+C2693E379160FDB9636FA41AE9C75B7F6643B05971C6D67CE30971D590FC07B3
+E0B36B4D1C7F25110B5DA2130D574FA292B47322975A2BADBDB39AAE69BDDBDA
+A880F9AAB580117708C79204DFFDC08BF4A48919B5C22228845CE8C3109E93AC
+2479E523B8A1C12A6E541118F121DC6B4EAED83491A03192D5C3A2A45D1A2467
+757E7B377C635CF5CAE11A7CB49D49F3A1BB2286090B5F0E4F89869D1771D50C
+54B5C5E091E3048A2C194F0ED00DD64FB95BAC6FA9D61ECD093ED416DA3A4981
+DB07CFF17C4F55C62DF628EBFF06FAC3F3D3F91C30EBB34052BE1A08F5EDA4B9
+08977197950A282B84E21D43C64BE3AE4BCE22C70E7D392DE09D89B7F23351AD
+6AD37225C12BA79EC9951F5DA1E505DB26200190ADE0E549305B7530CB86EFD2
+A896F13A97E51754F70B609CB4511CEFC38BA579C071E9510A49982389980DC5
+336D6C4A2DB100DFEC4055C7AA9C55880F94FBEA9EB280BEF66CB8E1E38A359D
+E5AFB12B540CD599085ADDA7FC2C72E7C873015773FFEECA2C596B75BC39A3EB
+3C43FA2E53C0D7993042F3D652BCC483E48B7F6C94C3FF6D38E276086A6AE67A
+E5A571B9C72E0D7824E0BC2ADF51A393B9E334649F786EC1923C854382B89627
+1B9E701AE5A6C42E672B2C6A33C8BBCA8F69B9061E787D6B92183F20CF4C3903
+FF5417427B84798C82BE28D2C81624E3920CA61EC9EADB364B5A6E50E49A1A72
+A9A090A1FCD84814B8B2708AD787D2B5015DA1305874F58C5EB62F843685FCB6
+465FCA80176CAB2B2FE65E0A270BCE1E3DB97564BEDFAE5CA44395A8DF4505C0
+3E103CC3B914359B2870DA6CD30382EAE8949131CFE31E9E75C3E47A3834BB32
+CF183D4A8B9001710D0A11390C9DAD116196568591D38C2AF4ADD852F31494EF
+573462759A35415900360882739789D6B89ACEFA251C5ED90ED704DD7C3C80CA
+9F6CDED69537D201D520C99E69EEAD5D3C0EB84C166660B3C190166D93EDFE6D
+15BCB6DC5CDCA825E48D33845CC2FB15291AAB823F25CF8BB0A1EAED8BEC524D
+D9CA016027141FAC9D35B64FB9C224552F29EF6B32497254E319090E698FD8A5
+15491CDFE1B988C79A0E3B9D01E12FF084E9FA86CCAE02A3EE6F2917B61A2CC1
+64B8CAF309D1AB48A34227A7729DFF99CB6EC282E3FAEDD2673779AA7E4C1789
+D93FDC37FE95F087C5F88F53D30A2DA9C913BF205FC6BDD060A40184F4AAEB3C
+D080D63B89CA3DEFF310D09EF0A83F3914BD5B7932980ECE139EF0313C20B4C8
+576EE0FE3F28FAF4D3CE7CD0890BC824A85B8EF4636BDF1EF1BB519F93D36540
+ED09FAF93FD71992CA2CE2E83F5355162ECEB32AD218092F45D5A61A44E67135
+EF0453589CECDC6962D0E8DA7E7567603BAF50B2C8F1CA65EA5320984E7D69AC
+9A7D3D7F92565D79E8C9DD2D92CCA7DE9CD058545E9F98AA47904D70E1897099
+3C4C852B3BA131DDD348433C336BDF5FBDFB62120DDEAEB3255E3207B0C84A0A
+1ECF9EC869DB9BFA3693B03FCB27C5A5D3CDD62630DEDE91B4DD5B9784BF0BDD
+FC6EEC3FA7ACA9E15FAE47CDD9B7FCD2BF0EFA10716F08C0AF25FF67CB6F9598
+C607D2FCA452417D2C69DC808A9441A66492394C3450BD30632AE739EAD654BA
+4343459CA36B6D5B2C12C39495952F2EF93D82C73E33236785A79609E260C4E0
+CF3A3C950DE71DDC3939D42DB1CB1CA917CEAD56979A70F8F3B207C805319FA7
+3C000AE2B21D711A6D78C7BFB901334DC06F59EAB6D94B507734C27971F8458D
+D00193645AB92FB8FE163D5C51AE4F40BDB4F2C51691E76EE0636F071F37AAA9
+BA78BD12459CA499210EB0CE2F8BD317387797C33F5933AE7A6264DA06B4A6A6
+1188326147A16B205D1F965872DED7D8EDB3294FAD2FCDF0D423329E9CCF879D
+4E0B966D509F45527F7609DD09694D286F6FF7535EF8971B7DFBAF608A19D442
+C133207EB1152ABBD11C455D0977F66A9B73E51381D1CA4B66E87C0C7175A63D
+80C699A052F00C41DAEF42E7A40E07B1B14107AB0787E24E17C1462960E3C54C
+AE73BE4924464FB177EC62F116B2822842541543EFF7ABDDEE197D6BD8F8D4E6
+59175D8C5957550B70BE775AD52FFF6E7C00DA7CDC16E1DF7446BB5D8FD82647
+3E9F87D5EA365C82A2D991321ECB14A9E3AEADC5A56665DF7072D6DAE402BCB6
+14D92B17F9E063E4E9D8D239C91F5C7C0BCD2FBD936C9D4A0B57659420343B59
+B395BBD1AB5B6003F653699D57E7581F9813CC98D4F072FB78899D6DECC42D34
+F2787EDEA64058B46C4BFAA2BB96E9BE5CACE8D91E4C080ADFC0FA0D4A29C6B8
+54FEA9E11DBCF53D9CA40A21AE5076451EDAB3593E56B6D453DC8EAB8C78B588
+34D4C4F36861B5649BC1E9F3091E704BDA7613ED45C911DFECA74EEA05165191
+825F95A947CAF382FBAF01F3B8B041ACCDF39718D7DC5BA6CA12BB20EEE96439
+BF2E2628AA3BD2C91998E6247A690FCB0CC95F286F427345CC4F1115BA3A6E54
+4743355F2CC991CBDFF5725902C1F5A6DEFDC8638A26EA456C33C27773D6214F
+66536CD2E44FD253531732D5A8C44B336B1BB47B0477350EB8CF74889B93402E
+2356A9CAAFCA562315D8E0B3F42F08932CB87BA2499A875AFA08D11DA73B38AF
+F46D03B7F639A8D7BF88CF07FFF4E91716DCCE6E2CCAB60A64D5E40EFD8B336A
+1BFCC4CB04F49DE1FBDE7AA5B2092A6EDBD913D161A3271AB6411622D0E14416
+37F81E0102F5B0F2F9A2B27819E4BACD7C50E29D6291AE5B0973C657761545A6
+741729620EF2BF1046B3913399C10982EE5F4142CF461EA31042E432CC79A1A1
+39C607D22E45A6DEC008CB4BF6007CDE9DD5802B49A62C8E02A6D448B64177CC
+887AD71D171B99E7ABE2085B37D90B3BD8513995D9A57F53184DA474F6DB5E49
+B73E04CC214EA5398DF7D7541F94E623E8687B511640457A48A68E9D9D6584CD
+15B57CC044D8091C771D175F2EEDD411099BC8F7B4317DC503BB5E405AEEB526
+5E6E1B1F2705275D274E012A98F66075CEB90AFC648B964DDC0E9C4AE7B24CE1
+80B051022E5781A533A21DCFB97893847D685137EAD85BA708A7E118C72FA839
+A9E460B5D17365A0AF1F53A98319FB64A5819B087F554BC056C4BE44113A5404
+BEF759F890C1CA5E7AE156F4F8106FDB4F8DFCCC640976983EADB30976344048
+2A86D7B2AF4A01CA736B98D52ACE392AD4BECE7E61C710B08B66F01857CA460B
+B8376E257113E10F6DEDF14CE2A4E6A99ECBCD302C36CADB713D849EAE9EB598
+F29DC98531D793B79F83091F9B136809E006F34E423D528CC4309AFFB3EEB47B
+9A9DE4D5B25CE953345C326BCBE2B4912641780637783084D3D12693F8135483
+CBB0AC4EE0B5610D7CEB7DF205830BDB9BB404DC1B28FB0824CC187B26C19A91
+DA0025EC739BF3993700101D042DED86D67F5FB87912CFC51AA7DF53F2162D62
+6314A2CE13810D0B8D81F45771391A236422CFA0F35F7A0CDF14ACB2724AA57B
+7C2C28D53029B1146558610E0CFBBF72A85AB9BA308F846228F299F13F68E8F7
+D963B2EE9EF7D4C21690632B640BDDAD0556EFA4EFBF035F13377ABB5CBC280B
+9E0C12AACB153C93351E5BA95A7D149010E204950A59C7FC6581D9703468C1E9
+EFAE37E7E6ACB892B3F8D1248D9A4A72F642FECC5E0B25C15EEB921EDDE84D12
+0E524FE6133C4921FF4921242392C12FBE69744D53739F7E849C1B96C4020AB2
+1FF10DEA608F111749E2FBD8DBCB17F353DCB3075B4F4B8186963EFE95A76A10
+85AA5BB6DB4095291974221829A8E436680F4860E01C3843BE5BB3101D0869C0
+EFCE08D187BC04F58C7A450A59093680A0F09E8E3F12DF5223E7EAFEFA01978F
+D8354753A68022CC92C71F2CA732DADAA8A466D4AAE5999B0DC077715671F518
+E6277741F44AE798EE50DF44CCF71FCF8BC71F76374005FEBC4883C6EDA854B0
+88C0C2B476709AA809ECE41AE786DB1A32B3FBBCC14921673578D3514C8CA842
+E1FF90BE33F7B93ADF6BFB8B1AFBBD080783BEF056A6BFAEF676F7BF9F2DFCC8
+01D255A9F0391951210D60D4D4DCA93AA858B38C0D7B8FD740D5FC6F277C2A68
+54CC2DE1F40B6347201FCA2A0A91822708D820CE645C3E4E5A09FE25721AB33A
+97871ED448F38FC5A349D81F402B34461D840D5768BFC6849439AB6115104F78
+B87115B1DAE12542EA898F86ACE247709817850B067F537E6137196101D46DD2
+D842EA03EF4501E34074E8458E638ACC4EB349A7430AB035BEF2DD4CE00554F9
+18F9FE32A55AC1E7E50D64AAFDA278D77A7149C59DC5B1E3064A4B281A54C9CE
+A5EA94ABEAE4C6D5674C208ABC72563976487136AF2E21F835BEFD232D7F0D13
+1D19932367F51D5379934DA7F1635AC51EE5CEBFA63D4D32F018DEF13624EE62
+31DAE68A08DBE3B4FDAAFC75291C8C6CC7A657E3C7453C7D1461A36E88E633D5
+408253B673AD87A9FB2D0F56DF1305916D14D5DD62051E27BCE09CEE9A1F14AF
+1D7164BA5FB6E6EC8D38750F7E28BE330909F303ECDEE692E347DE13C8C2F82E
+29C8BE6EFD76546F362A12A1C2DC12389EA95ACB4DCBE95620F0C193EAD91B33
+BAAC5801AE827B9AB3FCE5D11D1D7854F8FA8A31670119CC0CA98628F801838B
+AAC7EF90AC5466BE69CE3E3CD9951A5EB9AC08014285422F6DA6F6E221BB30F8
+0042A11F2E4B765BB0D142AD52F4D85785EA71B2E1CE20728B9E9306CE93268D
+99B822A5AB5232EC7E26EE1160850AD3905864A01357F22722B6A54D4EBE58CE
+480EAD9FBF068EE965AC4B5FD2FA8CCB91ECFC6E90B9C49268CA0B0FDAD23ADC
+D5A74B41149BB08454054C451AD0DA4CCF8B60F2EBD061AA03A011D548B6B481
+FAB00AF9225BB5463F27FD67333FB51F8664536267E95CFAA0BE3BC1B8F889CB
+587A3A4FA2B45864F07E11372C9507A625C0030EF7030A0B4D931BCC48F6DD51
+A4D1F63FDC4B59C1CB18E6242E9F4B4B8AD9755B870FE60D640181FB7EB8120C
+C56F51DC8C47FCC6318C2145EDCBEFA7BC4253315BA67FD2B3D4AF6A9F3F229C
+AB75B592EADE15B1FB5FDBA1C0F786BD21A51506B7A2E42C2D086BA6F84D1B3D
+AC7531545F0B01346831FF36A52CAC1E390F99AEDC265B44B0FC9C581BBA6BE4
+48B723811EBCAEA5FEFAEA7E5B987F2C7B3E9A65D2D14A7B74F099401C57E367
+385352D0776D2A908F7A5A2E4D4160946C5591397877025C8C387CA413EFED56
+8B142E8341E349DB4DBA422A4FEE56A573972A0C66590175158E48850A9F7F38
+4B95726787B8F969FDBC97491CC81CABC976CD00A27D1DFCA7CF467A956C1C6C
+839817AEF8794B6151FAE9261119DD5DB787DC9D3B420FD325ED6599FACADE0C
+320D54C2E0D296537E22C1783670A9D9BECAEC63853EC2F05A990260DC189D63
+7CCC0BDDF2CF7585071ABAC14630666737041194D0777EA4292AE60BD7F7100E
+DB568C90F0D899EA006CA423CFFD6EC70A5D3D8AC43C747DBAD3B02219E47D8D
+DE030631F4678C357A58ECC52782B31B50CFD44EC33F41585E51B27E3997D33F
+461BEF897220AEC80007F13C5A1EE3A0430CA899047DF944831F8B010A7DE74A
+BFD26001472DC00CDC9F17CC435F61ADAD4E9AE062ED477FC621FDDF9242C449
+1BB3F77FDD1519A251B663A693D84B42BF0962F537757F38CE5C5D56B98AB10A
+3B70C8AE8D52DCAFCEC22E7B09D3C4EFDA1841C74CA975E4F8294F7BDC796500
+0ABE197ED3737A65F7BAE601C91DB3983EAE147AE54A37CE291DB94742CFA9B2
+9789CF391A95DC4C962D0B5CE2B9132D0E36B86C9800B83A849EB440CC766B5B
+CBBC9A49408580D725D5F913A4CF6E0C6109CE4ACCC19596D4CA99AA88692E6E
+AD5C5D73C945970C5AB0DFC8CAA5E13E9D2FA4B7F5017C5C7A63E930C351BEC9
+88D2A964ACE7C26AECF93594A3D5119118EF7A7419053488DD1CB91B7871D998
+20DA57D42661A44A1088DD0DF19468B49FC1F87AE8E2EFEC60C91C701B50F9A5
+872CF0AE5392FC00C77340E6EDD70B29DC2449F391F258E341D77276F70FC252
+89846C3DD8492E4B3DD17B6FF26DBCBC48F78B8955BA2D5F87AE4A801B70D53A
+719699842A26C694F82F1937A7BC1A912695912F4ED5212D87F97261F3502B58
+A214E37B3680B7E12601B2861AED05C9650C94C1E8A49498E1CD08CAAE2A7446
+4050F73003DF668CEE2293954358BA1C974E8970BAD3F16A89D5E38F0965AF55
+ACA3013D763DA88DC72FE6A704C8AA55B282716F23FB80E028B41CA705C29468
+B9BD5997380526A2082EBBE00E51DD8DD5B31C74D5124C32B9FFD4662CC562F9
+21F846F6034C67360BB46CEF9E14021E439F183500DB13A904C27FB6EA94CF58
+4872F7EEEAD3FC535B7380E4DB3415A4821EC58B308FFDC9F4A6D9EE558F7DD6
+02D14F972D7E215ACF63BF91BB7C04DD1004C61AFB0DD1578E390DC5681E2552
+1AAE563FB8EC492E9FBCFFF2D6B5B8B8B22B4E05EF60EB24E367288AB80CE6D7
+76A752CC52AAD69574461ADD2C4871D2BFD011686B7F24CF8C7E6757041038FF
+ECBEE7F3AEDEF6419DCD219B251D3F5BD9F5075AC01752C1FE3E6092B4B89E70
+149E6F48C2241F14463B1E995482B72F81DB73914AD4F530BD0A1F01975BEBF6
+893FD1CA2CC7673CAED0352DECD34C37E58EC596C5C803A25B4096066DB49564
+F99F2ABE088155D87694609DA3259B01CBEF21290E11807F74BC5CE518A042F2
+81A3131E5893236F40D0FD696F7483AD210C35B1EC52A000C3918156E8A74A23
+211A3D09B39FABF3552EEE7B621ADFDE29C6B1131C3AD8C62AB4094EC5479B97
+FA912C3208C49D7C4A1A7E58E3DFA685389B8BDAB9FAFB9A44FB3E7FE0969BC8
+AF6CCD6790DD48B2F6E2C2D25D7DC7EA394AD779F603927A2B336ED1FFC14786
+6454F62E47648B86EFEBA563B9264907B496DF21E0DCF9BB0E22C346F4EEE677
+D8FD0DC6734397A4AC4EA7674F4E744CDB34CE23212DEDB0CFBB893947421169
+4A151998B81BF564CD912B422EEF78DE4DA322C003686F94F553A5400C769ED7
+241B4E16878716B42F395BD7F2108E754E07763EED98C9E2C82976CAC5887E5A
+562DE571134D6CC9D29532D568158FAC8666D9BA4C9E1620F96E57B3FF454B2C
+31CB7B6CB9F2D469BF47CFE6F33AFCEDD072156DF5410E0AA1B8BEE1C8AC7EF0
+1413F29C4C192BF74360BE6FF67DF527C90428DA9B81837744DAEF1F040AD4A1
+4B7002FFD9A512021D3643E462510D84D48D18CAEE3512E113605BFA7214E9E6
+B13C478E5C63CDDD0BD7C7435592DF907252C89B8B525F775D07CB7BB82571B9
+AE5851105BB5A0C214021CC2B59F5D4AE89C0B35BF736185A9FC506B09D938F8
+457A9A3D9918E51D6B62124A616DBA9AB989DAB794D2B39EADB6B90E8E00B4F9
+39267A2C777740A10AD7C9DE3F9AD4D8D05159829B3E155301A663A962DF61D3
+27A07A8382492AA385CD780631E360AA6DBA1EF96797EA7870D4F2CF98710C65
+E6CE09586CAFB53D8A6B71F1CBB34BA1FCE35AC823E16EFB42A0A32B1AA782D7
+F416B7CC91C64EE6B80BC0B51E4A10547B5677D293CDEA40F11221D46909B3F2
+5BB38EC3C6476CD66F9E6DAFEEACCA0AA5AFA4F83984664A66E4B54F9C265133
+A8F4B8BD5E1A248D02EA353EA83439A36539001691E9B814A300BAD3D6B8D22B
+EDA0B3A7DAF716777CE2F12D328F680D6594120720BBEDAB667ABB368B0894A3
+420AEA0815BC9F6E915C0DBD888FF306C0564123AECFF7D000C13DE8418101C1
+1FD641C6A7AFBCE6B1594B737CF9B4795F79756FD7918475155DCF835C6C5DDC
+E76DCF92F1DEFCFA58069AC4ABD269CBF7197FB8C667150257A59784F8B50782
+07E51B01FEC61DDA085DF5088CEFE4875AA30EC8D40E7526D9565C423CA6A430
+B694598648D332AD1F016FEF9346A89FE74E811ED16D156A67BB2CFD80D6B8CC
+6C0C401E61BBC69ACD7B0F0B0EBB2837BF4A452688F64FEFD1EE0BEF213D1044
+CA5B70FE3B2F971876C60CC9542BDCFC39E9569DFF0A79F7F0DDD0A90AC1AFCE
+654C09D361E25EE1B649CA8124F6EBCA3651E8D5806B7F5F1098BC20BE8D4A35
+4082281F57AD4FB0528892536BCD1C1388B4A01417B10A3C7850B3E6D88D022B
+05253990E2B7982A7CE34A1E63A619A0D40E056C90F12625B0DE1AEEFC9D4E45
+DFDE2636A20B4E85FE6C617B2C5EC972230B9AC6F2C6B9957EBA6F5E56CC7C89
+EB0DF5653B3C3305690A43355E8CDDCA858239E04DF37E81506983D7598D70EF
+27A7F3F8F8AF30ECEF0D86125DE05A550779CEE124990BE109393A9B16664D96
+D02F5806A0642A8F050EE116D3304715A53D9E551CFD621F7B664C9AC6DB20AA
+9F63A024297F58B84430A7B5C3A43485AA740423DBABBDBEFDE227FA56B12541
+BF13D836BED9DF893AD490225C006330ED2EA20BAE55B26DEA7C9AD23C8C60FF
+EAED07028B037DC18786AE59D5BC2B8AAFF4FC2B2BD7F7CA13E741954F789824
+189D597772E38EEEA7765D3564DBC60D62C8FAC3A319762B3D1C29BD496FB8CF
+63DCAF776E4101B32A054CD93130CC00A462139F6CC0DDABBDF0D18176E19761
+289F43B4BA941DBE4F86B6A6F24557E78E83A652EA6D18AB49DB59E407185E1F
+554C62F0D7E49E8EFAA8
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: CMSY9
+%!PS-AdobeFont-1.0: CMSY9 003.002
+%%Title: CMSY9
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY9.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSY9 known{/CMSY9 findfont dup/UniqueID known{dup
+/UniqueID get 5096650 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSY9 def
+/FontBBox {-29 -958 1146 777 }readonly def
+/UniqueID 5096650 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY9.) readonly def
+/FullName (CMSY9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 2 /multiply put
+dup 33 /arrowright put
+dup 41 /arrowdblright put
+dup 50 /element put
+dup 54 /negationslash put
+dup 55 /mapsto put
+dup 63 /perpendicular put
+dup 91 /union put
+dup 95 /logicalor put
+dup 102 /braceleft put
+dup 103 /braceright put
+dup 104 /angbracketleft put
+dup 105 /angbracketright put
+dup 110 /backslash put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
+7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
+DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
+511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
+1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
+028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
+1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A580F0834F28818EBF
+F29D3B2C7C9AFD969BA6D3B7429E222AF78F6DE00CE2C8008A5966422936DC5A
+DE549B458EB41026E123FE75E703E046F665B7DC78298A145548DEF8D579E008
+39279A5208EAF898A357DF3FD9CE4450811F20B454D86B2947BEBB11EABFC62B
+187B12458E022CDBAA6EDF4A89D79300F635D8CD973E35FA8D9B1240B3D30D72
+4F30444BDF0B51ABA15A181A3196A6CDF9CD1D38D64C83E745A767446641991E
+23EAE067609DC2E84B44D923CC98407812813D5AEF0EA21E560B31BD77D735BD
+E35EAA564A570DD3294C703E16BB9F251D54407269C8B23DEAD063018D6EB748
+4204A415AAC8384025FA922E7074FA7B8A6C31FD3761E7B2737D4D9C9992B7B6
+DBD0CFDBD87D42E1A451FC5C7EFAAEC65D10D278470DDF42DFABC836CF15D042
+6900E0DCDD36E7153BA186B8358E74F91A1D43D62EB0B821C0E97FE63F1586D0
+98F01E8F6B6F2A435343A25CDD80D3AEB42DC8E5AE02F8837B84EE5EB508B02B
+6980D2349984FE1A0D3ED12355D556BA483CA078B7921FB336EDAFC22AE05C1C
+5614F5025B890009272DA8C838B81913C872A54F7E932237FB1BC2CE5D64CD04
+2D320C8E2E610E9EE36EAC7C28C833F8A14048E751B61D0CEB342CBAAB34D104
+311B421B8CE4D903D2E2518BA8B734E2637E2CA55426C4A87EEBCE637F8D71F1
+54626C52083262A5A9A3B49142948BC1AC0B7698811AE81FC3D3B1C14E6C274E
+CFD6C480514F3649D7725A0A14C82C9D537B1C5A9ADC816340B8B4E484AF55AA
+905EA936A83FE2BE788D084469008F407447E0077417096333F163CE94CD3098
+4B9712EE23120829AE2695EA63975492DB2615214B11C87ED0ADB776ED4BA0B1
+40D09D1A617D4F57EE1A9B05C8D5F42AECB9C6AE67757DE6307B1A9C467123DA
+773239976AB0EA052B23F263031ACABEC9EEC7A43ACD0DC2D7AD66664FB0D937
+6A0F463A173E8B90B2596DD323D2350435D9D31B638112D70492F44769FC0C6B
+40A291FE78AA598CAFC19E5AD195BE7264F0EC29305D36C7AB8F2A733797D75D
+94C8F7AAFC49C13C108F514745A394F460294C6F3F44162BBFA878F773A5115F
+062E934253B786DA2B9A6E8E843E06B97075BE99F21B330D6684998C5C340B72
+09D69B655097354CB682D42120ABF5109E5522ABEC94D05E7211DACE8737A1A9
+0BD3EC16F48798E67C7C85560D79366504BBFE5F7F5EC1B05B9F68F98149A02E
+E53F321C213456D802C01871E9024F965258F71215F40EA71057C15E349F06A3
+A016BF1B7E44DC4766FC92EE500EBF7C47D36B1EA34981EE6FE38FF4903466A8
+C9020B91CFC731642003AAEB145EC0F13D6281B0838BB4236C220F6F467F7DCB
+C79BB9CD5B6A180DD2ED7F94DA6B5CB833E62E898BE832DF601BFBC8148F9430
+C8AC459F23EA2536E301C9DFD3FFBAF4D01E7853B60A69B5D012DCC0054C0BA2
+1293D3B4EEDF7C5C78118138544A60FB1A500F72BA39E63EF5D97D68369850E6
+9B6336DA577128DE68FEB71877360D97204B5F3C06E808BF95AA6D6013524BCC
+85CBA9FD2CFEF383645E7E960E7AD471A6A3B8B8C3A0A0B8464836499309D82F
+52004FCDB68997BAD9E4B5B881634FE1213283B6B19308BB67F2364F7ECD5534
+467EF07CBE71989FFCBC6224417C0710EB3EF2676B9DE846E7FFB1AA6608EC9A
+76C31724A19ABB2AD08CC102F5DE8E4E513F90A53F06D440A66B000CCAF6AD12
+6F4B161B56FA5FAED65A24FA183B84F4B45407AA69624068EE0E3E47BBE973CA
+C72137823F1D676131C8CD5070092CD73FC2A93E0480310E21CFB14C031206AB
+411694AFE7B639ACF35C28705A115E98BC69C66F6C58E9E79902453798D76267
+29B780AFB6B895B34CBEA51530E8300569EE4D500527BA294282FED81F730A46
+6ED19AA5AD45852739882216EE937FC45D75116BBDBA6FF4B4423B398E383CCD
+A7D705B8BA85076133E823300C3EFC9EB9399575F5F6BBF868265304B299AD77
+B6B4EEA04C83E163E8CE2BFACA65F9DAAE3AD2B0F8DA1F986E6A12DDB2AFACD2
+217E37B093F46FF3E20E587A9490401C2833F5844763FE2C528E151214E8CA95
+018E1D8D47C9EB5FB4F0EA2A6D064680DEFD2C5489298F83B58EA7FA8CB019E0
+671028C59C3E007DD86CD247889ECFA6AD6DA2433B02180DCE6ECF9E495D0976
+D063A61B007233DED5E3F351D790F26D4011582735A69F37E7CCBB0AF254B925
+B378522B748BD9BF152E2187DEA12BB168C42AD8D67D18567393B35DB2AD8403
+5A7093EB59FC276525B8796FE81944F7F03349BB077110E182A61754ADECECD8
+A5255DBADB523F3DC251A7D97F17DC76281CC632FAEB382A972D60A15FDDA57E
+2F42AA338D889B47F6A3C1FADAFA8D11D63EF8D0C8C0FCE61FBD8AD34EB8DB3B
+722BD86CE5B1268F704ACE82A39466DC2D96C9849B9422567FA5E728B17FAF61
+59A77E9B3289DB807DF54D076139E3DFE176C3131FA4540C1542AE5AD6200FCD
+B92D5DAA77DD4D3022049B6EA2A037FE96E0CEBB1608C663F1373246FA74D70A
+BAE7BD37F3AC23E003204FA8270B4514DE1FDC5401B69CBC98A67A5CAB5505F2
+87C242B6ECC86E88EEF44B9C79DA5F88CFADAE8B4CF437A7CBD5E0C01A9BC479
+E92EA48C808820C567E74D62ED7597FCEC53DE9A0B3EBB9A3FB50AEACAB82BF9
+2AA56D029357AAE016582592972ED01C0ADE565E87607F17BCF4983E3321F606
+ED664B9516D404B277C2C1B0F873D469D64A9744D9C1897125FD471E71BE060B
+A3A617DC8D812E184664BD83EC74EEB5197611380F2D859E1A61A14404493D04
+B5537C04541E557CB5039905F37E72B762EBD2321633E12C38C409338AD5AAD3
+1A507BB2B8F5235F0614D0CEC2BE44CAD504C9B2CD3E45437A493A33B9BF8A1C
+3FE66B1E673449A54E8E3C3470688E94EE4404C888583F7C96B43A592D586D25
+8AC1F206EE5FBF3AFF7EDF9BA91EEC6BABD573D455E0AD6802E7E23A662D4F12
+FDDA00EA054CD331DF86C099C4BE8AB4EAF5D8EC1BFEFCF50302BE61E6FF26D8
+1E88C544570E8D6F7D875466C70AA91D6CCD4DF4BBA34FC67191D1692D3FB76A
+66F114152956A5E38345E7495BEB1A389B7D0A59624ABA784F77C1BF7728E556
+F9D97D71858D61624C22C6914A3A995BD75922A2C37EF2CA91F923A4561CD3D5
+2DCEACD9C3A65A9FAFFFA4822E79D6D89D6366DA6362DB16FF061840582DA35D
+E4EE8308040C2DA5F298944EED470D6E4E1FF58DFDDA96C20C85E2DF2652E12B
+2EFB8F890D301E8CE777678FA786E552A62A60DFC369AF4BDC069F5457FC86F5
+1FB1A38A2222EEE86FE1AC9A8227663AE33217C1F381115CCD04D2F381A27E97
+36D356DC64615AD63E1952B37AD4F967317D76A6DEF039CE8446AA634086BFB7
+7B0B34F595B61ACEB346F51ED10ADDB7B852B5B2BCFE416D0435A7CAA4C9D9A6
+152D9AD938F39E9756AC752F1604D884992BAD768C720C45479F5AD8E53A4832
+1B44D6109DE4460A662DA6081465E2BE02ACBEB52259E046767DA24E1416FF44
+D5AA1D303CC4249510D703CC6CD0FD7DDB078A91089FD86ACE1721F875F019B9
+82D7C5B2530567F2306F47DE90EADDCD12AA1C693B1982827DC36A74C86474B7
+0A8A2E084CA403AF654E2F8488806B943E38ABF544ECD45FECDC441DD970B180
+FF3FFF1A50D5E22216B240A527F95DA1E43770A3867F225DD2A8AF01A965E06E
+A063997C4CDC0B16B52F9B9C8B0DBA94F88F26A7A01E596DCF8F33DA3DA5B02D
+2ACF771F25A1372F521A80B93DB0337886FCAC0A2E8FAE0D7E1E0C31EB43AE3D
+B4C2020F322A9857A9EADFA7782CA70DE7421B9A83DE1873EED8D096701370B7
+7EC33B9C104E9CC16DF8C80ED24D1F91677E355DF037621ABBB75E09ACDBEB82
+30F1AFB82FAEC4D9E2DA93303F72C1078679EDDA35ABF2AB38DFF091AEB273CC
+5A7B29C0164977160CA75F62BC20474C7C1F127AE7E4DE865FBCEF852698AB80
+B61340CAB6F86017FEF570104E46B6FB3320E78D387CC58DF1C4FAD8570C0126
+B6F54AB5BCD47904A9255366AC9C88576456D3CF605822269CC65979EC3CC740
+AE3D09257BA3AC7A364A7F5EECA3E658AA20B53423553C416D98FD8100D80A30
+A1B19F029B7473070D7C60CDE51BBEEFD2B45B1C82F4FE32A5BB6BB5BC32BBB8
+F600ABE893B83B806A5435AE2B40E5CEA9068C6ABBCE73C9B3533520439F28F5
+E171DB1DD90B2EC04A1F36767B2B97D4EC0FBF217D4E80ADA5383BADCD7E066F
+5F4B23738A14F19AC7D765119AAC9AB6CD0A8AD4EAF8955CB9F5BDB0156CACFF
+236D24E8A12AEBA549FAA9D7053D10AB7094B5D9B86FC7375E245EA8D7FC64B9
+859A1A37C006E0449AA8DB8B89730348C71C7E014A2EF8D871AAA856407C33C9
+392720173DA60850938D0537564455C3957631AC8F8C0B3B29BF6163828796E6
+0944C3000B990715188203B32BC4E3FCDF173A4A9C78753AB7D76BB9A4C2DA4E
+3EC638753D6FF6356EBB07D0A9E8D3F50EA5451FB6C836B9E5EBB8F1331C8CA0
+B0CD271AF316502CBE87F652B5ACCD43176AAA32C6530C69E77E3C85DA496F3C
+06980ACA739DECB5D986622AD81F204579218660EA791774C2D11878DE23F858
+BBC4ABC7EBA01B7FEBB32BC914FEA8E5720731FD43F8A5CC53954D13455827EE
+9C7BADAE8322E77EE7413D6C86E6D378FF8044F50F529E765A1CAC29E8B1D91E
+CD40F70F2D4890E0FD04502933212D5AB176DB143831958605C1667B8841E770
+CB4D513DF0C3182C23CA653A7A714B2A8DE29D6B203F5A9481E0CF3FF073FC6F
+476B0B205136DA43650A940035A970584DD7D06B7CDA8E960186158B75FE3917
+9B1D0FFE45EE1606C875DF635B80F5A9E5B67A6ED748F52A53A710A45AC20BCF
+FC96755E685A3B0712D5E09D860986C61C631A8D2A505C57D57C1D4AE78C552C
+DC5C9EE15B82A4C3020331B78FDEFDE53974C391F375E8118EB7B2D23DFA3F15
+389043EB6F33842C82B896073760197B13D3DAC172D77779DF517AE31BAC43BF
+5BD6F75B59AAA59C7EB81B776FADB720282DC06BBC9C33AF5AC0BC59F6A0044E
+3898A4B5868EF32BC4F980DD863E8EDF6DE3E753A7B3E39F8E8BCB3D3BF14EDE
+3395E73BD07440FCE88FB28A96878E823C1E5519650F2054EC2CF733EB8AEB0D
+510E5659A3179C3FA8E31EED621BE0EA648D76C370C3CBD8043BE206F28699D7
+5871DA483AA5D3580CD55902C85DB9EF5CF5D3191738FE64DB42410F5AB8ACFC
+CE07E524BECA5633B082F4793002A4A7215AD1BA31159A30D72AC60EDD0B2BAF
+73C9934C85C5372B47BCD3ECEE463CADC05CE8352EC1399ABE2465AA53E5965E
+79400336B1F5D1401EE2DA5807F9701D1086DE505F6AD4E64DD4F3E5E90CD64D
+FDD25E6FA03B679597CFB8C5C1F03641CEB7B9B40787E70BC6B063621382E3D5
+1287365426E44A2EA208C26155CDF782F404CA7B3C6D379103EF4A51CA3F1343
+22B04A0B55CE5A7633175838B9E50480E9B80446CD3B541362E7A10BB3C58A42
+88C0FF580B4A0296073F5B6505E4FCCA5D4BA2F7E8D59BB04EC9ED4E664BC2BB
+8754777594DB26DA0985663D321CCD13FB261BE8A771470DDDA783493E452A87
+D0AD01AFF8EDCB7BB159F1408FBCC52F126C46234CE6BEF241B49472102598D6
+91FF2DCBA2CD0E6658A61DB3591EA02E4DF202954B655C5A3C34B14CB60CF9C9
+2A6683AB282DFD79B33FF3A6AA524582F174F11A5568159083496B242ACD2770
+0ACE8473D363AC11250E5DCDCD3CB2281B71FCEB8AAC1367D0714796AF3BF01E
+80BD4B05A0A45E6CFA6C672850B9DF113F5EB15923ED885A0E4488D4914B62A2
+FAFB6A63F8AF0CF0DA498E1BA68C4150B6E59CBA80BD17026FA09920006D2075
+BC6F1010D0A10648A20D8ABF8137BFCD6A5DB3606F6B3CA51E8A4645D32E5966
+6DFF7537F65DA4268A86BCA5791C21F5FA9F4C2F1F6C1AFC4D4BADFA63609C4F
+5F5158608E6FFD9C5BF00646C3AAB983DDA5E37A9C2EA81796B161A06201FB6F
+8EACE87008EE7A008BFBA69AAC04D73A8C0447FADA0249D8861ED405537E23E7
+BE68C4349FD64A14E3A53D6C6484E704BE4AD5FA0269F56D3B752A070D9872FD
+A5CEE543B413F13CC4CFABCE885BA4533EA0969FDADC14DE6846B330552CFD60
+A75BC8C9DDA76102E48DB6B81975A1F3FBE182CEF410841CC6164AFA0CE51FD6
+8E8E6F0971277052E21126909B5EE51508306B886E945C11DFFE1C91BD0D79E4
+554CC7D6A774C9B98610A1E49C3326D62F157CA9D89B56699F32DBB9D49C716D
+CBDEC052133F8E18E8F3D7A59008398AF3E4E1192CFFE4D0B7D2ECC8DE2ABC1D
+4DF7F2EA5EC0DD756CB2FF9F95FF10E506463D3037BABD221C08506FA603DE1C
+DC45A5998921C4023E501DBA494C1F41C0955A761AC3D5B13A88EC4F0BF40756
+BAE8645EA76027B8AF74726521DC129B9AED4BAE67A511EA56EE9D0D8D30C7F6
+FA8BB890375A263A0BC4E9CBBBB8F8F8613A43B10E964F8CBD6BAA2B0BAA70C4
+4CFAF6EBF4882B610AE13689823D37B046FD26DA85BD96B896CBDAB6662573D0
+2CB87D45A86A016146513441BF7A748F1E9C2AC7172460EA628BFB22F9797905
+F6DF6749F13C7F234A2CE4829D41E0F53EF3C5F52165297AAC4B5AF4747A9F53
+60370B4C0110DBB42C25308F489A856B6664371FC2126BAF4710790021255653
+CACDE1B9ED6AF5C696C3D8BEA4698DD9045B3004A5C4C03EA994A5445C9D4EB9
+865266850047E28F2D82A08617E9283FE637CFAE4F7F261CC2D616A8C746EF23
+7360553A6B434201944C04B1522533C61F615A20BA3678AF8D4BAD1FB548D82C
+72D41699FB96EF40ABBABDEE633F05B4445BFC4E6E661DCBC8EC473BD2BBAF7F
+75F7FC86CC7B1F3A2343EDEDF6B5F7E98A0BC4443E21611F4D807FE7F597A37A
+A4DAF8A8E6D04FEFB320E0E25C61E156A72A3E4A69EDA04B0E3B72B69FC19E63
+AA33A682663A8F37F4FFC1533CCA2A80DAA675DD723A7E13D9DAE3BB0F5F3E07
+99BAB9B9BCFB29B73FC76EFA02F4F632690651DAAEC2B3688B636F0FCB156047
+F8EF7239716BE5D3DB2FD1DAEEC11DC2D65CFBEDC1C950CA737A04FCCCA509C4
+7E47664E160322366F70CCC641B9B49192AB839E0AC609AB2FDD3783095293C3
+11C56740FB50D23AE9FEAF66DB13F35367B562F15161AA270EE44713881B2387
+7889FD10198AD4D750390811714DAE7A8DC6F5770224E93408F8CCD4F8712A9B
+3C583C983D98CCA7FF9DDDEF8AFA292781B1D7089336CA631413EA0728353E8B
+3650EDED7ABB6E5DB5B85014A3A9C4C76EBB664A5B3E0F3CB2ECFBB6294F5C4F
+69EA3AC8C071B122B129A28E04FE989DA9670EB6246806A516517DDBC52DC001
+4C027D51EF1F98506F21E63D57FEF267B913F1ED4770D892239222F3A9035C35
+FFA38D1AF3ED9A8C02235D7422695D30A2F801389DADF34CDC489EEB38089B6B
+026D884EE1C24FE5785C383B988FFFEB5459A1644CA44D353503AE117E87F956
+393DEF6C47D4E1C5B1A33835C9B8E1B98809DFEE43C4D6DBEF1C2B1ADE4B8F13
+3B5D224C25927433D5738B0FE019CB88B1F373E4AC2BDB5BD86887FCFC55DA94
+E610926C5F6FE954E0D7B1D35B1E1D04A56EF39F058F7945E5E28E5D55D65251
+15766372E6F0277D8600B8F007005FB62AD3C3AE43403CEB8CEDE1268161B9A0
+3DDFFA68654EC7DF5F7070232519BFC2C9C4031CF24EAF36298E46CFC0018ABB
+573A78C271861565CA746D4F1667F2CC880FBCDAE2DFCF164BB944C5F227B5BB
+96526768BA33610DA9AFCC96BB51D59C946E05361A8B2CBC0F420209A2ED5CD0
+1ACC7E1D0401A7FCD4D30B20DAAA10AA02B9A6E6EEEC07FD93D19F9C0A62F656
+94328781509A5C4F020EF1D81AA3D7E7FF5CF266C34948AFDF91CEA5FD433B46
+0F57BF6F0A58B1500F615B1B8F9B04215F91ACEC454312EC1DCE0B1E40B05714
+39E5AF3F9C520E811EDED8DA4E014B8A55424EF20F1E31501B20811C18584A97
+96D33103F21E6C426CC298540C1441477B022F220DC7C268E27CEF100ABB401A
+60B1A27DA0BDBE5ABED44A6F0B91F9110E17AA50A7E01776A21B4278637189D4
+5A4CBFE1457827EB635BFB6D5C8C66C3D184704C86343AC38AE8AC2D37CE3EF0
+1CD10EBE04BE03C483F5F7900AAFC2D7B2C5B3501EBE5CF18D4FCFA3EB853FE4
+83CEBA812D6FD89110D4BCCC2DCF4786269F91DE2398A718BC27A0E73479B7FA
+6F9210A0E46CBFEC5B350E7405B552FAF8D2BE2AEFAC2EBC976AF49864762ABC
+AA44379C962C5890A9262D1F2211DBF2D5C445E730B5B6D99AFC2732CE58012F
+D29F621759BAE107CC5C0D004D58EFEE683B29C746CB6D64238A36732C3ADACB
+F2D0A451F6AAB01DA97B35769DE37FF34D44A9F0B0413B027D22554CF0A440D6
+78BC5BD87B6F730EAD412A6925BEB520E9375A517F0A7790E2FB1207BF53A868
+161FA2552332B7B8981734C2AA173FC90F958F5B5EAE852F6324D7B2EBC1B4C9
+1F5F49C721AC03C6E292CE88846B00411B739BCD1DD0EDE5E4C5DD682160D99E
+C747C752921F75C3F15D7AC792D8F6A2E34CC7E49F05D8A595B318D3603B1329
+06D4F88BF1E50EB9E8E592731811DA34B546C920E21E8D43962BE5396FF3F898
+B8B051F1C1221CB573FA5B18A4A6911C4F16E2B2D43AC3EA39A5305FB868AFBD
+13FFE4AD4810454BBF4822D9E26C4927062C0EC6909610FB8DF637AB076F78C7
+F9439B6AEC3B17280F728F4614AB9D16AC4A30C0C298C196449836965184154E
+1626224C2DAC6D959EB1924BD4198F6F71535F4E584C8B1372B68E61F2CD379A
+86A1F3B4ACE861CE1234263539C1856B2F09A29D0113AF2D909333C327CDEB4C
+E88DBBDAB7696991ACBBCFA7897435724ED9FC4271B1722C598A4675FCA68690
+71BEB306923439D31D6C09A086112FDDB8959A297A0BBE8798BD2FD9D72AF35C
+8897EB643E41D533727ACB37FAFE37E3A14FACE1810438502C193167C0767050
+88E9AE33F6FA5E91AE702CFCFEED855A8CE825DC2F68A75FF2AA16F21A69214D
+1E5AC45817E15209FA3E437C79BFE5935BC77F9B13D95B702FDF0E6E3480FF46
+36DC11FD00B2A098A863ABC98C57117054746641D67E13FE823632BB954B22F7
+0725B60DDCB4F429AFF9F71BFBF3718E3BFF39042C3A959751CBB40B19F84986
+055DD3A166FA01BAEA8196F9FA5E10C072DC49719F000785B3D5AC51F81D671C
+08E1E75F7769ED943AF012CBE6977EEB50FB68B48E2202241E8355CAA28443A0
+41B65F48E30D77F34E543C2501A7259A04E7FB9A7F5062526C7A3AEFE312CC0A
+819C88AA319E212445C4581778FA5F9F8B0C4DA39CE66BDDC633EF0ABFAA7CE6
+5DE9C0DB3D65B4CB384864911925ED8E9C4E28034BE95F2A5CDE40719A2B6960
+9618A3AE0CE2B5012EC5991D8C9158AF05E783054C7CFCF36885BBA426520F31
+3E34BA09E2EC53E3A4DDAF6B276ECD6224F253AE762247A7BA2701BE8CFCC707
+13B1B3049768C2874D5E1FD1EE5A4EFBFF85B262B6E9B75011365C7E0873F7B4
+DBB07CB9D20B5CC120227AD5C32ACEAF25D789D912E9DCD1263D5D7C2D831B3C
+228A851D34B6EECC77D1AC51E99152334D45A9FA56AC95F770A50C93EB9B68CB
+3B4FEA221278B8D7866B40DC7F00774208B5C9EE411391156FDB064EBA195C92
+26E7D9CE3C26115F0BF0DBCECD71E5A4F96F42D76E0076ABBFFBE85D37385D15
+69785E29AD1CAC714B31DFC7BA8ECA05EE8215E04533E72730C16379ED70E02F
+CF95FE3D3F6434FF150BB47A2E9A2599EEA08AC9E14DF4A2B28EDF82DA12B650
+97904E35A270BF6FE2EA1990E5255A464F27E567BFE6677B7605248DA8369313
+5A954455B8D0944588B00F6C855387A2B053C5FD1A6DBD383EA4FADFC803A491
+119AE01F83D01F2F63B05D6BCC6192EF41850E8DA9424E61A50C7D97C26753FD
+EC0F09E6840A5AC32C6B02B388B9B5731B9222571FDD66E8CBC6308BD4C7CB6C
+8354E6DA6890AEB4A9C4D5784837E9DBCF899DD8B7F73621B99220F77819AE67
+83A9A945E10483CDE64D00F3E87E3E8D43AD494F84F9BFEE719A76294DA42FDC
+C2F54FECAC4D403595265F03D9A62425AA62531B2602C0A74D79ED32A317F1FE
+9F6CF08FC7C78AC2BA94A130DB14391C5E71B898744823DCB925D4BD5015A987
+8F2FE35DEF91D1F58E22B3CFD7DB2306744BE50C390FD41BDFEE515AE274A756
+45B38A972414A50B02DD8DF772459663F296323AFDE4EFB791F0D70880E6C92B
+3CBD80202AA47EEA07020F030843DDEC90D8BF9C09FC6EDBE6492D3D477D72B9
+8C2FBE5C85910FFDE290D8B205BE7D93B34EAEC1B8E71E502BA4456CCF845EDD
+36F02B070E234D3A5C32A6EC20EDB56E6EE83F6D80570C89FEE53727316CD70B
+F669630627B5FFEB21240259E17D706C7F12DE82F4608D08FDD4950D934C2575
+E9EB4C017259B4BC653F263518B30DAE04288869540670FF58D6A78AD0F16C11
+2A16CB0BCF7D246D30B9332C4EE7CD0AD7846A5092D46A308A27A7203CBB24EC
+99DD975B28EE34751F7DA715E4E943A8201FE86EC2EEC283E7E770607FFE8694
+298FF8A5AFE9856B68D0BCB7CC77B44395B43961551F52A21483A42C6E7DBCFB
+59BFE42C0447495495F74ABF45CD1264B964AC75B4E0FA14A96F22A220ECDF64
+06970B6C1AF5049E9FB2EACB607F7B7BB545B8D059217603F6AE68237256D11C
+56ACA071E9FA64F19F43486C1D037ABC87B995E7066E7192121FB99305893E4D
+004D9EE06A1E29EA630503762E073D763DA88DC72FE6A71277C83D53B78E2AAF
+3AB064553E4BEF3AE532C3FC0ECB4D9F362C6BCD7FC59F789B70ED780EB8A31F
+390A1940FBA84166844D2A0C68B6E470B0187A7AB9198BAE1E04F5D7C14E7D3A
+E0577D68A5F09658CCF0BDCD9DFAD419B1CE3E5C3A1AD8064358479415C938D9
+B3E1F53BE34091C8D5485087CB630CB89F39C4AC8F29DA6283C2693EB79A94D4
+CE9BF54A26315EB91BE575F9898E2E07408C0FD8563E
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: CMR9
+%!PS-AdobeFont-1.0: CMR9 003.002
+%%Title: CMR9
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR9.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR9 known{/CMR9 findfont dup/UniqueID known{dup
+/UniqueID get 5000792 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR9 def
+/FontBBox {-39 -250 1036 750 }readonly def
+/UniqueID 5000792 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR9.) readonly def
+/FullName (CMR9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 12 /fi put
+dup 33 /exclam put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 58 /colon put
+dup 61 /equal put
+dup 69 /E put
+dup 72 /H put
+dup 83 /S 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 104 /h put
+dup 105 /i put
+dup 106 /j 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 122 /z put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9AF72336CC4AD340
+15A449513D5F74BFB9A68ABC471020464E3E6E33008238B123DEDE18557D712E
+ED5223722892A4DAC477120B8C9F3FE3FD334EACD3E8AABDC3C967C61FF003B4
+B10C56D6A490CE9594D57A2D431B9E5E10FE3D8832E227A7087611431ABCD029
+85F4865E17E17F8CFBD2CADC97E0A8820E3ACEC873F31464466A9545E967E53C
+DBDDB8478E69063FBB891566BAF88B7660A4405B16834761F041CCF7650AF955
+F9E853AA9F5F4382E1FE7D0C5BB4023818A2383F91249D48CE021250EC9EEB1D
+2835E18FB73026250B32A8849067D5E2258797C917F998F2D4121D96560C5FB5
+B5D3471216639A8671B6DFAC5E3554EC36D9A72518525A795590C74DD70DA3A7
+78BFC43E51D6F2BA52F17D4DD00D389D3983EC54912AFF73684A8A7E345537B7
+E62361C04A47859DA084BC72EA53512DC54132EB2EE671793603015652EAFDE3
+41C4B6B679BD60AEC5153EA0D2200CB1D097DAD770F5F31E6FC475A225995277
+B867B731D5401E2D02B85BA85158C80FF7E2BBCC42B98AC867E67D25DB656072
+55A0D32AB7AA483A5A9686CEA4E2B3031D90D84DB3E2DEE7706C91BA81CB8DAA
+700E5F61E07D6998C9552C81B66FD10A10033D49EF3BCB0FF22ED0A3737523C9
+8F851C61C4BF8A213BF6EC70C956AE48B5BD276CC0437C72BF6515B10739919A
+F00F6ADD2798CB211668842349171A5AEB0664D2C44397E55A4A9EBDF54A3EF4
+FBBCDAD9DAEF4B0CAEF7112FA828F2F8D9F633D37E5516AB5ECEA87342EF8DC4
+3A50548490F5BC9A8A1F98AC7AEAD9D913BFA10CA86D73AEB5BACC1FEEFDCC15
+B3655522CCA2C772E902FAB2A6FC153597D52763EB44AB7489FF061F7F58E8F2
+AEAAF4D17F36CBFC00D3C653F335D14240C87DB4339DA9D30A5BD1F502BC9013
+461B9DB2FBEEC01BB18990439A0E9CA6576BC9CF6B1A3DB9386C4A5D4AA6A5DC
+CFA45FB75F22E10ECB72565DB441A194902C91427B4F676E531C661F7A2C3C85
+CD534D1C89B6779B2EDC8E44667B992C20C70B663BFBF680A6CF4383EB7CA26C
+4D1F06B5EF4025BBE65795F1EDB5CCB97050872D6C07BC2974F905ACDB7A765F
+291365D6C8152153E7F017A25FB4476C60FD9EAF9A121633DBEAC32F62850223
+D6418566AB350F90F4B35F19598478F76B63E347D4C61E203D4DB8ECB9889181
+C387F4B663A502C638761D2782BB96EAC81A0108D7BD6938F67FEBB69218D115
+D8E89CFABCE15C6ACC7FEB983332A51A6A73CF4E341574F366713D7FB29956D9
+9BF238A87483D37E526A2EA2F101EDD34E34CB92730DCA7235AA0027189BE405
+2DAB4AA021A30C28B26C50808E1E965C02F6212EC7C72F5683339425A7739380
+A422E6191ED8453AF0CAAA424AE44DFA7CC5C2F6EAA8D73A5101D8E9517DBCFB
+2858D0E8ECB7DC430EF23A9E4428CB7DED8D035D6050251AC101A2D0E884721E
+2F21E573F948048BB8FF888911C508CC198BD750083B339500C426AFCD5634A6
+AAAC1C7E91249667B231BBFC64B4317192FE07FE9DA0DDB5E517D097AAE46577
+9555F29D45C67CDE9812CAD03F220B20519F2FF32DCA56A554D4296FE2D1F3FB
+B209B5270E0E695EA5A0EF1144957CE045881AEB8D05D72CE57F4D34617AED67
+0D3AF0472CD8D60933651626550366E300E72A9C89ACD475C2E2ED9BD44B472D
+9DAFE943F8E02A6DC38E447EED964624C37C3130E48211CA279BB6A0BD59466B
+42F3D89B5746F29E084E22CF58395AF0F29E55113F3A3F2F52CB3A6DF3D026D0
+C81754B8E2E4A15F6943BE9D0087D5166060734FD07C4C57D7C7D90E8C9C1F35
+623CEEE3ABAE75E1A18A1E3B50B7266BD2D8E812CFEB4A46B856885B185640D6
+B9C22179551002B94282F57FB433B7FF157D2F0D240836B72AF4A331668AE5D4
+E6B85415F4E8B9D2F9AF90FAFAA0A3866DF417CA5A31348CF9B41B8F5F4D2F97
+CCF7ADE851B5E2E2F6E319AAF5792EBB9DA2C6AA8B73D889F3CDAA42932CDA7D
+07A7E59183CD89520DDFC36E5D513BFD8AD0886046585F29B4D7F42CC0C27AA7
+53915AB1167D292FE91957E94A57FEE2D49C20C9070ECD736BDEE0F046E60350
+EA539DC298156A4E0D019E7D481FDDA6861E20678516AB80ABEC1F09B126BCB9
+52E8272A06BB6DD87ACFC423B4A4FC9A3DC8DCAEBB807C5F748F1FF8B17B8B88
+F426206BF1B7B7D239D26BC3CF0776C467A98CFBBCA5FB6145D5900137ED19DC
+D002F10704AA680EC753C22E29AAB15712EF22AF73D80820A1EEE953463D4EA3
+81FAF99518D4FD0F862A324FC44C4B9542A92C5B60CC983CC8F647CE5BDB4D6D
+B92B380E0E5F7208A9CD91FA9A469548162C761C1BA05AC9D60B766764D821B6
+B4E17F56CE455F06EA1EE2D38FE47581746C4C5FBA63AEE2B58E877D1A8FA83A
+31C972D53B64E92EEEA147426A92CFBF76FC614119C6E9C6476FD6A069C803BF
+E949FBE50B5AB1F1463F9747E8D353F7BBD991C4F90F920BC9407D8E24720293
+846D052214E60390C3CB926D38C83AF697425D80C2B4FC4706615B905516B733
+46ACA325CEA68FB21B2D17CF0B68BA4DF249368625CF83441EDBF2B86C957C1E
+44CD722BD2537CE84FBA07EC7AE15C840041B9F7F3040072E6084CD55B301C08
+A64A53BD4D3DC30DCAC6C152F316ABC59B8EE978793EBD568849DCC2A75A495A
+BC83470D503F8E389F54B4A4A31624E83C601B43AC1E52CB811FAA7CA6B644A5
+1AE0BFD4FC774C9C9DFC2769ABFA9C83F900BE2DD4010416053A1D4874E6ECF4
+D86E44B4CAB15D53E5630C144B0C15B58DAAD785BA298B1893D1B09BA5D40344
+6678FD2D17FF6674433C976D6DAC659175CED26139967C9B2B9CFFD78FC2570A
+E5142141C2888DBF2DC8503F9137CE7CB21A1EBC2D65BF33FCEFBC85C9CB736E
+24E8595CE934AB032CC70BD6A3B0F3BDBFBBE185512FDB7BE3D4A6620478453E
+75D044BF770B44C9741E31985E6DAF5A318D7BED12B02A4BCFE60D25EF12843D
+EFC9BAE2A3F2EFAD66D7858E83EB46BB09D2FF8AE9C43844A7001C86ED97AF51
+C511E3A89A1BE349FF5215D1A57843EF51456B9838133846F19BE79AAA5C1AB0
+5F400E5E8E7B0BF96EFCA3B8F0894BE589F2C9FB6C97BD16D38F0A237CD4F034
+099C41F85C7E2C7BEC8E02C4F327306A53B4B48B26A8926670CEEF96F6DF2281
+7C2DAD99EF8B81BBB777227C2475AE7400DC393D9C0445E925DB1E955950F7AE
+53E9AC4306794239346A419F7B5DF4168382EF5956B81F83BD4BB7635B3BCC84
+7D84D05AEDC02D14675D777CD19B08124001A4F4EA96990D96000C082A12F00F
+7FEF793A7FA69D56D3A38D012168C5458B667190AFE80E02C816CAFF0A71953C
+D80B085CD286027E2FDBB05452AA762FD7C813B2E19A79C74190E04E746C4933
+CE1E300CAF5DD53B08110509BDA404EF07FA1BC5224BF1205DE8E0C3276A13DD
+866675103B960C5F36644F96B4FAC16F5D6E91F74629B318FCCC8E8CB13EB76B
+B0B7B90718D913A52A04732EA3667674994A325A7973C601A7DDD50F658E0826
+ACB8E53D4914B0274AED98D7BC3B2B7F9D48A7ECC2F8ABEE05CF2C4F2B90360B
+B7DF779EAF3E103D1D83EDBE32DDA873768D8C37DC10A5354A94B4153049AD64
+FF3E0BB51AB91D7C0B4134D8731CD0270DAAF19BED9EAD800A14B65B68EEE89B
+40DD624111670DDC7C030DEFE0D1B96420E249332445C155BA96231C88E70643
+D526BDF3CA1E05FEE72CE2B881CFC01ED780C10E89F0828AD55FE29043BC56E8
+2750A6DD15AADD54492F6092618F4CC6A31766B17FC60766D18C307EFC9BB787
+39047DAD6B38419EFBA46B4E2C932F97451FE78AD75FA90DE409FC6DD46585D2
+1941F5ED47A8FBAEF5A917A240959E8D9F9917DEA3247D9CAE6BF7A88DB4C4A4
+F9F5A6DCE542420A032FF3392FE0F3357B51F884D6181583A554F75B1DF192E9
+253CC828FF06B0D992D5316435980B044BB191508C7C45CD90F797F88856424B
+14A5707459C50EDCF3E3D8D1667AAA83015405354CE744C66D9A5728F29E0085
+6DBF740717FA0799E3BCC4ED7841588B496A5E549B953A7FD288B4A045DB611E
+E3B2F35963FF18ACCB1C968BEEA2CBF52B3999AAF89A05320BB2E97F52CFE06B
+9F10E3A79865A3059A957F97972D80ADF678A36E2B586C101FC6AFA4D137C13E
+EE7102C9B8EF78CB057F8B7476F146E8FF5C897FD5503DD198128CFF7B5FB339
+FAD0AF0EA967F77B07B367A4AC9F668F8BED99B98E87FAC750EE045602D76C3F
+289FC9D97694C96AAC0AD1BD3FA94DF2CBCEA24B40F47B9B59E54EECEE7AC4C3
+A3F5D19160E4C1EA830D57FBE10D8D46AC5CA0260F22FAA45236F0F542BEA9C5
+5A88F878F68B36114E0573900C65E305462B22A3429A17C7A567694414DDDA46
+5F30542B8FD4F00F6C295B2E8D3A986B953D96822DB2ECD48E8BB1763434E652
+152EF3717F5E7FA10FF0B01D9F64E22C5DBD7254629658887BACEC0ABDE972EE
+67299FB84A05B3EFE22B6976DB4CCA384232DDAE38C31623A4E39EA2E82C1EA3
+BBB68F1A7DBF405DEC37CB7203A895C36A44BD2D63F45B3888AF91D37B510A59
+3C921BB44DA620892AD87B665F69F6FA510B071ECC403CB2BE2F54B3969C9E88
+713244BC97C1466DA8216DA7600C221E7E7EF5C789D2E12B36422023A03E11BF
+2790FD6062FE6BF62F5010A92F0A104B76E255A0975E04F6F20F760881BDA7F5
+D834D1D328B6EC19AA7D5E5678A84C74C82553DBE8BB5765E84F5A8789032143
+6020940B4B8D45FC3433D356E28C25F42D0C19F911213D85951B2B00D01B77BB
+A4C72E964F9D95422BEDE582A05CD52E03D28A996E6CC8FCD910CBAB728073F9
+F9FAEED5470FFA55930447C5BA816F826F983D53EC9941EC8364B3060FD74C95
+26D4F5CA753B574FD2FA4D1D333785241D8741B79E628BC852FDC35478C5ED9A
+C1BE88C5EE7302816E65C12B58EA16FEDD4672EB3E24B6EDAD5DCE263BA8A970
+350B651E5A9F3C281D85BC3F44EADD0D93402E36489BA5185E7D388974B0B700
+70575188BB610CCA20F081E2CBDA13DCC6F72567962ADB342E02C1E763B673C5
+F7384E24C6E1730A3A790D690A2103AEF88E0C1D4480DC9B25E5C8C9E1919C95
+F83320179B4C7C4A26D559BFB24D7D596FB73758C9990C451E77FCDDD17763B8
+9C30A9534E3CB6680D3D419D4B70B0B0A0D160FCCDE169714E373F65B7144CC2
+DB9A44E041211E1517D3148E65A2486CBE5E74E625261CCF65392FB4F3091473
+F9E8DF327D59A58558E5C9F7190DB577D5DC658F5E36258291C708B3D224653D
+064BB6079F91293FC733710893AD1C96169B30CBFE4E9D52E7EFAE4AFEE68FEF
+1AFD5E7E9DFCE8DE332B0FDC0514F9B3090AC85BBFB527FD8034DD33E9576325
+A8769AE09AF1BA792447DDD932B98FC9486B39E0B04DDB3EFB7A30DA0940B33E
+E27490E0E841E87B1C90E5248A91742ABEDC10F43A8AF0F9C5B4A4930B1AADAF
+01874B9AC3B8D0DBECCDA6CD7E96471FAA15CB7F8A599C5746327CE392224C3C
+40BD60AF97BCA6FF6FCAB2FEA114D7300B89E91C3BC92D5B3E2C83BB37992D8C
+72F661EFD0AA034C738C019DFB79BF40651A1A34BC1EB9F5AAF58F8B3DA32645
+24AFF8636486F08BC21533B5FF7391B0679A78DFDCB03DAF6BB7475A1D51DAC1
+EE4BE9B986655D1FDB6936445EF99B58B303FE79F11275EEA96A9F6808EA8775
+D873D1052FAC93769789C700F20EB2ED6D15676F6E563A769CA9298E463FC311
+83281483B1C953370D196727A6A0E66D32D9480AB1B6DCA77868C1A2D5DB6483
+5F31EB6B18EEFEF1CDC31533E69B0AFC6B30FC9912DC89BAAEEADC30BE14F448
+1A6B70D36A5D9B01799BEEA686066114910842D022EB464A9A1E8F0A5628BA69
+AA9A1925CCADD44703BC67A89F3B48E4680726DC4360274185CF3C8AB747A8FC
+4B928AD62B092EFE48B01E33ED756DB696171FDB775396BBA138E056F71EDAE3
+7A1E4CC272B8418114B0E81DE0BC43DB3C133167344488820A92DF10FFA26FB9
+65FCA2C87D302E956DE6B4FE145145440C83DB43A68F8B29A592B127BDF49063
+B7F11E155CD4CAE305525BEA56B7C412A6260426407BD892A3F2B444AC3421E6
+FB6E6425EB5C3053C5644666B80405530FA0012B54557327C98E0F4F064099A6
+4ACAAFC1870359C1B6FBE7606BB8A26026AE20C212210449905E628AF1B20490
+8CE908B7EF3E3DB551C85AEB0F7FEB6A8D215B97998E5DD9C7CCFB2A9402B8B6
+1770D4023777D4B45A73F471355353412C51D4CE71FAD1E0AFBD87B5F86307F3
+10D0B94F1194EFFB64AD5DA54A4200490F609CA8B912E149F8217ABB1E9EBB3B
+C4470E7365CF5E1E761AA1945044B225BD53D142F6588C50E0644740F7DD55E4
+8F73201E5354A8BC78339211AFC4935F44701FBA043AAC4BA4698E9D7700029A
+C79F992F62627C91EB855F64C4B251718FDA71EDAF082A0C7B00550949D617A0
+7071FB14F05620CCF2180941341D8E60FC88823438FD728A4042AFA8B853107F
+852F631518B61B234565291B5D5B89DA818DEE3AE3B68A2869DFA63255CC882C
+3B16BBA08FCE3632E57FF7A07F857A1F0FDCADAB39D77960BD827CCC8661A997
+648BF5BEBC0FD2286C2A112A8DEB9CCB6330A049170D5D68EEEEA011D3EF3EBD
+855236B9380087CBBB6BE24191F728B7EAC5B50F7A547AA0989B7C7D3437DBCE
+1669341264E290646F2C8C5A3ACAAC7CB63DC692FAAE13E9B40E8BD39FE16A0C
+1660CE66872D061056C04DDDC265C024BEF8B7E3C3AEE76FE5C9702002C28BE0
+B180295EE00E567FA2E5CD1638226D24A7C732E1BD8103B476EF5702768689C7
+D4FCD47F2AB94A2B1FBAE6ABF87B09E7713C773FB65CA83F7318035B332B9F99
+24A2C8897527021321D003AAD7C273E4BFA2710B9BB26C2CFD3D9A5D7ED1096C
+552D50028AE2476FCD6D12A5D0A897521313ED1A3A8456A70C16EAA50A3E6733
+6DC89FEC56AB54A579EF264377A103939D5EE00A90B4F2206D0023AF9491FBE0
+800C6540FC945199E20E945F46CEEA2E885F6800B9DF042BCEF4291A4B1A62C8
+6A7ACFF872B25FA3AE69E0093F3D0FF13A3313430C06F1AF94D500431566F659
+E8C859A5F80F5BD2E85C8E32603D3745628E8FE6FBC50FA68F9C3811A2BEFEA4
+5852CAE2AE5AAD3230ED050593BAD0A9581EB7B327C6916B8FC348F4C23E6FA2
+00FA28AAACCB3091C1D83F7BB88672A53A2EA3B8C7C24374E400C57F0F01019F
+E52D5C47F389D4C9AF126F4080F9AB8D1C8F470932BBECCEC72A9796F6E965A4
+82057DDB43D68298A00880D4C2E2496F26F015FD83C5549215753459310339B7
+6B2961EEEE74DA31FEC8E2BDDA42D4080A32372AC372524BDDA580EF6634ACE3
+128C69D04D890DCA337212B109585C665AA83EFE47D5BABC2627A86EAD11BF7D
+744176652C7F9497785A7A06A994ED8414BBE8B26E74D48CB83FA24AAFBDD507
+84A90195EA3D77BCE8C2BEDDD1DC52E8164DF15D65B916EBDF3A8A76849653DF
+AE3CAF9561AF3B705F75B9E5DFD6758DB65A2FD54683759912E0D0035CFBCD86
+5D239CDECAAD9AE5D95377E0D3F61C2AB7EC99ED28D2B4A7B6004A566B43CECF
+7E35419EBC2A47CC76393F4778DA801EA75B4C1FC38062AA77CC4EF0E6CB0C81
+9A797C01F89BB58A957D3DAE33E4256B1F5A7D66C8989C512DA066D6DC771548
+F2DA3B490834E7B4CECD9293A5DD581A3171DB1C41F348377A602A2DDB80C0CD
+7B960942967BF3983FCE91203F8C465362CA8E91B3C759943797C24CC83176CE
+2D044CC07FCD6CF9DD7FCE413A0B2CF777529685866C7855509CD57489F07108
+D995887AEA9D20B3CDA77BCA95B6F655020E2964AD82AD77382DFF4903C68680
+2E49EDA9528B7D8F8724EADAB1EA2DE9F4DFDF29B22F885988C306058ED73421
+F9D738DBD7B92C3D31DE5E0367B7006F757508FCB5D653DAD14A8108292723E9
+740CEBBBBE4A72103663FE29397D8ADC9634CDB5E5E32533B70D1E617E255A4A
+7A43966ED1B4286A4364A8CE71574F2DEA72E061762B22C960240AB5E7A530B8
+D23B99D098F7160C4C3C275A1F76EFF27D853689A023B80251004C69E46C9C22
+0B8A6645E492931996E6DEFAD9D535B58A149AA49FE620EF6A1B044111D83197
+1C4BA33E9FD206A7B97E69443C94B33B7844AA6061EF7555A6B9B15BFD37418C
+A33E352E0FBA35589BACDEAAFEC6E0F31862296F17D9EB26257FCB0D067F0588
+09C206D19C54BC03C10FA55CD7B401C131720FEE80C43A6B22A55ECD147F2055
+02DC5F70D8D7A6DF940E23FDF870E2858CDBC2A330398275848E8C0FB114A5EF
+5F29051B43DAA627DC0F82C0B510FEBFB2CAFF3EEE454AB8DB86BA2DBBE3551F
+D75890D82B97F4E301E708AAC708CD1A121ADA6EF5A42E25D30D7D156363DCEF
+D2F3B2510B57E77BFBCBF2B25ADF3D65CB26FB9078866AC4AC771A7D3C768CD9
+E05B7DA8C435A28E7E3BB2F8A6C2DE3B0B6CF3D7FCDE4AA4DB8F69D76C3BBB42
+92A172F98074C2F7CFD63062E2B4F4AD2D211E3AF62967A9094A1E633B0FDA06
+4321595D57BE46A004F3145E84D01E1E497B33F12501B646A45B837B8C9FAD60
+8AF3CDD6A51B56107CDE42394634F060085FE5ECBFF744B0C5B6E0B88A2646F9
+EDE447BC88437393D604FB7128D9BF45A8C3F7D97DC5E948141063413F7E9867
+980D5F49C7EC00B7794DE47B279943CFABD3F1215CC6917D4D2261EF3BA790C9
+225B6413003010BA0635D177CA75816F315788F094FF48106945338971D7BCB5
+F3FBF883E0376E17B39AC86A143F4A0FCF1DBD9A2DC014E4213A88589F54603B
+E5C0FCB61A03E88FACD342B9BD2706467E805FF860B776CD54CA244AE14D6E15
+7D22BC1766A6477585B01BA1282E6191D3F22E335F72B1DA634A0183613FFEFC
+3377B0001957711027FD08EC9C500F73D409ED537B0A1212B1CB9033D3422E0E
+4FF3655C97BAAD3EC3E30BA0E770EEB302023FF6228B4129D6AD974DFFD97C21
+A534C827D2CB7EF41643A28E2F7FB2DE624BE8508FE0DDE6957747F28BAC5B91
+9256A220DB336B5400DAE4FD098C724514541549EE2521FE653D031928B5E91F
+9AA647032DBA0F9B5D7C906542E2F5D243948E0FA7EC0ABDA2FD4A7DDEC78919
+5D7563E187A2B10233E8396ED168B969C2CC93C7D769974842E187EBE6561E80
+CEC3AAC0FBDCEC19C04BD03C4D23A1BDC50F2DC6489B1563E3C7CCA8FCEBD280
+06919A4C66986C2EE9A510A4C0F9D4B4ABBE34548BA12DF227A05D06FCC2DD19
+696D2E006CFD6D455EB7D85772D6243C64A9997E7543507A36A011003A74A590
+48C969AAED856A78A70C8DA6591CE0E29DD2B10321075A8354E69DDA2B4A1261
+4CAB73C79ABA05786357665312FF395474FF7E82E9C5CE6055F987566C2B8C83
+D91079238C2C778E65A3C355E0F3ECB7224FC5E7E4377C6E1F717DD65F6A2749
+94C93FE69B9CF025A82867C81B23EE5C520C6D50720D65D687A790E891C5726B
+66D27945E03A4F713FD239CA451DAC4988526401B2A0D3E6D8A351C14DAC4BEA
+7FB1AD0C5C4C7A725889284D623CD8E5DF6BC4ADF8132CE70CB34EE0281A6006
+3AA71E48DB8A35E05C2BEA1A99F3B9CCE8FA93A71128B87293E690C242ECD53B
+617056F28BC1E140DA4004919084419EF327912C030B41E68F43CFCE640C6F98
+9A7C87DBCEE97B97156C9B66E94E18FFE0ADFD99BDC3BE16BD5F7E47ACC670CC
+96470832DB7A0BB67E9C5E7E8F336C45B8FBAC64ABA3CEC8F82382AD9C7CD52D
+6EB9B230345211D8551EF12BD09E8AD3F0ADA05FF0A37587D7D7752B983848E9
+3E5D42027B3305DA8960309A86FFF4AA265E7FA415C413EA92DE53A8005D241B
+9F91FB0604DD2674CE7F71616E426152A523DE9217C99059F4883366B8B5D35B
+A91B098F71416AAE5F944C4F719E293473D27243228B17D8E8C5DC3AB15F1BFC
+A127193017576B8E316615F0A7B29CB988B927AF3B136FD878CC6A0232FE3F00
+75FF9BD2D6594A5CF074875159E3B567E8B4228E22102068FBD2FF3E4DDE2EA7
+46637C38D7D848FBC63099A680BDA93F59BC23D0F7FA9018AF4F7DFCF8A21C07
+D84A2DB4427C94099EF2C8C73B2B8E3FC0C00CC2F7E815278E3FE25FF700A65D
+E6A0AE4F0DD5FC9C9D7F314F73556762C502836AA0D9F0D8238BC37257503DFA
+0FA600E5FE697E9B4BA570D1484C058502CB1B1C72565BD9207E52AB06215E0D
+235013374B68132A3057856B38D6025E42E019314ADCE73A3DEA9EE8770EA5AF
+5AD55F3B9DE39492B50BEDF2031090FEDD42B3C8B6EA37CD24B38DF8769AD8F2
+3E8867403BA84D2FB5377BA5B3506DC9C0E68D0A6375CEB7A15EACA1F473DAA1
+370E1C2EE4F9BAA1215D94B61764BDD12D6CAF905BE91E722DA12C47B4E9D365
+C285EFCA19702E02A2F56A0E9B2C442AD35C19111170742E9A8158CA2471F6C4
+364448EC7E78EF92DB82C4CD0EE786E7FAB3FCE65638D350B7D776D5D03EB8FC
+AF8D7161DFA12CABCA9F05ABC67B9B6C8061B5D9388CEFB872D17AFBBC17A93D
+713DC1B708DF2FDD45564002E28340074FA527F6D3D465FC378B49CE192E7CF6
+76FC7FC21CF874F5A27ECB56B66A5BC9BD3361398003ED4ECA1AEF7E2A435E5E
+F54C08D566C22E66608D26301A19AF5821D04F95EAF2B63A1B3D760683E4EFFC
+CD65430E232F203BB02B7D88E23E84CE4E5F433D2A3DACEC303A03CF0CB6FE86
+F99B7D3462CE1E93E4198FCCD007A6A901DB2D2C75850D187D5F6023D0B1AC3F
+81E83F77C4D6F0068DC9C65C037CB1B8C37767969B455554E4BE7AEF25B2BD6B
+2BAD4597A538E106E092510AADC4C5079A7E0342A61ED7CC7943E6E717D85DF4
+2AC9FB655B1DB4BBF383A6CE730B1856533B11C7BAE0408284BF6FEB4685175E
+A3E66A3BDF01C8867CB36C2C9A866B7A333F216007AC6AF65E991A148E3057EF
+D663660887BCE34B977A1FD8C8C64892B75ADC70C5EF7FBD556A39CAB745A350
+F02A19475C930AB197EBB31DB584469C733C1E59F2CF7737EAB2D0C93DDA3545
+6B1C28DEFB645B57029B5F89BBD1BA5294227BF464642464BFA7EF6227FEAA44
+0AF14B9238AE443FF085C21DB24F1D902E3CE8C12FFB854219431D3EFD9B1E46
+244000E5F54BC0D5308FFD22841A36D4B3D0076D2D4C39139471FE8921197111
+AE407626860B99388DC7E0DE0FF83384D553BE7109C3F7B639546FDDBD1C4FC6
+1E5989BA64E0D3360FE1374B9CD32374D0D3F7AA684F1530E33F47B75F789256
+011BD971BED1863701C23B80B6BF797F3B0CCF57441AFD2AA2DF9F885B818306
+A4EADA6FEF913D1EEDA368E5BAE40A44761CBB027C5E657BBDE469A5456BA87D
+C44452FBC5008944B61CA8EBF32668E9A3699DC93C47ADB451445D1BABBF585B
+CE99C75BDD12E337017ACED4B04368BA109E97EFCE6F83921B65E26DD77637FF
+19ABEDF7FFD9A4A065DC8C72D34683AF2613D89858E815B666D263A0F8E09FFC
+DDB95859EB3295E0615B162876DF08F7F9FB3E71BE89BFC39867592C662F793B
+78C2C1E32FF8A93832127158721CBAB5B81AFC43E9A300F37CC1089E432FA6D2
+0615AD054F8E66905004258764BC1F03B91B6FADD57A9FE88FE9DC81E3695C00
+B28FCE08810A2BF78AEFAF4D7BCE4341A6C47211612487026D6C846BD445D030
+F63226E7DB67853CE3BEAB4D260A36E34CD82BD33C2A729DAE25F906909D7BDB
+FF3A1036AA77F3230FC6220F198433B23E2EB37A67BB1552D5D9500EBD740BA0
+CD92B03B6F4790E938A89120957B6558F644537F8AD32F0FE0F122094C976BD1
+666CF278B3A3215426D5394C693CD63C317DFDAED9C7C397E32F12C4EDE29B05
+BCE324B20CB9D91B2DE89C15408A686E568B1585A8AC442895FFC3DF565C4D7F
+DE146039944457952316D29C666229834DB80C22B248B7EDA597D0AB70E76F6F
+AC915EE940A720606564EC03D8A6890672B17757E92EA2F51BF0D01B607C983B
+C118B87768724A97106E3C392441C95CD62C30A8564AF6FC2510AD7A83EC103B
+A0ADDC62535C0A6FE3D6A47CD69552295529C8FCBE42D245A45948CEAB816809
+4D253FF46E41FEED19AC706703C9D44C29F9F1859F4BD0EB01BCD81A99768D37
+BFF27DB67B4F95FC5434CB654D4184057468B307139C8398C30F91519E8EB125
+E1B397D6419A191F47970CD6B02D4194E6E69711802814A4A740EC402011CBA4
+EE54722F48C729BFEFA1496EC635150F8A8081AE70A1DA27676A376AD7A167D2
+DD1578EB5D1F29F9151532FE1F5C03B5717ED9E45A053299D4B581886954A1AC
+A747A20D8A4A7FA5D4C3B22B2F13F969C7B36B02E83FFB94625BFF05A2A4A12A
+039D194EC457E00D07041920CF9C864F06DCED9610698A60A1465C978866EAC4
+E7A98BFE12C58D2E7E184A1E23911469DA708AC0480119E7A53941B4D9D13C11
+F41236493146F32456303D59DD78288A7DC6466CD2E43C394C75FE41779038E7
+C6E4B118CC66F958280A091426D79A317E70C57F19BF7F92E5FAE09C43CFED66
+3479DD1E1B01549E1EED953599A6A7D6A3EE87F0F9D16CD0696BA3333F7A023C
+CCFD17A3D6AAF00F5C7ED3C68D80C9B48413A11B9B41BC60D7FB332795C1A7B4
+5D4D77434E5EE9C3BDB52E217C2F395517B37A6B8569E03A72C4FB6775C90305
+B27303AB8B01CDC9A31FA31DC40A0BD7D35CC2116CF2949FC31CAD57A6620EAA
+C7513322E6C8F8CFA809F52FBA1FAD1332211463DE154AE2B7604A98BC099725
+1997C31FC2F04C4DDABC8BCEDB15E175F93DC6CDF00017A11AC0346971D81C86
+F869D5BC059826108A9937DA6B99106A3669112C5C95B27B149AA6DFBC2CB85F
+84E5904CEB90ECFE90BB79E5F6EF8F9752DE2F9F6F12246B7A51405145D9336B
+CF040295A7924B713CA2ABA3095F5258374147F6163C36C12F7D2F3874A31EAE
+2CC95712611BEFB800AD9B84953A76AA92A9FD5E987657F6AE96CFCE251F2094
+6D96298DB951678846E675901194C0F10433A5C7467E13CF3CB065302B8EBF24
+51346C50EA48C571C2DB0DB2B703B7C5191D73B796DE9F06D2110DDA89A3CA46
+98843507948C057313EDF59A6F73149182C7F18270F26EDC1C35D507864AD197
+0DDE10B925FAF1B5A27ED05C04C5E17D7B445B4500BC9B82DB45717E896CDD62
+A1DB815F3EE978C28F7B4C1FDD35EF17C002F655B0794C801EC73CEDA6C7030D
+3EEEC417712B92DB21985050CC5A5FE4ACD2FE2F3C28133B56CBDDCF6DDB97B8
+20373EAEE6901143DB8A65AB5C2E6ABA52770D97EFD87088B8186FCAB3897977
+F512AC73798C96684623AD0E6774E15511DEB92F6E466AC1BCFC46CA6E8291A8
+180B356E1FF39E8166BF801CADDDF3C73923EF03365E4B04E241954B49F36F0D
+D23CACD8233821F25DC9ACED14747F30F993A22C57CD936DB69A6F19AE758A3F
+0B02C5B995683BD6CEC81F56C47C07F8AA830E2B1CA02A98FFF90A87C297207E
+FE4EF87639F7BAD0C543918A0D8A54FA85884CA07A9E98481533853BE61D6CA4
+BD351B79561657882382EDAE32BB94BF380D1D09ACC234C3CE99457125FEE968
+89596857B1C490238659089C6E32AAA8C699CC33C811232A3B8CBFC83D64BADE
+CD2208915FB4D3F3F56ADA05EE411F2B5EC72B6C1CDFE3FCCFF242987A7A0782
+F4F71E36128820A7FD567C78FFB7D9BC1300D8E4E0ACD32AC158880A85FAD9D2
+51F8C2F001C5018E82B44C580E315C8E1A7F51C691FF81B487DBF249DE72AC93
+FE00B3437642F385B3109252E0657D4D368F395261677BD1ABC261E023607E55
+93A39A3AE751C54B50AC2D01D224F546ADE62BC3C2ABB92313C7522D619033CB
+01510D1DAEB064588A5331C084958EC7D67DCA83B02776435B7DDA2EA7AFFABD
+D0D4DDFB73EE917C660C3249A7C7D1BFE22EF56D74B9FD8A7F05DE67F42D7098
+AC8A89D3137F8B8C5D9F3C8D4E5D3F687167DB239BB38F0ED80B1B44679B96F2
+9A33859EDD01CB613C1225FA3926BD2585E964C201CE4717C321E767FF13DBF0
+C96D2CE9431E586C05F5444BDCE8117F9D89ED495066BF303ED29D9BF99E0780
+C931C0A3860A0A24A9E9B0879428B3BE8DA0746E60608497D7A0814F58B2E26C
+53A73EDBE949F489F1DBFDE324906EB5DFC796775E466FBCEEAD133FC34E11FA
+E6F202A83165F167D35321D0E7322560FEACFDF07221CE56E1A852A1AE78E082
+461236FED33C42BB91B1C59B688B501798192EE9A33C5B2253FEFD187CB610B3
+B095F8AE1C822060134274C8B25723F1CAF25EBFE63C3F3BBD476B76D84E05A6
+A65A0DF0DD2D82B7349276142DB3064D175B3BBF520C0F5E55D917BFD6C851E5
+0D93798A408A63D802143CC24848AA7495BB784A9BA5ACA5FAD037F6B16F5EE1
+E55F20F176A0A7BD8071F6229BBC0F0CEE6F48F0F516AA878143318227D9D5E8
+5046CE335958034D63A6A6FE3B900D40A7787F8C9E33BB23EFA6962580D4694E
+0215417BE09B7C7BCBD80ACA584011B55542568277A74A77D10C6C1DFC34363C
+8079C82367A4D252E943974A335CA3BCDC0A9B914C4875CC31A8EFCBB3A1F4E3
+C124F15DDE045DB3CB7547D825977DCBD87B80EA0D1F74527F365F4A86277E33
+AA86A7EFB17F9D558ADC5BA5AD5E65D63140016CCEC4C27B179289497955CC43
+951941FE80843F3974CF33F19B23EEA525D635CF31650E098A418BDB78E70296
+A72E8B3D48335B72FFBC3569E5184CF486301A959FD3EE1B7A415A3532623FC4
+51E79AC3016D6AD0C07049D553C3A2D5C6BB6066CCA3846761F370392D54D3D6
+0826E27843BE708825C7BA991F95B6A8199D137EDE52A17C59B5EE56145822C3
+1826E4930664AB44A7A979C18E83A677195E2DEE258B1138BA599EA8F6A022DA
+8DAAB5ACB62FB801EF3EB38A89DDE8CB65F36C3628492940B86B5817EF21EA4D
+8745F8CC826B7B2658E223B3BACC49793E114448D58EE7E0E7E5481FA7BF63E2
+288B4401D4B2C07696881D8B0F466E3BE65C534169A729A18EFD226C8C470FE8
+B99D691E04CD822217FA4E39F2844A956CD6E4BF046A5822BB08833358DD1BFE
+7C17D316384ED6AD676A16A6B5212E8FFB6C94B0A0DED5A0D9AEFD760B4A315F
+432F95AC521EEE4B3B7771BDBF410826808EDE8D025BC47E377F196454221B4B
+8138F3ACCFD8566296A4D95607FE93C9FECB97F2A66DC186242A002B6E79A96F
+A3BA0007E67F53904CEFF0109B2D30C235C65EDA3B20EA227A7592DB1B5DEA54
+A984E832A4345A8D176C60B55823C2B3DC2E984BC0AB67CCE6FD49FE689424D0
+C24BAE19BA0243A85DB9F2F169A0DCE9518B94287F150C8B9FFD08E65228E9EA
+6CA3B5F17A016AEBD0C30CA928E6A607D9DC01724F4AAD5638ACDF714BA14866
+91F64BA92FE22B8E8753936AA52D99F6EA992AED7D65FEAFAA4F10D6EA768B17
+78244CB4CB427E1B91A28F44FA5A9B24B1560B30D6CB3742D2121E0686E53448
+586D5C22C99F3F678C7C444F45EAB6909378612F18C8923C866712B6A3042B3E
+DD24999DE47BC7394C0DB05E6B669AC37656DB5E86BC5715448E8511A8DA824F
+1FFC67A5F4ED912F87EAB30E827A29D25F8D4B54C90CFD5238D008E839E5BF1B
+AB6A1B9881C50486D0C30FFAAD6994C6FEE021468DC3E25DCDD07CE7620FB4A4
+D44F55A763A11A086256381363D4590E8D830AA66961DD57F335F6E45632AA7F
+9148222D6DFFACE123322640912ED896D5EA160765BF95BBFD061A44821283CC
+4C4860CBC1DC34B277C76F52BF0F8D84136F833C9FD16C39EC27A9AB73E2694E
+FED5813F32E206BA360C22A2DDFBC8A47957530BE0628DCF61B36B14728F2B3E
+66937261B860728F538F7B36D93AFEA1EB6AABB113DB2B7FD98B8748B3ADC81F
+4D7A11551D5625E2B3422C10916BD5A708F0012D9E8BA48E66C5145E8C31FA49
+0FE868E0D4E2425278B0206B3A029306BF88873512982D04831B70FD49E19693
+99D0E11A576C70DD8DB0BE3ED10D55BB5F1D0F75D7984A4173AE4C9983CA43E5
+6B263E6A47182151CCD54128F0040C606A989FFD645265013E717BAAEC7B163A
+9BD54B47288193AD143A7F5BF622C45398A28138BF235AA290B0C1BF94588B62
+A61DDA2345BB6FF8F5757544901325C3AE01FAFEE9F041F78256DB67D8401C52
+055FB969D20C8A73469A1894B084B59409F1F566534C85AA9E20EEA06E0A0674
+BCD2966BC86C5B6D9A56FF2AEA23165926BD59A320D436D7B6DBC4BBAA31DF44
+5BD0BEE4E7E6D9E413F9F77BA4ACF5A66660A19A86880993583E819F1F62D109
+E4ECBD12F45BC1F4A6FC77CE47E827A335E7A17E3392FC2E7CE79AA6EBFF1BAD
+53F67C2BA8AB5DD8BA7CF3A58C95ADC71FE0B6E4B7E0DDB562D802E58E569A8E
+4C7BED76A7EDCAB4876862CC986B6E15C8B18117780D0A5B220361AE8E1F64BA
+82D0E907D1B7EA8061621E49BED04691C130F7F87331C9F2C7A96032FFBEB26B
+559F90578A9CB4AA279FB3B188727FC66CED40B66E67A3095C154D7871718025
+AD9389475DADE834AD2DF0C3DDB4783B83025B16709F1485074157F308685B04
+D2B8295451EE4B3DD9A9A62549D9C9BA55B1E0A6E655BA7FFC60A7B96C55E4A8
+8B5E0A80A44523EA47784644D4D0FC2000C22A8CA13A5A092E40485A0EF1D4DF
+C1E9264F166A8B2FE1899D9F38C4EAEC809B80D04EC004A85FBC552BAF8708F6
+ABA0B18BEA888D1615A98A637A9C0E46E27D904C4BFD460F9223018CCA028980
+45B9F455FC5A93B36BA016F9232A34E3D3C1FF44488F32411E4E9A303E417FBE
+EDA7527ED1F9CFFA6F51C7DE2B9FEB90567A96E5F31F1D9084AC9D9D58B8BD6B
+9F711DC80946299D432887592039DF8C2CAA836C2B40123B321893334F7DA0C0
+DA53CE7A17EBF373FA7AC102854F9822687054BD4C54A3BF3180B9B3AEB4BDA6
+110694C0FC8F805E14FE569A0BE6F928DB82
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: CMR5
+%!PS-AdobeFont-1.0: CMR5 003.002
+%%Title: CMR5
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR5.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR5 known{/CMR5 findfont dup/UniqueID known{dup
+/UniqueID get 5000788 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR5 def
+/FontBBox {-10 -250 1304 750 }readonly def
+/UniqueID 5000788 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR5.) readonly def
+/FullName (CMR5) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end 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
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DAE26BF1F487876AD1
+16184ABCA7446A2352AB37C36E9C9BB67CEE105C612D36566FB459D6ACFB1DC3
+7A59448A06EBA21F8824266BDD0ACF9E356251A897A920C39F1AB236EE06C039
+8C4C0AE55FCED464E19AFAF548D454FCF73F6087102630AEA03E622AF2596870
+1353925801642BBDC11F09963F4ADF037671B73D48CD9C209DB4D5BE7F4CB381
+94887E8365D25C45D1F87EFFAE360104ABD3235E4D2F4BA163408448E814D49A
+3E7C171B8F1275D49937C3255326069007B302844EBF2BC1990DDFF1A34C2770
+A262ACCE874DA1E0002188D6A713C79D5E9226178EED27D6F4E4DC24ED2669B2
+3873F42A48E5C1365AAFC83FAD8B849E5D7E52BFBB01B281005A9EBEB4EA2F35
+B691489305BCFE5516DEFBA092F66ABCA2D739A9277AC69F74F786045E63B0F8
+66D545B12B0581AEB579D5E1E2A412DB8F66276E05F131EC3B9F543E11F40FBA
+8CC47071DB04A5D38A707C9F825527521CA1FC412FB54DBD72E912BA4EC8F747
+306A65040671237C8FE84AB6D6157D96EDE13B3A8FBF7140F1A9DA55B666953B
+C7FA638353F278D07066AB8DDF0DFFC832F7025DF1AF9F894D52E9FA95EBBEF5
+9D6B97768FEC26E845B87C6ACF5395C75B894B5A1F50B248BA33943C5AD6CC2A
+8D9AC65C08B3206E7F5E5913CD0D54C9FF741A4D92B628F85E43F52082397891
+66E6F922E0BFA2E45F0072217011D4B8EB40893F151E4E2E92ECE5862C467D4E
+3833311B08340AE1C0C692095AFB739E9B9A4F56BFA0F0B2AB8455A7470C22C2
+0C2EC285026195CB73EE2A713ABBDE4945AFEB92630BF852DD4845FB4C9A8C8A
+0C8C971F29440B4A786108D0DA1AEFDBE03568B6B2F3953B4D07A5B7D6FF564F
+6CC0D8C08CA459D556154A45133BD7AF70C7D8F474DE66E64FA112D776478A83
+B282EA4E941CE2FD6D8F7B68D129CE0093AAF7C1D345C3D65BE74EE9391C9B89
+2D4D31764F1BA81CB12CE46D15A6BF941C9F0EACB4A2DECC8F2F6B85FFF490D4
+ED7BB6C7CDED10F03F68282B2ED20809F95840A904020C98299E17C46243D9EF
+05B5B8173BB2E8CBAB3AA9B8207A9EFE6366C91A7674DBCD9FAF12A2EF4B5117
+5687F3DF1244F5439ECD8AB0587F492E990DD7B516C664AFAB76CE71084FDD70
+E7F5A38BD46926615659488D3548C5066C06E443016DD40275CFF3105573117E
+369C8C34E48BEE832D93F0ADA7674FC6F5A64183DB2B70FF166E02E044B7063A
+41D2F396A9158A26D3953F12982ACD1D7593F474DB98ECFD00EAF57FAAF17C7E
+C1E4775B37FCBCD6DB1B5BC6209162E57E21A6AF427043562D9854B430A0BAED
+20D31A9AC334C87875E53E0B956D33111955459DCD98D54E1BCC61BA58CDB41E
+03009979C0A541FA9F69B55D3F3750515E5F268A7B55254B8A44CA732F2B9242
+18F34C029665B31EB68331B0147607645983340D15E322E3D0532E6376D40FA2
+1041F7988EB9F56D83946757786737D8BB4A996EA7933E79BE61B4EA1115AA4C
+286B7AAFE80AB7C619329AD5FA772A6279FE85FA6B623138FAE1C6AE3FA45AB0
+95D8020D2EE2979E8A87D7E7C5DA2E6B701FEB4923F401F892D83A4928807152
+96CB664018AF24E829E582FA8B4F0E07387BAC53530AB3AADF74404EB2F311E6
+C6A70F960FA962E52A30CCC6E15097F9B7BF011626DAD38EDF78745B60C0818B
+34663683577D897B1B6AEB240F3A2AA29F1F1800FE0A5C205B35C6A6438259FF
+CCEC942AD2D7C3CFE01F956B795C0349DD5380D0140D3BB54FD99EEE5171DAF5
+4FA360A740589A1F8AB4FBC275CC06FF89A8350F4982F87E747501A74B7C81A0
+0F40FBA9D2875022DC3D417FD623D89FB6A0C0F1B930ACC2117C6CE94AAE5844
+0B5C9DAD579B7DDB73F2B26B05E1AAE30AF69937722E8360987AC0BDBE305B5B
+DDBEF5A6C03BE1743C518E6B7B58A85AC961B8755BF37688E37DE0632BBE06E0
+53FAFAFBE52EAF276365A0484A1A682C9B9486CDCFBFBC4F4A1D6BF71378F014
+56DDF9B15A5AE0276827ACBD9AB04D685F52A62BD3DA33BDC2A262B756B58C26
+4F3B552841B81CA60C951F400551166C72B8D357D8122685FE97D14AC22AB6FD
+2EE4CC429D580AD7B8D12A9C601FEE5D25C98BCBCF96C87FCFBF28419BEEFFA8
+7A4FC7B6E5FD377EBD5E743C3FDBB7554A1FB9663B648B15C4119CA952A8263B
+278E5845AB929942E1A0FC4CC413F36134884EAF3704865C1478D6988880EB54
+C5C5C1BDD7CB0548342B9C7B6F94DD6341C5744A9A3C4A866F620BB70575EABD
+AAA42E3B6E23AA029080B299294AF2E9388520367E964A3A66A84628D75F1BEB
+C7A58C92EF7335F30BD0A26D072A986635318E0473CE3CD5B4F1BBFF6E781938
+EE4E3C11AC27A1BE0C3B55586A4565E4B967ED2EE4674121A46DA1C32C5D278A
+44BEB43CCA246B730D337918AAA394728814C726DA4F9C40AC6EE877365976EE
+A53276A818CF25E995CAA34039339C55DDDE74B3C11742786C1E9FA5C432EAC4
+E184F35560EA31D687D005843B02F9252C2A16F9E4C31C18D0D45B7D5F63D589
+3C1FE3D33C912B9CD79DBCCF9FD8223FDC18D55762F0DB2DB241625B91DB17F6
+206120D6300D317E82F3DDE6D2D0825547C08BE7E6FF8FB54D4DFEF2F4E475F7
+F3838B4ADBE49F8C41409D85085DB5A030858AAEEA5AB9CD2D1172C8D0EE31AE
+507D8048E123AEAB05979C872ADBA4833D36626166BBB2A2CEF2F3E641DB429C
+AB15C97D7180E8E6AC0D871E20678516ABAA4D616B51C132F41E5661858B8C2C
+ECEE4A65A2B0FF310DFB531B213196D2E2AB015963246F44E22E603E741BBFF0
+16DBFC284906983A8C15278A36F5379F46C152304DADC8D90C313961E5F58180
+EEEC5A15131E5C48AD27F80B77EB0370482D528735FBA3E6C0548BB66CC222F7
+CCE87194F565B9EF7F32E656E6964501CE32462FFA6B87087EBAF45D454CFBA9
+ACA808C4397F3852158F1C0AE44772253ABEF6D278F726A03A9CBC4330EC80D0
+117F9131C5974445B81093C1D6E093C669CD285D1BFE864D53E5F140D40BE4CC
+2689C42C50C4137DE564374B2130609785D8F519E0083DD24A44DE24A68E4071
+4A2122AB8AB9649660D1C96DC58F37F88623528078BFDA3BA3085D527ED4CAF6
+25BA663A61AEC4938CA78C49623FE0EED33DA2D08CC78F86A807E791BC9CFCFE
+8FBFA55EC2259B64C31F6EBC45D2DF9B47EE09AA54011D40F55B6F12F49F2266
+EDDB09D44C521EC9568CA7E62283C483A436417B65B4FCBC7EA32AC6EB4E7B30
+080816F29F06D6B09E5506D3149C5D758BA85D820357D4955B0C1FFB383E10DA
+4D61774D3B23C84A339C7348ECA6078080FF8B436B2261091DBBDC02583E366A
+622ED9F95D2A85BDBA48DCE8BE45628A4ADFD5A48869800D9B54F530F43A8F53
+F765F5D5C44A9399FC1B9CEFA343966118DD11CB102423D46BA0F096795AF0D1
+BA33F089AD80A104DE7FDF8A6E7D935E6713963FE3C57CC673BCDD423DF3DCE0
+C57EADCA2AE4DBB30166C2CF1F7113DF96A27D4BBB23ABECC5A4795F1290F4F5
+5293B5870F892C9A32C776AAD06D78D0514F047373879CFC5AF9D624DCE5BC8F
+7CEA5055064050AAB2F24A1C792B2609FFDADC6AB8D0F31A12403CF3436A1E1E
+E24BA5F92587925C4D6795A3FB163245FBF054BB1B0FF01FD63DBF7C192D0F31
+33A17E7764699B669A3ACCF7C36849EEDA395E7F55174023A79904A766F21D58
+3DDB7B4C2808DE7FFB8717658084E70DBE046A13BBF1F9BB97B3AB527D68DE8E
+924DE65486C3B883CD65A95901B0DE57821CB6C6AE37644E02F5CB0163617113
+C91D2C649A0BA10736F3709BD504F22DA8831A09BD0B2D6790A498F2FBC2F642
+7845796E606ECAB2356238AAF40323D71B236CBD1E3E43BD5443F304D52F3CC0
+28DB5D33A732695AA09C0449C53C656704D820217AC035DF45F59AE445946481
+E5BFBE5D4EC0A42B5662FBEB9FF6ECFFB5E8517312F56C91A01824E401E7203E
+258C3BA073C1B2532B8312F5AE29E37F5EA71C52F171593B1370D4ED5D7341CD
+567390ED5B75D612D5873BAC518587525A591164E8D36D2BD89F792BD9EE6ACE
+99FB72B23CB2445F12B8A6A0876EE711166C9E34897D370174C17A2495D58B4D
+3DA19DBB1AF2E09C72FA42AA3D8047D05AC4F6A27F3EBF32ADD2AD2FF26EAE05
+A9AB34C9287EE00E8EC29C6603036D365AE08E00D1C7C410EA2551696954EC92
+92080C8FA5C9E67698BD7B895C82ED29391E015F83E0DA145384E223319CBA74
+19494F070649E03CE9FF905619C6CB40F562DA49C1EDD2CA221DD7D3DAFA8279
+AB50DE1C059CB8D5C9FA8137DA711B9D30F236526AA389B2F79F3D5BA6ED9534
+8852BF4448DC1B72E361A6A2B94CF865BC9C3401D995529E2A36DE755EE001FE
+C67B184AE8241D08AF88D626BD2D8AA12EE791AC4253D4761A21917C7F2F5AEC
+795CD14B33F59DD7080C7654DEFFFA669F50FB1AC8C0F2E60201673A78D03DFD
+DE0CB142F0F616C4051772BDB837CB4CE87A0C8D61E0FC7F90517EA0F5F6B1B4
+D57143CC0AE7CA9521C1536962867D6318DF1C9CE6476CEB9ADB21655D379B26
+7A0EAEC2D28430C14D38764C493BA4C06EF4BE6780131F2FEC066C4866E0B258
+51C48BEF77011A0B5763CB3D69A50BDD50C2D7EFBBF18BF42544B1AC196377FB
+4826BACB3C16DB805D38C34F9E92AA9AB5F9A9B317D8BF32AF8A758017269914
+DE3B748625D319E571187E1BFED9CCBE11ABC18C0C6123D24D2C7303DE998847
+0F6F644748ED225135CC3B957EDE8567AF3EE47F5E942EA9293F7BF74260D1D5
+A6F5E56705E12C8379DED158E66DF54349F0504EF584C6D05C44CDD8B720809E
+3DC36FF60BF55FDF1CA8C968E68346CF43C568E0B3175CB7D55343DE21CF9730
+C9DF918360036E4204CD024A67E764D3CC7677E5B229C1B909ECD1B9042134BB
+DD8E47FDBF63F212D401A797EF60011F52EAAFB88E3E70E007BF19826E40FE4A
+73B57D52FAB33A737B1341381EB2ED307E0B83B45D6911E04BE623DA82DD6BDB
+2DA096827E6A498A8D503668E45926525789D43D1BD5B896B487C0CE04FC9DAA
+CD9078D0C8A0639E27F0DCD82C552A7FABA42BFFEAD66CEBBD4D2E4B4A1B40A7
+B6FD119D37FA26C14C29A70E2EDB3253A1AAAC2650009CA3B97B430B1A05F2C6
+F2120C8981683D0976BC42FE98AB2D33014B983CE1E2F1E1AC4A524249C3CF13
+4B36652F96FCBD3660ACFC2F9778B729AFE2CE1BCF473DC5A846FCC3ACBE455E
+2C37853F5204085ABF3BEE50C28D99312A078CE2F6F4C1D2D3017F0E5BB5B614
+102BE45CAF8108407EA970111B5A97CA8C7A64C70D52D28D2EDCD27879B1003A
+6D168CD054E87C063744CDE097887CDF268D89180AF8BB4F170804AE5DA779B2
+1941775FC32FA189038D6050EC0E400BBED364E0CCD8DA571E902DAD812988E2
+4BF761F472EBEB411388FEB6F901777D090400F695D823C758882CC008D889E1
+02678FF81B252C33C89E3B04157C889D4F0F86D432F0B3DD7811BCF01C2FC041
+0D4B1DD9CB6F2433F9B34E7E8ED8BB1FA4F9F7CEB5354A8305C372C2EDEAFE5B
+4AE23CEF34AC457961B15CEA084E31B3741CF2EC317DF484736EDD688737C380
+6D868BDC02D1E63A52D21C8E7C1FD1BD8717612FC247293CC91E0EEA08D5F805
+70217761CFCA0F9C13996DE0F045F28DB67378221722416236E4DC00194E9C45
+A3839F4BB53E226919C2CD13A44E4F67334454DB7E133B2D308925CC2E275293
+F81AFEC4DCF49230F22EFA19F48CAB7E09FA727CC2E11E5A5CCF57307506D5E7
+6DD1D26BFD3DF97E73C2DC019B0A75B9D6386469ACF1A00A5AAB55F99BA1DE49
+9883DC4FB0E8AD9421B105E050519976705F7BC889FB3B6C2921D2E198FEA294
+E192DB3738EBEBF6485075728A0E16ABD53A25BB0795A21B65AFB6ABD7EAA3F7
+1DAE1BA012651B4BA0ABE02F3CCCEB9E92979F17A3338A376C57A1F13E3C90C7
+9DE8ADE421329A57369CCC2BA622840B79C0DF098EA42B810C596DE85F51EB9E
+C8F6FAA598C73F359FD7CB1D337E3B083833389846A99C87885A7537D35772DC
+A7EE51E8EEECF4E4F38AA04C3F4C447080386A41F1461599739D73C58CD02D65
+0899177F7D707AE793B4C915C590AFD6E6810700BC0C3D14B67E03129A4215E4
+953B88C7A9FF1AF4B6DA293E1DF2EF5667D408AD3F2DFDBA46EF95A1D8E1CA29
+FBFA01A4B965D1101CA6C0C2BF4670E94776753FF52C2751AE41872EBE3DC66D
+EE58BFD3BF8F543802C7614F64E7A9CC4474DAB5F4C59F8085FD523C91F0FCE2
+0CAEE1B9613064F9C9CE9556C841563A43660E0E71EE761F0448C41589AD0312
+958167F62FB166655800150F9E81A558949071F01BB11C9ACFB2ACA4F332D2AC
+598AD5ABD3D5EB17AFA97456C0DE4D3D872750F548C357FF34919A3EDCFF9658
+F3DBF53BB3D0A204E84702DF6FCF5022E753CA92323ABEDC81071ED44C306A7B
+C10D15F905672783BFCDF28D97EE156E293046C09595159C735A266ADAACB887
+7026C404951C27B88CC3EC1A6F15F016D55AE6B5DD739914DBD6861098977064
+762AE2867697967117DD7E3CDFC24D046F1D83856D49224191CBAE95C2E7B9DA
+4DC5ACB06B9F637312C1378941EF6B9D966E84DA69E66C43EDC0564D4A9B201E
+5CCD830900AC4D4EEDBBA4AD14ACBADA20179AE138CF35D6F830801D7F9D1F3A
+B48B6C2EA3B77E7EE42DC0A26C7FDA6EB64DF4136FC3AE0FADAB84CD30392E44
+49DD3F7DFAB77AC2E3A8D16C9BC002AA17A9C1E9166A21648AE2AD7F9DB250DD
+2F3F480844C93059796E89238B0DD470329C2AEC9F178B83D421063BCC18CC35
+2C562DAE86EBE6529D19066FAB70C8E73B260C71924B0B3DD652AE37DC2ADCD7
+A3E3E1936FDD259A3F32D669B6CD82D73436212D6CCBE436578139AE07BA8C5F
+07A8D2158C8F21007FC0B96E2B3588466A6FAB4F70363E994AC4FDC2CAB3A478
+9C98DE079DF219648A6219EC7040A8FA91BE9D9451BEA89906677866F50B6FAB
+E8FC00E826B115CD65FAF738492A919CCB657186BA12260C2816C44A632285CC
+25CA1D797DB0D901EECA675FFA1182AD6D48A8A96402D07A288CCC02F8A7CE0A
+39084DA379C5FD08743060851BD02A3C9CC298FFA0AEAC5F5E1928C46A6EBB42
+7D2AF9D32BD0117A8CD7B453C66FF39163092568B5A26F210900D466EA5CE01F
+14BC1F57BB0D3186BEE9BA1A5648887CAC06E23057199A31781C4C37B1A07C32
+B8AE8A40F5C481C8D2854AE5C2C3C746C4A2B48189A373A438F512642A55F2B2
+3CCD2D5A06A1859B50C1C3352B1B5B56E652F00EE79060842A33A8CBD002E777
+3CF6C051A6D5F02E35480569E9D00493C494F9FB977E665AAE4468E6DBBCC950
+33876A21B75095CF391E09E814D7A03EAA19BA0D7A560610CC36EC3A9CA39CD1
+4A359FBC14B07975379B68949C9FC2DFAF037C56C13802A7F66C809549EF2FC5
+25EF3F517F06F90EEDFA6F8A3E5F1F3531A5415F3191B8FA7B0F28950A20A1E0
+6E354480D09729E3A2D6796DB81825DADFA4580FDC7813B7989B18020C3AB1A2
+87E948890C25563CB26A068ABABD94F3D42213218F2ACBB2F5B317311474B222
+BE1844548554B37C97284940D5B7AF9E4CBD884D4994A76CC1ABF8E6AB0676A4
+0A8130F05B0ABAC088FE4F9FB536924A55451C8772B29087B8E5E649DA3B449B
+4A055214DF69D0218549440B3665E4D20C5A8660B3E0C3ABBA3426E7820E1A94
+5D273A6AC95BFBF247F695F4D7E3C2BF9FB7C5D7D1E4913953B9595C37A9C774
+3BC37749D7EDF4B3979F4DF8F5D0225B9237410F39AA49791D3E9DD2C1C33B75
+F7D79CF6A2B421E9704D68013F510E1408F0C243E58A3B01F2AB6488D1C43C1D
+11CC206EE00A0189A780A11816C1490A3D43DA1891DC61E55CCD6C1BBDE82871
+27E7848799A526BDC965C7382E650485A05341E9BA6769B4DE062EDE099928E8
+B5A7A5748A7A1AA6707FB743625A9C2EF7AEE00D188F914C8032C9FD72F110EA
+A18B8CF1F442FF1D2941ACF480E012A46BC423CF80B8B27F71AEEF12A3837683
+B835F569BF799016A0F0DED29BDDDF42FF4B0C6E9DD685DE6FF0865E46F55D8A
+2FC8EC23D31F281092AEBB07C9002ED1D7516AC8CC5881CC0B75443DF6DF9AE7
+0C373DFB29294713B2D142119D8097A35EC6EE55B0765351A47A433634F8AA99
+AC77CDFD58E5B4949F68A3B3AE8CEBC1461957D757E82FF2EDDD15631AB33EF7
+93175D3F26FE229E828E09BA0E09AD83060426A04CC0D66C4A5F68FF07ADCDC2
+DD0D86454F8722AA4DBBF313AD9711DCC07FD0FD78829201FCB6E8F101E3FDB5
+604ED8B8468235741A6001E63A13DC1019804DCE8FB3E8F1275C19515045149D
+757890701A6EB0262C1E616C9BBB2E223EF07EB47A4A767280CF6AA71F21F158
+C945B51897394DCCF42E5DB57A3FC6D68B9933A9AB17A11C83CA0EE1FB3F4549
+7A7AC43B07267C8BA09F3AB2A52C6E91D236554B0C0E25E50F6CED6BA46EE12F
+935E4E19DBC6411493EE29335EF6C3FA87AB5E70C028DDA186055C308A2DE1A9
+1193B3E15B11D1E155513349471BEFFDB5C5071BA393A1EBDDBAE2B346E522B0
+1B2812B4696369361C43EF9A2FCFCD37D32EAD713C35A1B358A0BE920F435B9B
+0D53D5573F96FC2EB63BFF0EF59B177319B02EF472054B64BC918D7B61C87250
+EE1DE8ED8C365BCAA589B9FB870CF3431D4898BE3A5BD9ADFDBF9CB20B285954
+FB18AFFC8D4C4C3CE1C15236386F2BCDB0A89BE18ECC88A189395448FB8FE090
+37DE2E03530D14C1C5A498DE640F91A4C092858AAE8ECABFD3CA48388486423B
+EAAE8AA6AD668286443BFF680A4E5475C2AE27FC0842F10EC321DEF74B3C9383
+0C1728E7D5014E53D83416658D4D039987A654231BC50937B2C71318A9671AD2
+DB628C3C99D0EB41AE2E505CBD33BBA5FDAC7439DEE3FB3422118CA5ED5023EA
+58BF1D47260AEF9EFBCC3122E42650DC69F3D8D8B575093A6F6D6F93E171C3DF
+0C82FF4ED3B1E592FB326B8EFBFA5201E80F474D2F7A68287E3C109A0B8A064A
+CDDB2330DC068B5DD69F8E7BB6FE8E647AD3A05938BB75DF93C0B3B03D76EB68
+E0DE1AC5F4A31BC2E23C3CF721D6CD0BBC3030DBD0DBB1BCEA5E136D1522E73F
+2AE7CEA2D566F8B32CA888276FD69F5FD361308A71A4B0F4E2CBFC723277F36C
+28C982FC82EF3ED04F5FEBFBF9C2D76370E9149E10626778ED2352CD8E7E0E5E
+42E27B2E31C542B1F9C172C21F2BE5932C87A6393F9AA755DFC805B5C13E94A0
+64805D8CC48F76E412EADEE158450E74F60E3BDB8D95455A765702996968BDC8
+F013A657DD6D85400CAA4CDF9BBFC714E431DFB0E59DF43AF9816A0042528EDA
+29C32D43009DE33DF99DF19C1569CBEE990A0E2FAB94AE647AF6173C690E6F78
+76C5B3019B0127DC37DB2EF1C85ED74F782F2825C52006905D8D6E27BF77DAB0
+4CEA0158482DAE525B9A2CB2686B664EAB54C75F41B90240E89C00BB1712A05D
+62743A38E63AFCE7240FBBF3F08983EC757651E74D28BCEE36894A4B234777F6
+E2800ED2D740CA1880327EE6F1609F9CA0C617F2782DFC7C6C03F1D99A94FBBF
+2D2D672026CE044164348BD7E4F73251514B6D9543CC6FA7E236F23CCE4DCEEC
+2A373F4134FB9E2A51EFAD456C431F08F6A4336955BDAB85F8704AE7769A2F64
+6E6F27EA470E2726C4A660BDB14C8712D5A68AF1380CEAA495737037C393B2AF
+07072B4247BB7D012B7AD60091E78D77917B881A4749B9BFEA05F16B9285D48D
+C5E38F9EADC31F697F308E11D32448F5AAF124B540D3E5778774B8F09D4506FC
+9C78EFEEA457048B2510C1F46F28B9EF8FCA0052ECBFFEB938830A1A5EF4703B
+CD1C445DE17A044634ADC6317AAB5D81A7700E90BA2ABCAECE474A22664106C7
+5711C23E9CC8C600879797C785292D5FA15E294C42865B1FDD59A207C388BC27
+8EE14E1F453BA173016D90843A1CE334E917A3BFA7431F09665BE57C0FBE0C97
+0BC8969FDA31EED683C479B92143B88BF6A27F3B18B12E8F1CE2B4249DB7433F
+1A0B6F7367BCDE34903049F49B4C1F2891DC381F1ABAA5795053A027E2B115FF
+644520CBC66565ADACBBE849218A0EEB6F3D7C788D1E4970BA3120C219BCB162
+596CFCC2D590689276DA9AA8847F8195B412A1584280BAF8F8CADCD2B0AFA695
+76A3190C601B5038E6E29AA502A290938D3C410E7D78919014C1160E7ED51DD4
+AE48E760A719DE1F19F45AD907A5355FD7F82E44300B095C1FEC3DEC920A0897
+79235EA5A815CB73EF76C3920EA385CFBAD1C1D4EE7EBF0F0D4105F7D1C837C6
+E407E1
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: CMMI7
+%!PS-AdobeFont-1.0: CMMI7 003.002
+%%Title: CMMI7
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI7.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup
+/UniqueID get 5087382 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMMI7 def
+/FontBBox {-1 -250 1171 750 }readonly def
+/UniqueID 5087382 def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI7.) readonly def
+/FullName (CMMI7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 76 /L put
+dup 82 /R put
+dup 84 /T put
+dup 105 /i put
+dup 112 /p put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
+45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
+7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
+72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
+BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
+974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
+11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBBAAB71645535A2B
+6F0F22458E1429F4A67307E01F0BCF6F337E0E2AD89658D880B04C26306F8179
+C8121B958459B923AC3B05B594D8AB95F75870019130442FD29578D44F5690BC
+7281357A5041C8A809A59D0DEE108E2A07D406656BC74A9F3317CB887E712318
+46B2ECAA341F8692ACC2D14ABABDFBCAC6F35858355F1D3228B0223EC73AC56F
+3C987464DB829F243E304F4C59CDE3EF6EB53A4EF9BA91510CB89A3407261F58
+A2AE66880BA98FC1EF546112892494C85A2C39F9DCCAC5766725894A7AA148E9
+42360AE64BF3A4F1F9F0A0D0C1AAFDC4D50C52233AA595B7D0CE557D4A010D86
+6E6B76A7E9523E8A6633DA9348BC3F59302F72F492A30782AE7EF220516893D3
+DE836CDE311DED9262AF01C506040541EE84AAC539B404B23033EF56D4BCE6BE
+B05F79CD633FE75C6728114D2749E39FD7454050F67763AB636377BA8E1867C3
+996C7D7D4A4A02BC49D1AD7FF174C1F49F1F205BC9D5AE42BCB02CF8554E8F5A
+D1876C9285B6CCD7B8C165F75843B0AA11D8462B57077AFE75BAD086E9D9F91E
+30ACFF91776132F3CACAD1CA5E08B17B36A0E45ACBAC52393B9AF9089BD821D9
+CD5A9CD9BECA59F7445D63DECC1B4502D299DB85B6E2EE7C69A1DAB91E22A3A5
+89B524FA20AF6005E7A586B90A2C6E5A93C9EFA4ABEF5F7E4C7B81363FE8D2B3
+0AD637FA863DE787581ADD7CBE463F7866C40F4E280260ED0E9C8453E5C7E668
+FFF058B9742DD3F131C264F8FA102CD0DA05F3114D13D34D422799181453FE23
+2FC6EFB01BE420C930B879D671F3DFB036197874725220644A5A52DFB467BB75
+8089E4F40CE9401777B9FE1D0AEE02E782A6EB2A185A454AE9394094CDFE7CFA
+C03C23A78EAF242E4F811E4C83B59EF4DC5ACE4AD37B41616B46C263358710B2
+6137314545CA6CE89119B42A3518EC85C68DC07D26839C68B1FF55C4A9CD518B
+A1FB32F9C475BB6110839FCCB94156E7B3648F27245A00D2966FC4DDE3996BFA
+F463A663CB6935B596B1582ED0ABBC648AAA8A86068BF0038001C753C8BAFA0D
+2058041DFA720B528E2D4B16196DB1CF30C779D3F4800FE662D5B60B208341F2
+A66EFCB8448C2FCD12DF0DD899911A8BD96C9B670054D328790E5D388518B146
+8CE92E368EB1DB3CAAFCA4834CC9D9D9DCC80FB1F34F39DACDE643052C977A7E
+A95C5FA8DFED9B4DCE769E4E46256D6DA8FB18FD7FA4E4CED5D486803538F3B4
+6D3F5B3C03184F5C26C66DBB4C724918EBB6A89C4602E4EDDA81EEE2BD18B683
+FDB459F2CE0A9CED23DC208EAA8BEDB304B00E093DEE926A7B32FDB2EC70DD85
+94B9137856DDDABB402B2C76DBA87149051ADC6007018EBDD571BE1D092EBD95
+76D4E063AD7D5F62E6C26EDB88D38678F2806A1F4900B0ABC4ED034A818119A4
+E618F1A902315BC98F26775E59555A3DCEA1D0F8B20A9084920ECBE3F7F245AC
+1182A40B518B194669D95DE968542BFF80FDC89669BC256C44CB66A2AB8CD7A9
+E42C69956CCB6BDE8C09AD22EF3196939B3B84EB23A6E071A36D702909E019FF
+058F27562441EB5CAE87A4407F67C4390810BE89BBE867D636468E73677B84C8
+5A1228DD7DC8EADA221B1BAD5F43E832F20ADE7ADBFF170AB306F5B711816FD1
+39B7882556E30F002977FB88D8B28826A75DE0D20354A2D41F2DA8578376F7DD
+F27B0F59D4DDDF5790E11E3957491DC74EEB7625CA49FAD90FA47AD8E0BDE824
+FF326A84846A47A21B70FA549BEE307F9C6970009F963B49A504F0115777826F
+1D81203F655C242FFF15BA97E3BDDFBF435B10E74CE8543C98966223818839B3
+6BF3BC63F882B0AD0FDACA8C56A570277952E1D83F18BEDF084D2AC004E2B09D
+70DE1740D7D220E92B54D2FD0DDEAF1E08C41FD321A8D474982DD105B23166A7
+AA9E0129DC88065B1E0F9382BEB4B4E1DAAE3EA5489BDCA921AD5A8175F2841F
+9400478DFA99C5E5553F383882664D73FBDFA29BF32E52C28DCE80DAF4839434
+022FA515679DBC13FE98968D2894DF5DD69C49BD23D00F5D858B69D1F220F968
+F0700E13873579B3CFB658972098DC61F1DD580105BC27795DB4AF11A871CCD6
+2E1B9AF7F0DAAD4CE315379A7B42CECB983DAC5A2B9426B4E5E0A7F7978504C1
+DD7E30063AE3CBDFB24EA2BCCDC478AB82084FD30A4793F4707D9F8F9647B413
+F8A5C5AC6D5EA0E35628CE1096A434FB8286F4617CB4D0AD30A4A0B255A5A356
+25AA5A947FD3C4FA44B4AA80BAB44C48CC1E2C6D0A711365A37A58C3483D07ED
+301A83D2650A2E8CBA9EE62FF5C2736EC82C1402959F64527F9B640619F112D9
+8E0F4A8A3078C72ACF3F34AD855AA4008C96E30D9E8C414607C34E06E29AC5B9
+2EE5DDB823E8C3EEE6A8DE228313D476A7F39B5DFBFBDEDDF7C45C1C88EE6D01
+7FB4F7BB2CBBD5DF7F0CBD98DC287FA6940FBFE1B3B136613A3CF16634CA7B90
+53D5FD5776515EFF5D37F8FCC62D8BEC8EE2216503D54D6F2032D3C2BF861E15
+FD1B45B71576F15852EEA65DD372E911EF4CC18283CD2FF4196A3F1A9D81137F
+F1820EC604D6C61AF318C6C5AB6DA1EDF305CADEF7CC0183B86D31310A09972C
+A4BC37D110C77ECCA614D1A281EE1C2040B4A5ECB31A3FC61760F608E44332D1
+D2C53C7891B505A3020E9E4915F3618588FCEC80B9ECC5E637D8D0F3C94B1F2A
+C53FC46CAE0AFAA7E12266C212A73AAE60199752C042BD55A5DF1CD07FBDB830
+C83E7832D8554AD9C9CAEEC7CED1DAEE622090897641CF2E5B34A353D83264D4
+4687522DB290D3BA927BA315EA5D25B0D7B69350C6C180AB0C322B05E01F7C7D
+F2F48651567F0C1B49AF3950E43C94D78F7B184BF2946B924BC4279AED28F3A0
+17A7D8B235698A516D3FB5DF0B18A422B2410C385E7E9439C6D60917EB3299AD
+E31471616251FA40C9FA098109BB31A54D9C03B2F12947E4E9252A0851B81C4D
+F39E7FC44752504B589C3911571B1D3EC3BD1E1807F99CED1DB20270E483A805
+CA2A016E7283550D1B1D35C226FAB63F983CED41A4D02A2F228FA9EF065027B3
+CC69D6F2E278C0A2D238D3A37154B0D22281F62C61D9182A69657B027BBDED64
+11E261E47620602F865221A534C5A32E2BF5B93A187911A146F2E96538B47DBB
+7BFA7EF406FE940F4DAD17E6E4B80C4F031D71F65657C2F5C8233EEAC68DE8A7
+E1FC3055C122C1795D0C71A0284F89A9BF04837F61C9E08DB42644A490C97D34
+A5D3CEE475B8D578205005A0D68AF94AD27C0E855BB8EDB74775690A4EDD6543
+BCC10CF13283D6FA8A7CF3FE6C4F96470A11FF0B0160D3F9816B13B0BAE0D8F9
+B84C7631063FE658D13D108D6FE24A89799FABA72E6A6D1C943922CBE676C1B6
+11A4106ECB4F1A7F8A84B2783C2E6A109C58D63FC0B74D8C8A1CB62D527441AE
+E656D94B1AA8581B4F07B653ED6486AAE1F8ADB30FA8D8914AF24721C74B0908
+D84F2EBB91144ED4BD7EF533F2584048DEE37E17CDE5FBC2992A6F924FEBAF07
+B626F988599DECDAB43C931CFECF99FC6EBB72F8E542765C26295902DFF60B7C
+7B9ADDB4858BC9D808B7F0909690CF8DFBC59A786D48B891937C31A219842A43
+234425B4963062DB4C4E9F534C77F4243408805B5A6B8BBF428632CA4AC03A7A
+E336DD181CE0CF3E742079E2919EAFABE16A63299771BF276EFA8D85C920F995
+5B9D4E8F1ADFCC5C29AA89BF90C186C5DE7679906B2FD4DB279D245D27D08837
+D3A8D541FE37415B706EC585C05804108C1D938E543B8B63E275EE85CE9DD843
+0A8B9163144B77DA1A552A25D5E77E94F29CF252BE9950F4E627D5F72536B6F3
+3278D4A45D10759F16AE42BAE8460865FEE84537F8EC9BF4813570E883B826FD
+1ABF3F4E66DB6FEF8366E07BCF290EA67D39C9D81B2A7EA48E0A228FE3D5AA50
+1A56CCBF229C9AF2537A8FA70EEF41096ACED34CC7BEECA4EA1F23B39FBC39D8
+CCEA93E63F508CBE6722C11467A3D0D5C4C52031DE43C449333E4295104651CE
+E13B821D7904653346067E971BE0042C571ABF40C3A1079A675FE4264B784D46
+1B8FAA4CDE9851C4EBF69ADF51A7B68CC8706C08D13A44909D4C1D78DB0E0B2D
+0E0318304B229DD2FDC968027CDFF65722059C62154304D6F9C3F06DE22914EE
+928B7D1BF1FC7E74B4D882998D59BC086AA2D4EAD0AE39F6B75B5A3FB9994506
+E21731E1A15F0F2D12F88724BA72898197A80FDAC00243A3038871EBD2F2BAB1
+C616278BB78490CB86F552CBE5DD0862F3793D72C68AC16AF8E38FE1A523A5FA
+9B0428745B1455671CFA1F6BFBCCF9CA23C833113C2948E7A6AEFFF1A83509FF
+C559BB5EE7F92BB43F7F37A371E661C826F63DD0C1B25E34A8119E71EC82FB66
+23C7B126FB6554E7560B1B69F2EDBB742F3B20D1648C151C37A8570CBD330A9E
+7592A8607D2D727F3AAA0FF2057DF4E2A4C7D3B658C6CED38824A770420D89E7
+F6AD385DBCE9C9A9095CF0042052A67AB804A6675BB9373A99390CBDFB715984
+A069DE543E4C6ADD7F1EC7A15392EF834EAB4584679A43443953427DB13E6959
+0F2F5061C99C6D00FA5327FDB5330AEDE19A53DE3AE092634DC6AEEAF63A5BED
+990F8A117AEB1CA0E7F7DBE02CB3D86465F1613B976D1CF6F3A1E69740A2FDC8
+062ACC45EDA6B863B60015F276860FB79C31D28F97A799568E66D0A8757B2C41
+E939337B467303041D0F4C59390B2E41E5F298F275DCC699D27C459ED4D5ADBD
+02539F00095D7E1872862142B46BE06513D3EB1A406E6BAA64BE795122100F09
+C37E5D1834218EC1D11B031C7DFC9F5AB071A8F4DC08203821366959E9191D4B
+289682D915AF28CE5858F83338DC51B6B0DD052A181D9133FBA50CF18F70EE65
+C33726A0450EBA9D0E0C3662AF6C2121AB7911AA9880D6BB6811D6D7515888E7
+199A0E632104059A88C9D85B19BB35EDF4AB95E1515BB2339572928BD5FE8CBD
+2D4DAF55DCFE29FBC4C3D56336277BA0C9A889A129F9FA7052AD1420B8705163
+1A808EC1284C888D78CEA2B4BAB71AD76289F5F4986008FA9BF328E8537E6C91
+E11DBDD8447E1C9ACE18DB0EC3D5742C264C8EFA445C5D16C2930FB43669774F
+A2CA52144D99EFA8FC427DB4128CD4C036A8C611B087335C780740FAA419D39B
+5DD68EA89C95275F9254D947EB3683D0130255269B10C6CFF29EA0BE484C9949
+96188FCB747618A8044E2E37DFFD2DB8ABB621B34DC024259340677095B6937A
+78EDCF508AC91D4CEFD872AD73F50582DC8807143CEB9F109C84DC5DA30B64E2
+E56DE973088A9D32583D6946DB4F3523902FB1781D993B89D5F56D79D5D98CC1
+7FEE73FC3A7D1BCCE90179AE450829E228B4DEAD3B2B4C79A400CFF899AB26F9
+048B0875EBC871AD23BA96F88CDA8B87FE5809A13889A6AC349ABB25E54ACAA9
+C213C5DE2D01BCB9CC0D7BBD384D23AE12E289FF8FDF1F611F5E14D4B20B15A3
+42D9B3B37A83A9CA39B5DB6C8316C51B70F211530A56CFE54D63E88169CF5233
+D1A7B2388025B3EBD2BEE0716C3A2D589EBC7A42B3DA602AC4E2FD9C9052C922
+711E44408DEEA1FE0C9FD50A39AD46D437F61F284A2EFD42EF158EDD71A1486D
+4865D6B5E20E60F4F4FC3D646909FF1EE2D7573665E4CD8340A1B232CAC0202C
+C35BA9BB3D2267C7E78518F6711633F888EBEF72DC750AC2CB362D528CFC8B2E
+A1AE1C05456F50EED8CAA768DEF47FF85C4322F02D7F9D188C6F285C674EF589
+251B0B913339FD701FDB281338D96704ED7ED908BC113B4275A24D058955890B
+12CCDD5572D63688426B0E1E9A40D6AAECFA5555C1CF9DBEF8C04CE1E5A63F14
+969D39B6DAE8A91F6AF4CD1E2DA89A4661DA34E272B6032C442C031F081F5DF5
+858F4620885773D8A2B2F5EB6DDA74C1408DF279900450E4A3E80BA9A9B1295E
+F24EDC3F6EFD81A741EF74B0202820516C4FB720687BDD915EB2396128C3B262
+20E3075DA153D6FD36E1C05B855929DAA4DE694B6F15EF2145C63250B24B031A
+4CF0AFDB225E91D99828B83BD90F1702D3906D45872587A3A116B138AD9627CE
+E778A949C392202823C670FDBC56F1896FFFFBCF52C4B400F67BA36B5FCE44A5
+F18EEB8ADFC088C99DFF8E0A593E81A5ACA2E3693005F723C7D3E0AE2BDD3805
+8C6007A00542DEB2539709558A88B21003CE4B2C7817AF207ED576B25A41DEA0
+FC55A459BEB00ADB01309B35920F04F84B7B64F95AA99EBCB843A06CED900D99
+97BEFD7CCB9F4D85876F10160C8D63E2FDE82B7A8D945F37CC9933ABE0FD1D76
+268296B1A5AB06B2E814691128771694224781171DC6266BCC290FCE1AB59416
+85530368115BABD4F1DE45952918D1945D51EB713C283DAE8EDD559F437CD886
+A4B1DA6120D685C284673A3EE489FC1AE4297A3623B339B7D886B6B4B8F9F4A3
+7BF85E320A52FDC6323B51879B98A14C33C567BC069D9B44616514EE1BE36F90
+EC5FA33E1B6B0A46945D876EF0085E74935DF2560A03321861A752E59742B9FC
+5C501FBC64BFB1602459885B63873DC857ED37F8BE1A9C6E9517B9BF5A6161BD
+DEB6DB0381FFB34A8A96AB4AD48BEC40D4C198ABC599C3758AFF638AA75BBDA4
+8545D5F95FA426FB25587301A43E176F6CED7851E815AD907F2443E70740DD2D
+4FBD5D978B9B37F59D6DCF0ADD0F90825DD23558FCB858513602C8BC82BFA383
+7AA6DCEA4009961D06DF233C5381A7F9541259926446B2F03664BC5978A1B6CD
+EA6EBC9FE6100A65959513EEE32E69D47B55BAF30A893D77142F943982019C01
+715CE29923795EA01C58A798979939B507C5B29A32881877EF7EF0C5CB3DE591
+6B9A6C3F3FFA847F396A396F078860B59850BA4CA3115CA2376AEE6B30C05DC1
+6F9DB6781ED0F9D45D10E096C33B1B7CD12A9D57C6E49AD833C4B093DC82811F
+16B3BD902BE764A1680831EC5A6C1CED84AE0DC0A65678EA5270BF20931E6409
+7AA44EACB22CCA11098F8A51096BE83A1ABA56C9EED4195D5CCF24FDAD92E823
+C439DAAFBFD652157D728F2754F28304710D3CB33763156D76A259D446647A11
+493FAC70DD28063A4CDDA162F72542368E1AC2826C4BFF7109208F66371910C1
+068F21779FC39DE03AECF1C9FB2F417930C22791961D801284DCC89B0833B6A8
+D63F153ACBFB7B7D547924613BBCCAED37D90BAC5B0264ED31C7B9DA5A2BC620
+9B20CA48424D0FF58905BCD6190BF4B5FC6ECCA1BCEF13426920197CAB41C4E6
+E82E8EE7BCB23C6BA6F8B58001533B225ED721D6CE3D6E89116EC33CAA6E905A
+649F8C6A1AA187A48E20DB864596481976216DB78F0F57543DFAE3CDC0A6FC77
+2CAA49442527A5D94DC54BE93C875690CBE52EAA4EDD9F2A511361BC0F0807EE
+96AD0D26B62D809E82EC14EDB158EF48A748A6FE0C3A7EE5D4479B35425F35AD
+3EC7444F6FA75CEA5011AD571078293448A33C7647611CAEE87974B0A756DAC9
+4E1BA78DEE477FA59AD50BF5C52E068A5E044A4A4994D5B24CC5045F768A3C51
+D4F65E2A5AFD271A7666C6835E28C60751EE528C0742433165AFBE71562A3016
+F59676D56B0B5F7E4984D664BC3ADDAF24B4205752EE21D4B57057A943018466
+09C3FA5D2C5BCBFC22A643586BC9E7A965DC34C0A7D272B5B1617BAC2B0CB510
+5DD5EC6F7ED1226D19189FF547776698FD48B7A6A038131F869A9E24006A4FCB
+9FDD5E4A6DA9C531E1F1D1F0131CF8BF06B78BD2C6109E3D5251ACCAA6661142
+7E0CF66D8C1998ED3DDDF69890FB2039F35BFBA2D9E6EA42F2E2E88E8C66D0C7
+6B2A404F1C72AD38C2742D4AC7AB941BB9306ADAADAECAC68EB229D3CE861D48
+CFA0EDBF55C5AE42B7888DB9FE6BFE987CD2D13CF5E416829ADE55B64E33933B
+A1D88A6B89D36D0DCAEC29DD4B4C2D2021ED9831ABC1F94DBDF4952CBC514C25
+9F8C5C39B4E7A77247AA023F208B63AF2A8D436901C08079E59BE74DBF83018E
+D58B882B96D1D0AF2274EC40BF80AA2D323DBF12839DDC16CD48B4F6549B8EDE
+4B8D2EC13F781065B10E08698C3C1C07186089B5FFAEC9BEAE7F753DB024376C
+044C96A9CC8F911B864C5D7230690AFAFB176EECB756DFE15133B7173A6C058C
+62584ECAB08EF752434BCED665E7E1C67B7C49BFA4516BF9E870BCD342D18AD8
+5CE246CE72ABAA86A483CE01CC370C45A6A2CF9B4C84EBB2670C26013BE4BB6B
+72A2AFADE105643B389616752FD84BAD4064ADE75FEFD614DF91A1D7A51A7BDA
+C3FBA5FC6BB033A2228140109A3A96E66BDDC633EF0ABFE5B9171F8B6AC4195A
+FB9B5A6E500797F3C699FD557D7EE72E6E6C488C1AA6A9145C03B93BE2E0D498
+14EDF39E75D3F62ED42EDA9BFF1401C8D9C032DAC774726E508145E0CB1AB50C
+E6B684EF487C09DA232C595154190FE09E6A330A652F0EAD7678627D66340402
+F0983F7230053CEEFAB43D57D28EA5490F3FF4082036E44B4B3C6882A01E7DDF
+0A525A55F4A93BDEC579F3B95D79D7EC560779CF97524CF43AF77F2E3E4B79AD
+93DE87DD4A235711D29F6E322D18287533C6E87976DC48DBCFF7C32FA1A15699
+E51C19B8A8F7A282AD66A4F11E9DC71A95D893F55F2D25A558B54A536DC1226F
+B369860D92AEFF3DBADC2138616A6DEC038225A1DB86360FDC351851BB3F6477
+A81BB64339EA068D4C69FBF46AA415AC050F4B384AB2490984D4735FAB087332
+026110F37FD85F4823610E40599825A725E1BBA02FDD8AAF552E41ED96DEA6E5
+395432C075355ECA2682198C660BC5430E281430C71A7D51B88399E2280C04C6
+4341A4A5181337B094CE54C1BA18386A1B7AB451BFF4A0BA6CB2EB75835EEE5D
+C299E56C190DEB843BCBBC5341C46AD68F750D8E4C14C51D100E8DD1AB74832B
+D3AD6250F9C70A00A5481238CF8BE3DC8BBDC653288D5839CC10434D8444F8EA
+0CEBC60963F5F7EE015561A98BC9FEA1226CC9AA4803FA8FAA501DC4AF35FB16
+44DF25DEB1EA03873A92A44EF48C23C1F6E07858F3B27BF91CF5D71935ADAB39
+45AEA45169E6F0C5E5B3C540D205B5A3306002D27C43ECCB210CA44E4BDED337
+166CDA3F32AEDDC043C41E89B4D1618CE32B722730CB16CC8E80897857639073
+3DC92FDC47528DDB73C7774DB2A58BBF6EC17846EF6F22EEEB279051AC158458
+36707AB50BCB5E7D7626F6A0EA716218E25EC3625C3257550956670B88814716
+3776456D64F1CA72D9B6B8C279A4BF60536ED68F8CD75CCA956BC43A2838A969
+CACF133F498E866E58F6B387B1F63F14CE65831CEB004BD8FA08AF779A301173
+CCA0E328F2D90B90834D9EB594CDBEEEB115BA3D079EAA85C3A5440773EA1ABA
+62C26A39C10574C2F16B6692E841CE259229D372728C1ABE1095A53F6D04C2ED
+55306F319662DE5C896F1ECF80554B0D3F1C24B28B82573321E939013CC205BC
+B11709F5D5BCC54891E48A913BFAF170EE22C36FD17FBCBCC6D66E4F624F8D34
+B78731A0A1835562766F316F0B6ACA5F3F980139DFD40B72D20A5B4D3DE08CB8
+82ACD3B7AC2DA97B7B72848D68DD380FB98C56AAD6553E4A4B020BC1143A5BE4
+3AF30AD92D2254959512883A1BE009807DD47181689E0855F4E88D0B2D097ACA
+9EA378542772505E28A8DBAAC77FD83047F1A8D445D92DA8D7B08F2E65464768
+DA3556E4291AF5C8073B70EDD2B5CCAAF2D0D18EAE346237FC03F1383FDEE633
+04E3FAE364FAF8954A7C0BEEE3D3020263C67DEA2D9E92507F6989A716A25C69
+54910AECF9BE706E40D2CD6406159082C8178F0B2244B9784A9D2889D447664E
+169A2BFA4BD2CF5E7BA0CF0F2AF10916D8E58958E4928D006CE176E9480A52D7
+3ED689EF3AC1A5D9B81DFC37D3685B97A8C16DE2BC636FDCBA1F22B5E9839055
+5D083B6881F29892725F058AC1DFE0CE6ED1F638143A6A09C42B0BEFF93A2AFC
+DEC4785DAC33EC0651FFF17B64D69571E1308930341D0F54DFB85E61CA830B21
+9969DA945A2150A009A16FD1B4AE5B907F33CFB6F9A304F7937F11101B15374B
+8E1543DB3B682D8B3BC2F3EB176F5E117F492B1C0612D70A61561599B20A849E
+93F2421E95D46F139CC54D6F0961234730B08F4BD49A95C10881098721963BC8
+3AF937A35BD3ED0C97DAD0712D564A9016980DDA8F55E683130FE2E2F1444651
+31656EA7FD9BB6A8F1EE609B7C0876FFCF026968F7BF1196AA667B5A6C09BB49
+150DE63DE6E1364C1202AC119D54B38630C01AC40230639A3BF31EFBE5140F24
+0CD1DCFC121401B070ED96C087FFD34EFEA59AFDE7BFF59BAC4B29A7CCF35C2C
+ABBC8F7E53B2114B5DC2577C147C1B5993B555405551B73189C8DF522A059316
+A810B83D9D85CDED8402DA6D104AF92926C6A8E65E4161EA1D9F963B8EAF53C3
+379CFBFA57EB1CE70AC1B77E5768C55949EEB0F4EFE080AA7D7E0D6E668C958E
+1E9EF43BB0D52EBA8DD69ED7110CE794788B42AAB194623D738C286FBA57AEED
+C98533BDC43E75DAECAA179A5E4F28E478FBDC0B4BE0516C42212124E1538E3E
+A2877DCD24F83160899DC328A757477758178D8368D22CBBBCF201C07ACB3F29
+A82FBDE310F0980267A1FD15695F4910907E83D503078189E0D616FC60BE3700
+52A61071957121BAEB355B4C0423B4D06B00A891E23C777AF921DD15EAA19ECE
+CDD14CF2AA130F59690D7A1F1FF0C692299553364BE4980F56A239E6E3C26BCA
+7A03C73D8BC39667C8A8E77962116F8A4BDEB04E19EBF5C4B5B19ECECD640A22
+A2EA3C41CC282E12EC7A08B0946E9043419A8F35A8C0492C374D675125C7709F
+9B4188DE22867A7B75CDFCADCF7F83C015397D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: BeraSansMono-Oblique
+%!PS-AdobeFont-1.0: BeraSansMono-Oblique 002.000
+%%CreationDate: Thu Jan 29 18:27:26 2004
+%%VMusage: 120000 150000
+11 dict begin
+/FontInfo 14 dict dup begin
+/version (002.000) readonly def
+/FullName (Bera Sans Mono Oblique) readonly def
+/FamilyName (Bera Sans Mono) readonly def
+/ItalicAngle -11 def
+/isFixedPitch true def
+/UnderlinePosition -104 def
+/UnderlineThickness 69 def
+/Weight (Normal) readonly def
+end readonly def
+/FontName /BeraSansMono-Oblique def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [ 0.00100 0 0 0.00100 0 0 ] readonly def
+/FontBBox {-71 -236 691 928} readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A989B9974B0179FC6CC445BCF7C3C3333173232E3FDBFF43949
+1DB866C39088C203DC22FDC758584860EC7BB67FDA28CC6208249060E18FAB32
+204779B5C03C0493BBBBC95CF02692CC4DEAA8D2EA90B5C2E64374E92BCB8501
+429B8FAE4A76C0C6B76D6FF7CF9A7D5EDFBCA0E959541C59BD05B7DE43D25D53
+FC3DDA6EF0C2743978A6D03E19CCED4A11F2EA4BCC3110BE8B8D9E2772361969
+C19258EFAFDC276CB1ADE9208A941A36D18A96F6D1C771F81C4B3B8CF0CBC2E8
+4B44D923DDCE84E17DAE82547EA9EA5E732D78F03AA245377BF0780A3752527B
+6E63F6A41202E7A6C4E4F9330A0AABBD04387E12F2ABF531216BF498DC6B6BE6
+06DD50B385DDB864515170905E2BF225AB9AEF29A2181200040460795735C124
+59C90AE9BF9F01F42A2ACC5A5D97D4F6548FBC903ECEFE9FBC8492EFEE55ED6F
+F29A7BB50432A42FF30DB3CEBFE1C2BF83D613F2C846B7F2173F00B4EE5FAA8E
+12EDC39BDDF670F50F6AF072673281554416E77FF134014D5C465127C28647BE
+3E810BBD9EC9F9580C21D2E9479B8F0435749734B76F4C06995E769710828768
+3141ACD67803BC92D5B405AEBD4B25D5DF255B110F1EF1C35D45D24AD0B1E0C6
+8816579DF17721764D5D2CE396276ECE1E6142DC2EEDF83FD7B65717064CF671
+051D92A9993F82D241AA1C3254DBD3DC53886264BDA18DE9FB8F584DEC9A32F9
+82A6131D7140BC7926C074E26639A7141B87ACCD64E61A25DD7E26F463FD7834
+964655DDF83538CF1DEA3D6363DE79EBBCDB429279F84F5DA8035CE823A76FDA
+C2FE77036F5B9D71C0CBB063689C0C9770514E550CDBB1BE97D763729B78CFE3
+DD162726B3F3190F0003F4812E9877545507664B32A1BC0E6C933BA64EEB3563
+39606495CEDCB8EA6E63ABEC9F3558DAA0BAA350F45A6E9B145480D9513B87EC
+14F7551489E0F96B698A104DCDAEF9160549D551093AB3F5F7EBDDEBCAA3ABA5
+F0CD388ED13E9611675BA045A8E99C002616ED89D1F3EF0537C6E787DEF9B5D3
+F20879DF1555A646A79400D3EB80A209937A45A6345C4E51748D3A5C523F9F93
+FCA3628D463FABD8537A948B3A3715BAAEE70345F5186A550FAC78ACD262E671
+AF8FDCC133800B82183CD17B4EA18EB6AD976F91FE3C1447EAB9EACE7D6B11E7
+4D1015AFF0AA59434AB021021583981D521C63675A6C426548A5CC8E4B0ECCC5
+695862EA52F05F456D95F64ED5216008507581A0D7F03997804D0245EEEBA286
+C0943443D6C32EF37801802526D1D201DA5D6F0831D55BBFEB21CE143AE60AD0
+801701D5D1B4C71AC60CCABB5B2DBA75DD6748D2809D68D08A0FC02EDF035E55
+80A35385306E02A4FE58AD6544DECC40A0B403C3629D71E8801EFA47F1A6F0D6
+BCEE740700ED57379DFE792953217878710DD6738243B6ADF65120192BB2BF3D
+FF86ADB1A5CC6A769059AAF0E9DE78A900A9D91F499862A3CDF88D3A859BEAA4
+96773BB6D09063CB2A5EE7EA30709A4A49F8DBB3A8412B0C0BE23CD7FF4FB643
+22E214AC5983934BAE11E37BF6096B8211F53A1A7B07E6FBF58A400CF26785D4
+E9B948307E2860080DD5AB705E8B28BE1616B5F3E36124053EE1B79071D4140C
+0A7E0EF7E23946D5B02F94B9BD0340EBCFB66060672D45DEF45B1AC742225B32
+9EEC2BAE9D72A67C4C0D992CB559E75086438EEB07FF70EAEABDAECC35827FFF
+0C1A2D19421E4E4CBB179BA37C3A9AE772BB4DEB8A013441178B6F38C56DECE8
+E9B49D2D7C5F50730FB699A0B3ACB111453C6EA156609C0DE368F1876D0973E9
+E256659FA6241FC6C8BEC45ADA3CF1A80550E3994AD9FEC320BFEE78AF06375E
+2EB52E57A652974FF16F1FB8060B98C1AC61D0AE912C51AA15E6AABE35B02A79
+B83AE270373D22100F356E079A1A947BD9BCFB9FAEAA1279937D5EFB4627B8C9
+7B37FC8DF5791469A2473D0C3B93A9FD4925C3631B38290202B7D93BBF5C62A6
+1F1212771A4082E0AA3FE903447F4BE93B20CE4E32797500BB02E7DB04F1293E
+E65A01BF2B19965DC8C43D5A108377692426134249CAE52065C557EAF4CA02FD
+35DE047E187B4D626DF88AB5A2B71ECF9FDCA521CDE0EC09FCAE5C0CD879059A
+DDD23A446A5AE7A4C6206BAB9B28B8D5F637451B51366D4E3A319D3C65F782F2
+4E439CADA79BF02F98519A445380503C88D48B1C9110550F022F362DAEF98E40
+4E2450194D0A88652F6B1039AC6283D063D9C0C5054672F2B2D5A50038BEF503
+D7664A51240B34D0F29A0E101AA1E4321C4F8F92DCA331D2D2F2AABCB242630B
+516445E7AB23FD63B22B0B9549972398C05259FAF4EF3C72629FF57D1539588D
+F311F8DA3AAD81554806D43679D0879CA4EB7CBB28F7E6B7BC94448D6759457A
+F638B80427446A047657A84CEB221646D487940055C602E222005DCB6CE28B9E
+9978C70CCEDFABAC18FE2E3E85C25567E70C446BC483A1AF21E9B4AD67542C71
+4472461745AD6BF3DB8C9374E6CB56E6476900592A9D31C8DA957314EE4004CE
+945375880785903717AD52172D3E4342961AABCDD2D2CDA30CEAF03FB7413605
+966E9A0D2E61DB4677507D13FFFBC8E9A98D856EBD09D0ECAFEF61BFE7ED218C
+2BE5BF36ED031F602CA13F51AD9DE7F966659140B9990F4F8CCD00F5ABEE957C
+A3A01E64C293A3C5EAB78289361AC6DE1D044B53BE464EAA5C2CC971AEC3A909
+4627030766B7F5BB4025DA23A224B8A8C6ECC7A07483BE3352E014AE7E6DF74D
+91877AA9E5A3A56B8A17971DC49F8DFE2F802FD66113020BB63E67BBF46D5BD6
+4128A7871487242CDEE61AEEC8F02CC1890DC75E16978ADE06865B4229345FF8
+34144A8EBE08536B5F439F8C213C024A4AE7DB698F4E2D78E826C06B3312D367
+48E5A9D1DD651524129D12CCC40D9676D9E1796DF010A5106137E47FC6873AC1
+AFA8159C33AFB0AB002AF710E40D577CDF517C5A5403BEEF65AD6E18A725C439
+69421FD80C6F658AD29BE5C35E54F6207D068F424F791BDC369E353DE65996F8
+E955B21FE78E89706AA51ABB75DEB0DC0702CFBF27C489D5BAD77093AD5412D9
+21CEB2EB35A6854FAF4C2EF3672639E0E6A071ED31664D7E490B757550B7FBC1
+4BF8B7EAC158940CF910BC7C3010FFA33D8D0EA05A135BBD41A4E97930A45D32
+7AA10DBD6854D45750C34846FF7E009D3897BC89D47D607F0A57281BCC09FABA
+6B154C112BB927C1EE4895F9AE02C4CF4F3FBA281F0256B3E29EA63CD521FF75
+2D7B7B77AA6BA85C87BABD9ACA77DFBD7243373AD423BDC155B24750FDBD5979
+BD7286AE12930BBC28F08AD604EA75996F409F073941D95FD31EACF66FF60D08
+503AFA76F10ED65D2377AFC034EE16379FE7E115DC7BFE1E23529E42A3A1519B
+A113B08A47AC902CDD3F1401D328E0713E47879DEE2E03073C97F8E15BA724B2
+1B1767F45E152B99DC2DD01E6F5273D38DB9992920361141D6CC1B6A58A81E0B
+E223270C8BE3D454E9BA929D63C5BDB885AD523A8432D34F9D9FFB0BA0A5A4FC
+B4883E1A415AB2EE955E834A83717DA49D376A3108F0BCF6BC3828E805DDB44C
+31CFC32F7FDC9374B012C32536E290A4B16EB7A60FF6ED08D9F1F74E2B0872B0
+148718A80025A2D5A8661DBBA6B0F627C9AD63B752A6BD50A1AA7AC94B8A5A8B
+7DC86F13EDE3F912C4ED80C67D61B1E045851A5C61BA3C4C6DB996FFB3522819
+098585B9959752862143A781FD1EDEE8DCF492253235E2A12D4D37C9A6FCE1DB
+3723890A3369F36E4E4341EB1350ABA1EDF7BD18C68D507D6240F4CADD71A81C
+C3D412DD8064281C773368D312C25F0F663FDD5F175E9F4A9B0D23F3D027779F
+7738E6869A887C552439E1CADF642D08D9A0B0A7D19A6EC464E85E7575945B21
+F712421B50424D2C2055E7EFEE0E51C4D7BE0E28CF6994FD5F8FA4BCDB4BD206
+D749416ED6DBC83D52E4859C7628CD9288AFEFCD622721705E375C439DABF76F
+897FECE60AA138C2506D14FC2B8F7854D771426570AFECFE9831DC9C4594EB9A
+D61E898B4338F4A57FD6C825694EFC76015BD5B5DF105323C991D64373FC108D
+22A8A107230A5A118DE26D2B134FDA4A0FE3922334381AD94609BB18762F4137
+2AD265EBB5C19B833BA546FBF99954872CAD7038DE6E22D6D8363B260074A2A3
+3432E26D362ABEF95D3C4DABECB10DC7F4750FAEDFC6FFBF8C9DD43B9A1B227C
+84C54319A3565E1947A199E706268D54FCCF862BA9C6DAD8BCB8284E7F7F9A6B
+C335A32DCDB32CD2D4B704751934AA06FA86ED92C2E138CC4BD4BCCA41F8A726
+3D34E5DB51AA4A5242F317C9EEEF4A034A349773AAF54B3F146614836CA1DF48
+FD7B04F7E1375C5BF720556F44355A5FD18D34E57E20EB9C52EC8EA95BD1CE26
+6508A2B6F942D8BF80184F3F68A49EA26057632B88E322F5793779B63393098A
+4F1DA2E8E8C06CE5FF959C22019EF1DFE83E26B47DBD131F5A7AAC4634AF4052
+2C1C317E5F51FCB7CDFBC50767780E178529AE9D9BCFCD011D1404EE44AD6A6F
+AA66216BD3F6314B31BF48ACBC0323614B1DEB34B9FBEC02D34363210A76B3AB
+274DC2D67ACF33522E163F5C102F0996FA2C78428B50A22C69D9F602F1B509A7
+94B765A498DC5ADD3AA9079434ED30E03C3B3719878EEC443BA72FDD2E8ED3DD
+C2FEC45AB4A96A6379475D4486C9D61F255A871712C4D95A65B2CF33741CD07D
+36F965CEDA8D2A78CE7A3C6782A916802368C95C90C2C1C0BBAB95217C22AE84
+F30FDA2E34B4A8871BE8E279C14BEC7185F491B1B34D68047E6F5C2CE60B0B48
+D1C408193AED7ABBC2970A4AF8601D3B39F2113A06A0D06CF1B601F8B5B088D8
+76DC229B91D2445538CDAD88BEC9605265F224D41BDA9E3B4D571BD233B9C7E2
+1F1408AE8476F0E65CB96694FBF9823BC7B83777041C563B81183F027F16DFA5
+78A09607026D0EA52B8C03732F12462E6E7BE50D585616A1346AE3CFF865B33A
+CC1E0BD0FB84E66A3A162F4EEBF2A84768AE232E57EC0E5DA7108CC1D00AC383
+CC2477110E11FE616DB2691DEB44230B330EDB576DF31B0D427A9F189C22A9F4
+80461114DE25317CBB000E3C2E60556B94CA2A3312F490A6733D753CB146681C
+057094FC3EEFAAFE189A68898A2EAA5961A851B01BF6CDCECF333E207A9965C6
+DB37F6A7CDAE6D17FD451420A55B276D48630CA997857179415F245135FBB40E
+5BF4417E922937AE19819BFF8FB5D310E4679CDEE5EBB6DA9C8896545318920A
+EA07BABF986CB09B2AE53B2D2AC1A0DA3BE5BD68DD5E17824D6AAA47D716C316
+8A7F205BA8CE208ABD7B062195F2B8BB8E3697A12E620EC92B212EE90ADB9D8A
+AE61F29E1956DF567514925F81207324C164F3630FFF0E9799376AA619AF774A
+92BC252A0D49D244FFC336F89297AB11ADB3F954122F49687AA5037D4BAB38F7
+0EAAF8C7265943040605EF5B6D04A56A166691CACFA44BA6ED9A12A85B9977B8
+6EE27A65C0CF0FFFECE92A5306D580573C998916419060511C8BD500AFF2AECB
+852A03
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMSY8
+%!PS-AdobeFont-1.0: CMSY8 003.002
+%%Title: CMSY8
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY8.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSY8 known{/CMSY8 findfont dup/UniqueID known{dup
+/UniqueID get 5096649 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSY8 def
+/FontBBox {-30 -955 1185 779 }readonly def
+/UniqueID 5096649 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY8.) readonly def
+/FullName (CMSY8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 2 /multiply put
+dup 6 /plusminus put
+dup 15 /bullet put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
+7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
+DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
+511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
+1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
+028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
+1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A4D80B73E7B6CB7548
+0E1D77FFC695988391DC44AEED8CC947B3D7E198B9620E2238DB3A2819182F03
+14498B8CDFBA48926DA721920B221FB33BC21A8456AF10891403501D0F6415F0
+7E041AFFE109F640E54FC1A365674711EFF94E752652A4C8DA62CDB1149DB899
+2C4A4BD77A06E81E93C5698C05DD02F74A0756082738BDB53003B483752AE498
+DD718AEA8F3FB5A6B7E2D2AE8F309065F3D556F9A34AB90C88833A54295E0982
+209C466A301BA3372AABEE20D862C6DC6B6FAC1463C8CBA8AD766ED1B4C9D712
+2BECB4E6ABF558D8AB5281C35726BB8D046982C0DDAE17BFFC9394125E4E84C0
+B283977D31460B8EED4346CCB09F64DA0ACB640C6DBF32F2DC30D54668C1CC12
+24C7280593088E9958C047125C323E9C842801346A9CE5F50413D69F6DE99471
+65D2E387765E92EA4C43F17B467DF6E266D92551009C0E52E7219AE9F5E2E8D2
+88852086FF3600BFB50AF3EAF8C009D8D5F084B510F792385F328F7EFA8C38AD
+CDAB2EEDFBC6AA45F6DD7364C2F02DD2BE6C79C8361E83D4267CEC2407689864
+B57B5D967FC80AB3BE8CA43955FB0FD3081D438437559AD24A7ADD484C1E4A77
+B00BDCB0D1B121FEE983412E1EA5489BDCE5DCB4A7310135956B230C0DE7BBED
+516369A92BC41FAC8D73490984942D930DC193BF0C774C1AEF627B969EE4B001
+11381AC57815D7581E2372A1DB740B09F4A7FB4318B765DA4E7B44E8805CEF85
+44EC3B10613FE7B397BF91B69A5CB2E9086D1E7A1FAE0A9ABF2A237A2D29ABFF
+E392A18AEACBF28274E775D3FBAED4F46B982B9DA4602E24094EDCCBC9D6FC0F
+67C60376879245606C0B9C9A678E8917516BE1CF097B1C75C9F0DDAD6899F08F
+81FB7A198D45FE060CD2A550D9B8D58B882B969D7BC3EC018A1FE92BDB262835
+26516FF97AC387EA525FF987E5EB1EAAE4EA5866C9CC043D183763C530F7D7A1
+2070E4044507C4E5611FCC117FBE4396E0B24F672CD53D5FDFA56D561FB86D40
+90A52A7C7F29A119DFFB694A8C445367746A49CA5FA83163BE448EB19625DF26
+609A8C8672631A10411036CAA3D6C2F822A4B2505DCBE8E1CE6916AE515E78CE
+E8C894B134BF811671D17C19248853131DFFAEDB24B15FF17EAC194662460642
+48D23515AD434C68DF56753806FE96DB3A29F9D4980E0B6EAED7383F9FAD2584
+8F85679D6D1933677ADF5D31FE6E43DABF137E834A1DEA632D36EA5728625159
+8F33348893C9D1C510501628E4A9A80587DF6E179FAF68B158406A3EBCD726E2
+AC17F2DF8B3607072824D2E5A6479F7BADE32E603E54E7A83BB2DFDEDB0D80CD
+1F1BDD4F6C9025CC3A8A3685DF10A8183FA80CE0F0FE2BFF2500F76B1037AE41
+56D2D7FB468C3CA7549E3599A2AACF66302572F1B35BC8EF7C23F6FC4B720228
+1D673D903111CE378AAE83480B4DEB7EA84BB35F4F7BE997DD4FFF5A9B5E7650
+3C7365BA0965B242DC369D03215651184024A08EC284F1798B0726152884B4D8
+46411B3BC8F5CB53A70AD53BD7B1AF23528849B56CF2F75609FE715878CF6448
+38579380688B47AE3D374B0DB6ECA5B8284414090123D47F3F9DF389E023F431
+6B4C0DDEE4190DEEF4CA772742012754DA9A44A8F550FADA6D8FB0C512D5BA2C
+BB7DF71B1DA41FB6936BA71B710CC6A80751E43436F0F5888F51AB370DD4A088
+40F402661E08732C960705C7E0D29B8DA1A8A3E119409E51EE575E9655F47568
+023977917C8EC610BEBDB9C1F4EBC192084D63EAA00EC87B53E86620BB5AE51A
+579B0F8E1972CE1DA02832FC75184F45409DD9D413402C2FA27BCB0AE6DB4CE1
+5AFB114E23232DE07C4674969A1FC94D152C6D3A611F029ACF4D949A2C0755D0
+31C7DACDBB4DFCFAF7E87295CCF5D4AE28D87ABC3533D87EEF1507B9FF9063F7
+F007DF03734A20BC3A198B049000C92D2849C62DDAA719FC28EB372793E20128
+D786670E08948808BA45C4F6AA0DD8A8357CCC47228A760C5C7864853BD9C9A4
+285E446CB72C5C9D3F03FAB000810DC5674061FA116153040743E846506CFA67
+FA8770E785D7DBC7293F37389A0859CC22275B23C44B57B92A033A7BD194340A
+D6BAC6E103402F8396A5394C617CB2A27D9500921D5DA06115EC81715EA8E360
+4A95DCE8689CBE268B8E6C8B806CFB0ECBF634250243C9E1AFFACAD65311FA4C
+1DB0988203537E5EF12B86FB454D06CF05E4F4FC4143D62920E99304245B6ABC
+82E21192BE94F5E980DB21E07FEDF0EB0CAF4ABDFC20EF08A2A44A7940E2862E
+08FABA516152DBA899D6CA561EB08C7C8298DD511084E5230CEBF28AB1D84C85
+B5BAF4616C28FE05AFA4BABB3BA03F8CEEF3F3EB0D3034BD3D8D06629B8E9EBD
+72484057E71C9EB4DFC7C2CE7749271AC926C2419D618FB0B60FD6F81F0F2C04
+E529CC74DCC9E4AF32D935D7CA65FBD0842A7BAF162D08F782E65DF3AD9EFE69
+198AFA9208B22BC21BC4ECABB9BFFBA84C8421B74748E1EAAACEB59E566838F2
+C439579D6C75074F94493F7D5C8942D881AAE6302C37A61003AF77684EE99AD7
+EB5EEEF050C52E75E4E842F8174470FA60CB213BB6F257EEB26CC55D1202931B
+B981DE2535A87CF37BFF912220C117EE166CCAE58BBF624170FFBC0716726B36
+304D698F2CA131675F7B1199E6581B8C812C4FAF75814282477BE2B7EBCBA7C2
+FA6356B2876F89698C6C2493989E9EB252DE03BB374622A7C88B8EE9FEB4851E
+02F85CF70CDCA7BED5EC94E81170FB557C3BFC6F32CD70B506E56A2CC5451592
+130C6F570C679577C44D60A811DCEFB3535D855259B1021AC168DB76DD38B459
+F1813E3DB20AD9275D58880CE94058490ABBBB0D8DD16D4A65F680B30057F15D
+07FF54D779CC978E90A850A2D8D79961EE276BB26B594C16F56557435671A3D8
+ADD3DD0BC4BC73B0652B9DA8462FE614A14A11ADB2214EC4910823FB4CEC8938
+24354C5C62547EE5710FB5ECD93AA45DEA7411F6CA8D5B5FA222685E622AD73C
+1BD5DFD1C8F253352D6C7D14FF2FACF07CA5EB11392C6A33E9CABFD99F743BED
+55E8DEF49E07B9444171D1780C698E5B65B540F41F845AC188DC7C0C8B5BA5F3
+546BEAAA4F29F0DF30D5AC12A60862742623100074457BF2D820DCAAB340C1DF
+22FF26992DC02F276B40A7C528C84B72CD189A4088C90070486C49A1014FDDA3
+5093FC12DAF309FBC063653E6A33E14EB51B081126AB5BCB8016E975060B796D
+6CBFDFE6CB9E191F12E309254BDD6660E3227012F5DADE246B02B6D8127F1EE2
+248F48DC5ABBD229748444420C868450602120664984FE3A8B2373232CE5CA15
+E67172CAF7EA99F73A66AE33B1EDE5E8351DB02497CE3338930147873D4E46B5
+E918F5592A21789FA9F46232BE693DFC33240E2649D6AC1940B101D806089436
+F0CE230BF6D0363510378822891DBD3EEF3365430E74FB6C994BB40C8EEDA593
+CEDAFEBC3B87C7C04F52FBD7D557A77B44855CDBEC8A8D26F44D66446B5662AD
+15B6B79D13BD262D79BF51C09F8F690A61C7F11EC2E05F6BEDA273648E9E1EBC
+3D5F1D6ED486797F753064ADDA8494405556D43D395B1487EDE877CCC1EAE954
+1AEE2513DDA94897B733609E8179DFE1975590568202EF20D58A89B34874CC3A
+A5579473AC65E0EE61545AEF578ADE10BE3FB3E2CDC96678F613E4DEF7BC1B38
+8A551C93438A0540E292F65F1FA73D9AB30A5F545284085E4930A570C1807995
+7108AA8194607304488616DD4AB189F8EDC5F4507AEFD7847817A8ECFFDD2DD5
+DE95E04EAF2774F8AF661827229F01E769A32734097C457EB6FF056D90C46C5E
+9F936AA6BF2EE8244BBEDB8862E56423F5845BB10C8809730B011D650EA18945
+83C320A3F4ED095A5EF91929FC877ECC28A1C2CE74A53245E629BF46C6534983
+307B1C94EB35CECDEE86551F0C308F66690E591C5D9D8FE14F534CF3F5DB6D32
+39D7C799F392C4E65759B7BF61F4D8312E3B26C31466206A367A0DD7A90D25E2
+805D36ED5CE0A4BEBCAC0A348FADD2D2AAD670E28BE6E33F627B4A9F35078B1D
+6688084C4C18840673EF9B3526172EE14EF64E97C8B006C27DF6EF73BA6E6459
+3608F10EB1EC4B824DD5360B42AFF2084788B165747AABFB2C9C0EBBA9C6246C
+08F28143809315D6268E386F09BBAC54C34213438B56C386B34AA457D149CC39
+A3C163F56E3C2E637C63A79CF7F2DE969EF3AAFF75F3F20499A9ACA61279D545
+866FFE57D25998244F448AAB042B141952BD653007A889B1A716A4042CBBB827
+C1ED5E3C616C22D5FCB39D3B3539F9B71D50D25ECD2E5D953C7A5194C867DDB1
+75CE10B2C3A20E8CDE15AAE9F549D034838DC066CA649C31EE365D46450AF18B
+893748D055DD88C72391FD92DDF0AA1A1316051BC756F87BC9A425019B2FA7BD
+CA9F35E89E2229B3021DD24C9DF0DC3217F44DCF510116DDC9E92EFDA3E0A892
+491C8961CA484BA29B8CACD2FED2E246FA7414F892AF7B9F08698FDEC82D2E4D
+8C6ED1FD9E0BA2645663E7E97B0F780033D025F2EF3B364574C03F04FFC4E09A
+3D4182BBFCCCD8CA54A92434E2208803ED36F931D31C7498B7FCEE4B78AECF11
+B27123A10F031F9CBA36066680E4748E346D18FD0EFA395D1A9227530618ADD9
+64D96C50A0172F712CB427E8F7170F8A1691FB95B247A271499F0E63676BD64B
+167438333A3BD9CD9641AC637E0ADB17F1E394DF34AF5A2BD02030DD087BBA02
+E1209338B74075744A9A9966039AB6D223F385E06FF359257913E6C01BF32F5B
+A3640C7CA41A6C51F296E50DC1CD1D68491CE5D75E0ABDD4C5C4A97C8BE2BA35
+D91AF9F8F38E7AB8C1778B06A212D0416E6137087329AAA2679C51D014CC4DEF
+0F1543E2FD97621E552E19B29AA1368CB5046C188BA59B1E1875B25FB269DD2D
+C0678A42CD310702465694F2BF302AEBC43F714F7C657505132DDA71CD23D17D
+628BF3400EB5DDFCE2850F31B40C5913394649AA4241CF646F3939916C2077AD
+C11F8C3E478586AA7931E327333FCD8A2EB31DF4B47AA2F31B999556602DD998
+5848143C0CBD0B5187DF08E675550F2384D48C2954EA7D16AD2B94DF97C194D2
+302CC47BF968CB1F6C9641A87525D5C6972ACCA1D4A4B4DA8EC54BEA6E7312B3
+2737754A9FCBED3BA5F8220B751506BB0A5BB5CF706AFCC04BFD713A3BE3C842
+9FFDBAA0CA5691D0FCE76134841A169970903843163DE68FF09649E99945DB64
+491FD6D8B2DF237DBAF550D1B74263B3BF1EF6211F40D4DF2DEC46E4DE557088
+5D458A7CDC6F34B8C3F5C76582C8B7D24A333AAE0B43CA67436F8ECAD7C50B12
+35BAAD521033D8024E4DFCF01580AEC63BD5F8ADB778F822AC4FF0DA608EB7CC
+1A52A51B9F38FFADC0D2F4D8394C5D598123B483AE5AC1215F24F2492EBAA134
+3C58AD4E3B493AABDF753EBF1F04058C6981C353D6788C2D3294165B667D3765
+7883A8493F5D772F789F73979B254BB9397FDE4F8B76CA6FFF312F4B012949F4
+3EDCF1AC60FFF2681549DFF430B498405E79CB407DADFCEDCAB1E2FAD3B0F4C7
+B575A33EAFF9F67D37F50BB06D06834EA683862991C5BE340D4A7F8D131E733D
+289F72977870F9958102F5D835739F0F5A642E7194E8AF7FDA2937E5C0712CE4
+EE15CB475725030CE0F238C32775D3EC95CE3D0886046E3EEAE322F59D423E83
+DE88DDAB5CE0F70537487EBA5A16A9306BA7DDCA14A85A9F83B3BC3600DC9421
+BDADA2704A5A24F7174A3A486ACE68739EC5960038CB44D969A594E97AE1F42C
+42C1B7E3A456B3CDFC7683537B337AA8777F18CA45B22C8BEB18877DC624496B
+9E8EF9F386B7FE4D94ABD5CE3B5786E76FE04A35909C472C04654A4405932EE6
+A4A3E0F6DB088603FDD82F0EFCB85A962002A662D1AD0647A2F484B59075A1FA
+9F4327D542ED7962620B998ECC3A95CE736089593461CED9B5AAAB05C2DA3820
+5AF29B32904E1EEC357C8E282189C6D8F562DB11291091E6897E24CD8F8E2A34
+67F35D261E01336152E69831B0CC6B03FF1AC7EA22B745F513A25FE10F70E74A
+3FD71FE1EC9999BEDE7CFA6A97EA2DF621711BE950FF8960965685BAAEA71FA6
+36F165573A0A6A92DAEE41A9B0C97BF03419FF6BA1F44524D00FD671EACC4233
+9A857680DFD27B9F1E7A760058C8277B3761DB9969241D1824A7DADF70BBFC38
+89C6DB9091E3BFCB36851CB9662B365A4B7384BDBA1D385902D1E5DABA72A159
+63790096B927EA49299AE03E41C7F593F3B995D1155E91C62D5F68845ED3C797
+7798B56858F96C2FE2E37D812873B7801767082A6D6B60602CEB94B7F6D7A142
+72814734DC584A18D1FFEA7333D4C7E2DFE5B91E9AD92EB52533CA52FA888980
+C79FEEDF0FAFB3B20B497F9AB668BDAFA364B405916526D5C48E57DC30BC35B9
+BF684FDFAD199D9A28541327F3899AD505FBBBBB22F419E22E0149EE5FDD2B43
+AF442E2724EC16934C307FA731F90AD1C76B74569B78CDEA7C19808233C6364B
+D049F3F50A68D3EC5F29F2B96BC58C44AF90FE13F244B7129F14B5DAC3F3F310
+B330E67CA4EB76F895DAC8025F11EC7630EEB4826B5721348FA38F28B2AEEB1C
+5F7CA413C486C94B1DD96988F07F7A08D3635E28624878E55D4FFBEB5E183CB5
+93014D8A272EBCF3A09133603CFFEF43A6FF059BCE525706D3795884FB495748
+C8AFB50DB464459A5C36D7CD087631BC09C693A11BDF1C6011D9864FE66EE8C0
+4824A42E97D16E017C0BB73732D4537E2A5BB283B3568950E5681364DBC1D6DA
+058A122862A44ED85029A7B39F2FA7C362D859D0B429E056891339626AE6091D
+74F6110CA32F8F3E9507216997E6AD1A2F1FFBE8B407C9880DE230E234F6FD41
+A291851178BEAE5DB9DEB22E3443807E2BCEF12A4AE8C490AA9E3D2918329F47
+42314CD258A0760DE5FDAC4AF7209CEB530B8508B278952A3638CA8491C3B493
+516F461610DBAF32E923ACB834B15E2D169A10F2609EC0ACDF7BDBC777DD2C19
+2DB330FD557D3B06B78824D6AB237D8F2D57A7ED35F02CFA9290ED6893B41657
+A2485524A3F1642FF5808FDB77015D9467EDAC4A6BBE8A175833B1225A5554F7
+2C60207F7A2632A4023255E8EF1F38C1B8216C9B03319B60BEC9799E5378683F
+46E698FA75F2DFD40F17C603F3335F1EC70DBA1449C7A33EDDD46CC3DE4A6557
+EE67BF349AA8680FDBF415DC527129288B5879500180F75DF80394EC7CF11BC8
+9EE9A4ABD64DE3076A2963F83FA333F19FF74F79ECF36A87A31D6F125FD2415B
+3F6A6FC33C179F54CA164835F3C3DB62AF444BDF27AFF23098C7212477F688B8
+6F48D9AD080D544D57FEDD33D3D9AED9346CBB644C97C951D4AEEB2BF6F0CB18
+E2517BA7ADCFD00FE44E290E731D53E5C0D762FCBA08004562DCE6A5EF2FBB74
+B3053CBED3B6E896B1C3356DD9E8FCB69691AAF6BEBA0424D62B9F266D560B40
+89E20A9F35AD4A7F65A7183761ABBEE0F7EF26ED3565A25516A3A5A57143979A
+1EEED8CD52A69E4E1AE4795F3EE0CA21B9F4D166783A9AF54B08B6C56703932A
+310197E328C6E6A6BADAA11D66A952964F31FD690082FA02D1E2A4512A9F2742
+33B203FB770A3A1C7490ED630D0FAEB3066429D0237E18818EC368D0DA72EEA2
+557F8D2FE98B65685700673A9F840C8578B6D7B384C4A0B2A77C61096081F6EA
+8AE970FB31850DAC38AE12D2E458850E6C6CF9E5CAA86DBEF5298290123A8B67
+E6AE0B5105EA2AF7D1E5EC95BAED8CAA8399708D4C043017B3ED93F64B37B48C
+6DAFB92FC1F21A4EC7894E2A0D724A524696A0FAE044D3C8ED6C393BADB09536
+AE22A4FF834DFA815E1F3765392D2DB2F4AB03FD01A2656D715EBA1C3063499F
+2468B192BA1CC682212B97EB81FD61322F1FB69E5C5D1EA498A138CD5AED49DA
+28411430C42A3D1366F57F0124EE7C8370B7A537DE55B277110EC87721D864EF
+9C47AFF828B76F90CCF6758EEA4132F47399C1D8FF6795F21C209B25AF3BDEA9
+B7239556A29427EC5F15889792AF24609C504CF2133506A5A20E99C49D3BACED
+D5CB3A6304B44D1E9607E65DDBFA55BEADDF7432514D98A43377F80AC279BCB0
+8EE0859DA2AF3DC8F13CBD9D331F2084410710561508E3DBEBF67284C10100D4
+CDABA196D49CB1B0730BCBCB20E2D1F33D1B6DCDD2A7AF522CCF150066F7AD41
+321740DCC42EC89716C017789E6D18BDEF42491549B10D597A2A62B22493D71D
+526613EE460EE27BB0E255E79C151917228441F009BE79BCF88B7203601EAEA0
+8D515EBC23BF1B8B130041567E5657CCD7F2CBAEFAEF99FEEB2313B56BF0D8A0
+70762D4BCB250896C7FD77FF97F9849A0B1E52A3122EA400A60633895B3C4659
+106A2CD1B19CD91830688F8E2C75D7460CE1F8554FDDD9B654176C32D7151D54
+3DB35F53A1630B3BF1B4AE4DA3A13D1B7A3BFDAD28CCFACA9C9189E13DDBDD8E
+ED04970E642208CF806F25041575F8F0DAD3E6E077E0A12D2183496F1E0F0F60
+23C5B422A83F133AD7CDA3A283E762F2A1B159F6D9ADE54E88654E1284C979F3
+7E12A669C8517EDD7389C32D8598046EF6B0A977C6695FF1A58F18DA66B316CF
+42A175E8C3DF78C5EA1175DFBC9386073E7084524EFA025D40A5A90DF2DFFDAC
+BB68B39D57170DFE2BE2766EDADAB8675E50B667A3203BFB3B55FF94BF09BDB3
+58468B10948FC0000C9B78A3F02636D923C95B29AEF20B78B686E0648CADA2CD
+FA951A90AA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: CMR6
+%!PS-AdobeFont-1.0: CMR6 003.002
+%%Title: CMR6
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR6.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR6 known{/CMR6 findfont dup/UniqueID known{dup
+/UniqueID get 5000789 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR6 def
+/FontBBox {-20 -250 1193 750 }readonly def
+/UniqueID 5000789 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR6.) readonly def
+/FullName (CMR6) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 12 /fi 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 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 105 /i put
+dup 108 /l 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
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DAE339BA29C1C6F656
+1DEF13780383DAE38A868377CC7D396B2A05F341AEE0F8BD0A0191F51AD11A4D
+2E927B848A1EF2BA15CFBE57A51E3AF07598275195C9613041F71C1AF39E61F9
+EFD5F6512FBDA76E29DE6B508F62F5CF9F73F5288DF1C7B0B82C92D3B6358BAD
+EC3CA20BDE55DAA7CC58004AA86B6CBF8C410D8287E88BF20588A39309C2B703
+CED322F030AA6069869064486CA651DA054FF3F5E56534CA358B0829A6B954D8
+9103436E6B06DAD1658BD4A95AB41343B01F5866FC87C4EDFC71F1477C98F8E1
+1DCF27EF743FF90BF918AB8C4E5AC35841E2F745480E5EDE1C1DEAFAD8D0018D
+2C1F1CFCAD9F6609859DEDFD1648A6CD23D8ABB80747F94899F17C8F3E6CA55A
+E176F19CDFDAA0D7C920B3A72051A4745560AC81978C92459EEE5AFE85AB247A
+32981139CBE352B248F4BE5F73503A084A3E91F05328EE521D9669E44E202584
+5407E7846F9FEE3D54EA18FFB144BF2D6803BF65AE402034B3CDBB40DD24217A
+3CE0E95E2717CACD603A958187C42B3558AA38D6B6390EEEDD396F96E6041FCF
+6F8888221AFA87EAD79F46E0E32CAED91E6C8500879AB6E580C581E8C8CE9B68
+2BB5EFE2604E8DCB2432D39D75EE556969F1B2FBDF6A4BC72D106AA7CF22C268
+464027898B311613E06E1584707F262F71D9F49D2149306A88E02BC60BBD6BDB
+EF41D90F19197BA9AEF32B5E63D5B9FF41B5602F9F786E76621DA54D574981AB
+87A72081EA05D6C6BA940EFEBD0904EA4E77BBCE17E20B42E1722617E0F6EF32
+F1ACDE9D758594E9C81049CCC10605A27C2A06872FBA9F159CB155609B496ADA
+4886F478E44029B5E620DE8319E257697E93E1CDFD27D560E2E4D34507020E2C
+D9FF06BFA14E056D81DF701FAC3ACE4BE6C098AE116E079F0044391EC1661F6E
+7A93B9320BD7F91E8FD2E8EB3F5CAE997D5CDD35107A1D35302260D1499B8B65
+39625B7925F97D917B66BAFEEA992873F07220714F192839948CEA080BDB9A03
+77B9DD032273DDB5629CB28B5D8797EDEFDBC601823E038384C90C79012A7D96
+8F27784DA15BACE21501C26E3AFA5DCCE81B52B0ABAF71A35D33103EA86F2415
+A39A830D559C5C6CA7423945BD3DFA942B20A06D7A8D8671F9831DBB52907AB4
+4E54776D29C6085CD9970B6DD21DD3EA8EB09C49CBEC6CDCEEB0BBB1B8827109
+3BDE64DDA024D67F098D6C1998506DDFF7907ABAADA1C39C759C850E0C6F8E89
+A392D1C9329ACFFA92D361218D75E115F70A47C53B73B356D703E9C499AAD098
+AA9C8119EE9E9708A9EA3049E976FA19AD04210D5F6092C7903FD155113F3A3F
+269B746560F70970AC9F8D09956E0E84DACE4112C4E7C7F6B3F0B63D26EFF95E
+2B2E9699D16BC8AFC4AD9113AA3A974C9E82E877288CF71E9169D2DCC61AAAA6
+C536E5604EF0716F6487292BBB677518504B52C63822BED3BD5FD14EB41EE6A8
+AD4B6CF90D39F98E12A765B645CBA3E8552FB9A986390212CE119E7C3DD675AC
+17BD006144BEC534DA2A860188619F17589008409C5A309CB83FBA70F6446B6E
+2B56991B6A03B1DE10C621591CEE45BECA27C54BC8B4F1754A9E8F660812710E
+117850E1BB6FD89BB13F8CE391C43DA89EA67E9C3E7A4697790EA26B0E4E2E80
+DCA508873A7AFFC11B8C02EF86C2316E8D8B6BCEA37F81A3A87546705F070C3B
+9D4D28C366CEBC1EE485B8E2357DBE46E86C87B9939DADA60888AA9F1B92FECC
+CC1C198DDB594BB70A8FE690ECAC21A414BAC89BF019F34D2A130F485EAE35B7
+2A10C67EA3A48A4D9734759CC93AD85C6A570500AE5AC9973FC76EFA06BF5DDC
+26E20E28D16B50957EE01AF2653F8D860817967AA5A9BF9BF7ABCDA710E9F34F
+4F0EBCC32B3C9C2971F6225D2DAA6A451366B83F32B2ACB83E746D365B2DE38D
+C1AB7447FE7B37F9630E410E5D8F0ECE74DF46C538947B3A167AD9F3E4A7EB3D
+60F5425AE75AC3A27D39311DA35696C3DC7282AF1532E7AECE63D13DDA0296A2
+01487185FDF1875AEF55A36C17D6A8DD329279D229259463A2F05CB7A874374B
+E2320E1F6CFECB9C1CE62FF468C29751ACD9754AF1EABE8E7696C2888914416E
+235B6766F20FFBEFF285277B639A51EA2F2E30D207BC891B00F0436008F980E0
+9EEE7FB375BB069B9E0BA11DA951A99D8E60B4F920A0495C247FA7DE904765AB
+DB5C3B2D634757E43EDD6FAA4DB3C67F82D6853E1170F0B2D8CE496DD4E72B0D
+28277BEF172F1402959F64527F9B640619F04416DDB9D05FB2ACD019CB9C119E
+E544D24EA6DAC5C69785394EA50E6EC9AAA9E14B904EAF29A733C6D7942B63F4
+85729686742F26DEF78DF0DA1CA7CEFBB684F4CAD99021A3B3D1FE03B9C5A4B1
+BD04CAC89BB91B11952A2B17A61789BEE0C54B46C03FE9A1AE73D17CF94BA30A
+237C29D414C3BCE8E3E2DDF83C0BD59DCB66C4D2C3DE73DA8378F3C6C8035D28
+7464399857E57651A53E9C4AA68DFCA91B2376CF98AC5290FDB9BDAD9EF1604E
+9B0A70EDDA1E564B6D2456E7BC722454ACA8C4950FDD44B6EB9AD01169A9F845
+B06A0DDB7897C847A5B1F42258AECF3807AE936C8F52C3A7A0A85D68160AE442
+FE81543DA6702D76AB6E8701F80DFC1D87C961E350D0E52AB2A298B9E5908600
+7E14D2A87309043CBF13F69AEAAB1BC239DEA88EB5176624F6046664B1D2691F
+FBB2071D3706F97DCCA355A6DCC4D09FD35DC078FBAAF672FFDECEC61050A120
+10B5A96629041303FD01ACCC7686165DED6AA712FF8E5E85DE33C4E7D877C49C
+6C469A90410BAF60BE65ECD91CDC2EE7AC0CA8BA7B53865F26092BFCAA0BCA77
+B80DC51DAD09C93C8DD8E43502B4B68F3D5918C3492196292447732BA90F5AB4
+9F5E1D634ADE1CCAAD028DE5EBA9535F6FC5908DBD2D643E0A7E059C8C386FDC
+E72659C0033F535C0D7F6B98D0335552D0BF3C6E302B672A5EAADFCEF81912E3
+8F54E6FB7EC2B325125159713D0AC50DEE3673B9B148643727E94C80971A2E73
+5E1E13237BE69C84FC039DCE02ECE2668AFD047F21A61BB94A9F498C9FE5CDEA
+B274B40728B6F6CA9B6C15BAAF92F465B0D7311B46545CBA90D874839443CCB9
+3110F052EB247B24B45A3D2FA6FBC7EB2A4BEC2A5892914B3C5EA3F4F9B9DCBF
+6F932D95700E045B49E4B1F2C9D2A42CF39CA2F5A2654E6E8E6E92473D28AACD
+5E35C6705EA728F704F5996D286BED433F976AB7E018621A577AED7C0AC0A84E
+A032FE1869F603E6F20386E3A190A30A21EA886249ECF8CDDE2C33D73BA8647A
+3DCA7A8DD9E8EC8D9A415D126BA38B6771C489DFC419303EE9C1B83FBFB3A0B8
+97D64F30E4BCBEC24DF603FF3BF541E00D5804B6B6543D3D2B661CC551D497A9
+9DFFF535AF424B2F3150BB39AAE8CDB306AAD37767BA10BADB031DC2FAB16955
+EE78342CCC0E8B5976BF98F215461A8C6F63EBE6E2F1A1104662DDE53388CB51
+8B44F3534853B8095F3B746A2459C2EF800FB1EF7F235EBAA9731E3AB3BE4369
+1D3636E3ADD5BDF0C34FA80E90D8A1DDE770943FD196E0A7C5F1FAF6970B34C6
+4673AACA6B2B5C12B9608521AE736C1F4B97209B063D991300ED5AF3D7F27E76
+68E0B858FD8BFF86581E2B9548C691E3E5D9EC4D39C9715CDE86C7D22223CCEB
+8A38C776A30AF14912390A7546DBECECD7A687D4F08646E57A12C80DCA022B7A
+33399761A50B8E0ABEFA1163EDEC3DFB5DA3248792EEEDD894872D4E6814B4C3
+548BAFCDE0CABBCDB97EC6D1BA47F2E77CC1389BF19D73661749AC33F46A618E
+A665A85776545BF9662F2179D7BFD604FA8EF4700591AF3AEC647E27B24B76F3
+133F9198DC15C1AED830E737909E43EB91C334C44BA35810007A3888E33F5DA5
+B3B2C35481C648AFE630CC3E08F77744E401B2934E407D1EC17ECE737606B076
+F8DE8EF3344F57495EF49D11580D6FB28AE0B1422521B320843B13467501CAE2
+3DB93D7BB779F73B6AA30050DA74BDBC3F8DBB30F32EAFD07734A151BB2BAED5
+C9B1F790059339B64BB4146470F30928C9A49AE88906BD6FDB7431A4B50809CE
+0F67ABA01CDCC2320B0B097187B9299E3D80CDD7BB5DD5BFA7B28D924C5633C5
+45A23CCEE097C41C3759C1FA8DBA0DD95034BCA89BD23FAC18C70093F40FF2F8
+0FAC5DD4835F2DFD40540E9A9E9FD951A8AF2CB766597DE00147B163BACFB7E6
+EFDA4DED594F1C746D8B46A1145E0E4058F5917B3F21E9BEBDE745EE72CDCA64
+FB31EF7A2E55265F32559480E2B6726D3DE26FFC97EB4E3160F117E890C4B2E5
+8DF310E6A728ABA85540F571C024F8DD58E1D7827FE97CED5EB31547EBC36415
+02B8C0E10B7E37D816F01D56A364B8552CBFAAA95BC4BDDCFDE91CE0EF005B4B
+7AB56FFB47A093AEDF0DE1EA48FC8103CA3CA1470864D2693E360006D05668A8
+AA422CCCED20DCEEBEA5CE0DA1EFB00FB93E922B18124FA11A88D0F6E0F719DA
+57603DD5DA42E1C56C2FD9E5415AA199D4F334C151C1157E75C107FBBFCEB706
+5F4EA47A29B54ED8CAEB8DDA2F53D2A703B95487619780A52DA1270011648A28
+AA64338E04AA5B92C1EDF3D8DA34FA6D227A0325EA6F22E9B38B6338C657BB21
+CD4C582DC04010330F62923F817E4EDC6E5C0E6500F2A975A8A95BAA30C4A134
+BB31B5AC45A2E7F6E9CDFC810D41344C4F606049445F8E93D74271C1E29DF7CB
+5459593BA28AECF64D903D3E4D77CF5C04B06DE44A41EE4D9FC769854503AC85
+69E4A5106E84016DE3D59865D4AB30BD6C9E45C45DCB5408421CC50CD6179C85
+34E55CC70FBD8FEFE9F1D5160664981716E3BC7F24B6F54E0323D9BC4B692971
+24419EE62D8B0BA726E2B4294A9A76F328B8101DA29E78BD5C4AC383350FE196
+4D42DB1653637D19530124858950C22F1E9CF5BC07D46B7A58CDE19CC88DCD2E
+7FE4EEFD8AA6047E919823C8CAB2EF5274F45E861E6508CC11A8AA90AED2403A
+B2BF1315C2157B3B50A3685205D93E40906EEE9DE5985405974BCE0B84BB37DB
+080A45C5237B269B93C0A7CF294A18B45464A41F604C494CBEF829A381155CFD
+71CEEA54CC39EEDB6DF58A9896246B09F95DC6BC40BA6916AAB5ED3D24F66154
+3662F8978FC63DA9280FF7ADB09EA5BA79D3B66E0C88BEC1EDD78DA93839073A
+A4D7B0E627000C4ABA76C47CCFEE92E319315333A5584A951E34C55412049C4A
+A5569FE65A006F77B416E0530AB6A8E7AD6C72340AD4CE25937158FABB2153EA
+281E1D840206F5DA38E00815E9081F81DAB9FAA8F4DAB305867AC84735DB4F52
+A36129929BD2084A8EA37BB6889695204BF7290B68D5E722540BF8A276F8BB6D
+451D582EE59D2FF03F6B97DDE05FA00C3D375D2D0AAC8FE298F85CC067B15481
+48D70B6A0354C705715B891915FE8EA45244677B9FCE81E72D66177E309F3F83
+F744B9EA9E55C3B30DEC6E5E03B3988FD526A82A5E8E1DC79127FC62B2FA7949
+B3AD3148868DE22BD4B5708E32CEAAE6ADEED1F463EAB9692411E18F8D6BF391
+126B2700B4CF3B59D02E3F8795130C96285A63FCD1E0F647ACB1D35E9C58BD01
+1DD06BABA00CA4343BEBEDBE677E053E9732B33A7495DF51782A07DA07F5646C
+770C957AD915CC70BA8E08BE7A1F4E6BA5BB9C603E38F6FB0A2578471C4D02F4
+283069856D926B9076EC73AA39CEB0A061AFF1575C7093FDAC9F89C3DC06EA45
+06F3C2A3BC9FF21128B10CB758DF0F099B459A5264A8C24C098110D2BA1A8532
+8FAE146A91BA7D033F591AB1A94B8A6FE0FFB610F698D216D58B4EF6C87B1524
+8037CBB7E23D8550A620341C6625A1A2ECE7CEE2598D66277F857231A36155E3
+984F147783E9B93975AC38A29F2FBCF704C8A04AD84C3E04A12D2321FA56811A
+5B6744813CCC187968C5C26BB8D3E6615A912FA5369C01CCF8C0DB790593B190
+1A90CFB5339B8771F325C5FC448D36C7312B11A15A8635BAB59CF3CAD176131E
+026F6E141B2619EF7F3048750CC9291397F141591EEC8B612D6656DD34DB54D6
+DBDD303CED74BE76664E7DC86FCFEEF2001C9DBA56418FB61F589566A47AF36E
+C94671C5E8939AF9F4D53C0DE7142B7B63C86AAFA65877EBBB48C64589AFB2CB
+1280AC099FC48058855CBDEB6C2D2A0D092267996591DC3B5EC8252984E9B27D
+2E9EDE8CD8303F0905DBFCAE497DE1B755B924452CDE11CF4F20893DD6FF7251
+427F520FE00580DAF1703FD968E0F8ECCDE618E1EA5820EE6CFED97C78864EF6
+26FAFEEE194A268F24249D44829AA360D731C34DC285501E966A959180718F72
+6330E4CC060588A2F65AE64A720DCAA818D49D4440F5D0B6C1F6C3A107E12445
+F1BED2D3FCBB87A9597F01C7332AA79143564056219BF87D4B907A04F77621AD
+054935E883B2B137D3D1C4BC792E8335CA08B6D83227F35736C41312A0BB077A
+60FC6488C5E02FD51A10AC113D4EF70038C649C1677B2204A77F2ECBE9B3C341
+F4126BECBCA61E3F3801F9188A3775924A62D30FB096B440286FA655EBA00A74
+9A4162904BEA07CE68EE76018346DEEE20839C9A2FF71179B58E1D4AB30856B5
+F5D97295A097174467010B15D733AAC5813CAA633746B430B1AAF9F997FDAAFD
+436844D1A56B8E25A89D2CC4BA6EE7ABD167818FD4F6C747E07B262C99EE2C35
+323F0B471586CA50F54C6381B052B15B0C58C19DEA82C0CA29F00400B727419B
+2379979CDCBFA966AD513FA903160C571C3BF1BA239540B11EF2371A3880837C
+6D6CA2F374280CFA1586427AE975A2AEC34244874E4D441DBAC6CD1828841C91
+069AA87FAE849C5DC7C9EC1B9876E59F3CCDF8BB23D939F5348D7486934BFB02
+CC5A22541ED352616830A510DE7732E5D8F7E785BBD31C2BC9D348CE5632654D
+2C1740F89D57FB2AA1FD8FA3304EA03F757BB8F498ED98E48485722E78D97B12
+A05F3A28438084D1CF90AC4C3FFCD7B3365941C45E1E02CB13CA1E99F7FA1D00
+1C9D489D5C95F019AB4CE89FA3B6604473DBD2CE8E278969E0A0FCBCE68C23F6
+9381882443D3FC16966555FC222F3FC4B1207522201AB7A15A7A6F22CDC9D392
+360BF4C95DAD35770E0AC7E5EFF015F2C74ED7391F40EC94B8D1C163B5DEE5B3
+911A20C2625AD3B24BD94D2A42405E655DA47D3F94F882CA2F479437B4E0BE71
+8AFA4482C6FB270F8D05B4599A01403DAAA90C01DF3AA7C2BC7E66AB6AA833AD
+FB6E5EE13E45CC7CE7E200FBFE639F9CFFF5D08512C02764997FD28368969BFB
+0876F236EF6189BE73AD827332DF1B2EADEAC0ED3B939CE5BC3CEC78975FC636
+44FCBC2CCF4396AC7343EC62E0E4F3DFFA2B880BF31D93ADFE201BE9CCEC8BA5
+0B9B919E05B851E0909968DA259EECC6AA0743F25247978CC09C28C4F878E29A
+5070E4023BCE95FE0ACCCC01D0EE219FA8344E8F6D7D4347563BF8AC030B9097
+41F24D4BC9494915A82EE9FD37FBB6A46BF077B728FB569B1258CEA5F51F36BE
+4F4D0F890D782E44748CA3FE8C8A515998371D9C7D2311F192B4B7E7C68FC6EE
+3F7136714C282A2570FE591F247A08319CE9EF1E43274E4E57166E31A2ECA506
+85350DA31AA4C33C9687F5210BA225EA1007C444FBFA2126769767E47A967884
+9F68589E4BAA9ED32A7A466DE35554C132810C68ABDAE536D9D884352F28EA02
+8A555D2CE11F30598F44A65E2D86B43ECCBDEED9E4E5B5B7DCDA20EAA09D9FF7
+422FC91F2201431A9E8FC624FF44D26C0100183D77BC7E6B1A6CFBD3FA8BABC1
+AE4CB0FD382E26BE0A83169B46D91429DCB746A0326243E212F802AF6A56C709
+6E70C6C7CA25AD93C7F6CE71B508B6547004DF3447B141D6254767C770CEF529
+89D03360B92ABD1B74D75EA95BDB46FE8BCE14FFFB9B7016E5CBA23CCBA7C46C
+A6F92EC008BC670F6B18154405B951D735F59C9AE321102DCB573698FBEFE327
+2E2CD907A58CD8232BB5FBA0CD9C6D4267D408148B6B817ABDCBC6F64ABE44D9
+4AFB32ECEA23D99D9D8CCD06E115EEBD7A468C097CACBE77A4B2A348BA3E8050
+17EB68356D7C964763E40CFE469280BAC02E3315525097338AB3E8D874321CCE
+DED4119155AE0E9AF1A15674AA99C752581DF75C5EA6C8B69BF5F30C35E52BF1
+4AF39554938D4C03BCA8FD4F998629D71F7703919C7B844EFB6DE186DCE1D131
+A4A4B979F7EB7AD85F0AEC7138770E0374ABF80D0435C97ABDDB70D618884348
+E44AA72FC4BEC49903CB1843808E6772F727AE310C2C7E37993E5F7B59943368
+A9554B60AAC5C356F8B02C4C0BF30DE46AEE9922C12C9443B357A5D34E72D245
+E47209EED75E751A04D6F145F13CFC991004986BABCF578D73539C4F3E58DB4B
+E428B8F2E4CEC34473E47F3E85A085CB182356BE51DF4DFCC740E92682E7ADC3
+4E7F5E78BFFC2A1EAF01E57AE64F6226902C42CAD3E729734FEF6B423A98E5E5
+E7C5E713FFC574588DEC1E18FF3EA1B45728E3B05A6487BC255DEF0A5E34D6C2
+009F64E4D5E55E28F73CED4640D10CD7192C5279D4F52EAC80CEF024CB2ED2D2
+A86A32F1666C964A496BF9443F29C71F857D30861AB4081B6A3E2ACDE8FC41E4
+C972958B3753B861B6F00B26BA3E1573987089E4F61A290CD342420B486BF7E4
+FAAFF2DFC50DF620801E76266B15CC8303BEF2B3FB794F52728FC692522EFDAD
+220536396A1C1F43DBA904E7CF4A94DAA44589CFE1F7E00C5FE0A00AB978E588
+AD81C95F82F6F7E877E8B25CE3ED2E9BA44452FD9822F20B40CB444C51109E80
+E352BC7DC5982E425F1764AC856638CB4C3CA17B49465BBD2D8A39EF65E08C19
+B4FF384A8BC7AB11278AE307B11829283B2461C47D89279CCDEF00E9C2612107
+FEE9B4BB39726EC682E8E9E82C680206FAE5657C67E020ED2D3BE40ECDB07BFC
+266CCB3AD952CF14D6E9EA32842202D8C19CEBCD1841F715B9EA8187D30E5D23
+76124545C0ED3928946B9BD45DFBF694C9E14A127A017245B0B2C93A284B931E
+9638422C0CCA9098E2E66F24C537B3017DB3397179BE0E3EC7E5C2E31503BBC4
+A51573319D87184061BB5D7D11C75A25F0EC765134F025701D8806EEB8B9F5C0
+0CD1E96EC3DA15F8FE540DAC31A008AD232A80C6F310F5F4CB04803F2A2698D7
+E344F00FB600DC4C12AC002FE98F6BF7525DD7E26D922FF35DC6F74F9CEBECF1
+E82E2505AC630B3ED3D041B1DEFA4710DA077D597065297FC0DEDC5B3237DE95
+46D28BA91655D9C00E38CB99BD165052733FB56D9BDE5679B691D7BBACEC7493
+56BD1AD132EEEB82DEEE7595EA7054E1C7282F1515A0EE1FC2BBEC9892A98902
+E380016DA28EBE48AB728D6CACDD539CA6EAC7CE70E23DBA2A35F97C9D719895
+5718607D775887B3D05EC75FDEB881EF521213FD5E43CB4181984E0CBED2E541
+7A9E5A3D8316A2086CACEAD96560D7D46ABBB927DD7DDC7808B8F13FF8D8BB3D
+16E5417147EB4AD7D4CE6406473385AF2D8CA8C43EBB58C5AB203C2698F089F0
+1F42BB30A58F682EE78AC6296B8D1D24E018961BF3087BCA7086E2E277472AE9
+C70F975A687BB1132D113195745908492E03D27D4F9EBA93F6A911950003FC49
+2D26FBA3782B0458A0DF48DA395FFBC13E67DCD4BD3F8F6386825C34678C3901
+FA324030204986461D648E9B4FD9E0E07696962EED3AEBF4AC2105C1C4E05701
+7356BDC0522BEAB66E4537E28E2B99957CDE8DACDD0EBECC5C6694FDC53D3B46
+41D69B65C9A613188BA4A973BB7D1355078992CE41312CC0E0091B09BCD1DCBF
+59ABFC7DC2E2BE3CE38ACCE36F047BCC5A645C46E5102868F84759247CF93AB8
+0FB035B2155C7D682B5CC8C65BF2301FA57541FD774E9941C942A3DE394EAC63
+AD90AB1A64020CBC4C46CE2A78EFDE67A318962BE51E47BFE00A1FA1A84F901D
+19DB500CF6614CAE7D67F40DD9404DC10406E0938129116369C4B916C3D7D637
+566BC0B321A96BD70C699FCB8FB3E1D6117F68A15F3DE80F72CA6C2C5BF0CEEE
+FB796EEF7DFC1207200716442AF662563A659A11A07A852B8AB1BD57EC1C0497
+DC03FF79DC88513D12BA9DAFDE4DD75510A0C2E9BD178FDD91F668F50375EF9B
+15FB4B8AF7A26CE3D3B52747F358ACBF341233D7A04AFD3871C84434014C5D2B
+879C7D1507ED06B90F54DA4CB12AE8874BE90CA301D0428D4D957557599CB133
+7B6FDDF411076FA5B58D890E3AB03D3A8C48E0ECE94D178BB78642910642507F
+2B98CB2C06DF248D103A4CB80D6DB49D7D5E0499894CCD9C27877CB1C3ADC78D
+3C79C0AD24B5DC95E46A50E424811BA32003B3651016FB11DAF5796D6AB30DC1
+4C701570D9563168F0DC34EC30A615A7A111C4BDAD5803C69C849AEFC46DF37C
+8DF3ED6B625E8763E90E222AD6377F3521BF31B962E04BD707EC201ADB535028
+101561664DDBAA4C5BBC343F7205B66B39D84082EBF131A638180768079C94D8
+BCDDED7143EA5428F7603145023839BB1F2AA1362353253A7F242952F544C760
+C1163AF07033F68446CF75B0410510BFD8726C3A1F6C4D328B3F1BBE17D63F1C
+F8966E833F5C351DE0B7343D677C3CA252DB7C6B87646FC49AA3300ADE2DF60C
+74E698FCF8CFB40A48FC90D21740B3FD70F245BFD2CDC8F0965C78F720B3AE8F
+05710A7AA0CBD7034685B702F33F678DC997EA96434FD0173A9FB8AC8219E86C
+E6B855615229E12F11848A61BDC3F7357C8F45F61A4667EE3AA977C3DE5719FD
+E4B8E67981D0F1C67B460462940D646662492F5FD832FD290AAEE6FC6DF82784
+E71AB7CBD81CC384DA49A0A36797680C17D1E569CB5BAD8797B08E870F0DEDD9
+9B369AA4F570E48FD4CC01A3E2BA16E9907639F4FD96EC413424578A7E7C4B21
+34B193A53CB10BC10B350CA466C77F107E2828CA3755BC7BDC585573F22B20BA
+C36742F0212B34F37469FB432728A0089905F8ED3B9ED20850EC2E6B3A80A3C1
+8EC4503D3F957D513089D11C3718F33C652DBBC91A52E015432C94AA8EE7ADC9
+65A421A19F8316435E270D1F101A3B4D4E8DB227EA8162E6B13C78FF048D9D64
+F57F9521025754F7DABEFD7033FA0CAE1F8E36AB61764C08944F6B71B3F01035
+4BA6DF76AED61B3CFA402CF122DBC6438DF66253A66DE11A3F2872DEAF78E088
+5884300A67DAAC3D444E1141960AE897C8A74579945A469BC2CDF7CCC854ED94
+6EEA71EC9C9480DE5B450BBFFA419445FD4FDA7C77716CCE03B0878ED7693C5E
+114465B303563E8C16AC18FE76A0244CC94C599ECC8FC3CAD213C65463E350C0
+2A47685B9E9F70ECC54447D0DCAE36507226A9552CC9BDA411A86C30CB7ACBBD
+647CBC11E613B132F0308174B3205E25F34401C5FD98B3E9FF2DE7111A1BAB76
+615F9A285798F627752FA3D4D810ADFD41BA9C93E47BBE32691E3868D4250A18
+470AF268003E358A599BE413BC17D44E1C96B4915DE66ACE64A3B6A82A039FA7
+6F2F4DFCF630BE5445359E37B83E6487831B2194097F63DC0B25E919FE0B41E9
+023BC85954D99B77F7AD0531E3F823EF84E69C230F4EF9F529967FD90BFE31DE
+CD96406BFB1B72AA7FFC55FA0095A98C0A6A7FA0CB5776EBF236B4D6F4854ECD
+9340E9A8CB5FCC3F4E1EB535E5622742C95FF74611BB29B24ECEFB0928E31FC9
+A45EBD7879ACDC6C319AC853B763D9D2FF1C5887827EAB54997E44D8C8B80395
+167508774ACEADC909E360DD2F7F26E0DC5A7B6DDC477F68DF01BF33E32BB420
+0A80BD39B589F0B0512DD27B7B6BBCEC0B708DCBA70E7E1FF5007039BCA8C43E
+2AC77490F0EAFCEC45D92A4E37C6DF015AEF249E31EC15EDBB89A7621E1CB744
+6C35EDB73B60D0E5EB60AF4FDCF67B2944603F47BEFF1EBB987919B099E5CC2C
+2955343C550C1F5C837F9DC48C81ED0D18381748D9DB0312C591B514BC644009
+CEDF1BFC6B912D08BF3F963ECA67392633C7DBE6381F6013E3A2E015BF00797F
+82019CF3418FBF0AA6F2EB51C2C3CA8FFB2DA9C5E2069914A38FA65F3EFB9444
+FF4D9064BA555BC42B72A1EE46590194D513B143381B164970ED5E066462CA7E
+2559E3AF6FB3400BD4E819DE6A877DE6AEA9C3175D69377CC72370A1FAB235D0
+C86BA6B96289314CF67501C18BFE7175700E9D718C19B7FE001F6360845749A6
+4E35B14D4A1DAF924571B59B0A7A8ECA51FAB539141AEE4FB4163E0B44BCFADD
+BA775A6D055144B805E29485B76512C67466172EA0E1396B36A9CFC1907071D1
+DF1DEB14EFBC1C86B13E889E41A0A594645A6CE427D08B75EB838B19AC0F26B5
+E68164148CB4179409592E368C91BFDA3CA07C19B134AC24CF4E2212BF5BCEFE
+48BF1E481E813E5712A9CA4B2A098441C915FBDB9D684B90968CA0E3D4F3E706
+14075B07217DA3A1B6EFED7C42F00EFB86CEE507E24EED1E2D7915B6945EC456
+6BC676FA735CCB092FB57A40AAEEDEF343A541989FC409EFCD0FB5CC4D0692CB
+13E430A124123582CACF2D40009F4A7B911B96C587274318A372EBF959DC0545
+CAB5982AD57F8BC22A9FC9E3C34EE6F2812E7D5AF8CE035637034DC323EEE718
+22FFF8B9E91F92BB9D6833D3D5137A1461069E52BF474B44ECD2E57C339B9DD5
+2C91901EC13E87A88B88BEDC8DAAF9F35CAD20530BC50457B9972E2224A264F4
+0F42F6A7288D3A129C0BB7BD830709F3155DF98895E1C12DFC4505121FA5257E
+51CAA7DA5B461294597E507A2DAD2828BB1D172297605ACDD81611B5B5029A61
+DFB97D0E073B83DE7447C7701B085D9612537F336E
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: CMMI9
+%!PS-AdobeFont-1.0: CMMI9 003.002
+%%Title: CMMI9
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI9.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI9 known{/CMMI9 findfont dup/UniqueID known{dup
+/UniqueID get 5087384 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMMI9 def
+/FontBBox {-29 -250 1075 750 }readonly def
+/UniqueID 5087384 def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI9.) readonly def
+/FullName (CMMI9) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 42 /arrowrighttophalf put
+dup 58 /period put
+dup 59 /comma put
+dup 60 /less put
+dup 61 /slash put
+dup 62 /greater put
+dup 69 /E put
+dup 70 /F put
+dup 72 /H put
+dup 76 /L put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 86 /V put
+dup 105 /i put
+dup 108 /l put
+dup 111 /o put
+dup 112 /p put
+dup 115 /s put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
+45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
+7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
+72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
+BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
+974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
+11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBD07FC5A8862A8DB
+7E2B90C16137614CDAFB584A32E50C0935109679E31306B8BDD29F1756946A67
+7A7C2D9BA6FAB9B20A424AA0E6F4BA64C2801C2FB5A1156CBEED0ACB95F697B8
+BC2A6E6AA7EB1F9FD8E3C9B1A16697EE1F0E7400421A7765AB218FC837A49365
+82DC6B2C877A7DA84A81E6126EE96DB25C17A207D3020A045DCDAA064360DFFC
+E3CD50E21ED239D2A6450D04F879A26443ADEB6A20ACC504989876476C7D1A74
+91564FEA1F4CC2C8C8FDF666DB537F315AE1886C73CB5B00E67E7B398A6C018E
+540EAEE98BB8136C4F044EDD63C33431D2CF9740F051DF365A4045D9D8782112
+7BB5D494D9235BA98CF2F30CB119F5A904C32AD04C960C43FC1F5FD8DA7D90D8
+93AFB59F3FF4F796481AE2A7548F948FECFC6C127C4D3F159B08F206AE8C296D
+EE470DB2F879EA79475E029D22D7A8535C09A18689DB0609CC233E5199C02756
+972CC9C94D9FCE264DEE5D75C8D651E4E2D1189AD9588CB815722BB5EE3C379A
+6F31C2E6AE1AE4CCEB29766190AFA20EA937114978752189F1A9F42B39483149
+796FCFA123BA9CCD1D9BE28289660BCAE16C40B5B504058D55CFCBFB4F4E3D94
+DDBF39F157E63946534DA81C018B1C01B9F10DDB55E0A5C2B3985ED1977C039B
+D6755EA42CD09E27751E159C30B93F376DBE61CD3AED34BA36A768F232EB3B80
+E3E6B77C4A48D408217818E398B83D995AB6BC871F20991DF57313D6EB0C793D
+0F28088EBDB7F38DAF7E01AAB3476EC24D7BB38A9889A7D3038D930FF4289B83
+F54A7BE1E2D98A3822098D2E4D067A0D400C20C0B2B4BBD74C13ED1B827490F9
+ECF48F8C3994C1C5AAC9CF783BFA4F307528F51EAB55F961808A42ED53F00C97
+72A432EAEDCFCFB622389BDA707B6ACC9433B065CF29EBFE93AD14B8ECD5F47F
+F073F11822C49B8BE924CDFA6348C3A75E9BB9BF3F31C41716B34794B28CDAC9
+4DB8B087E180A9B3B17680F73D9C12C8D86A922C948093629F5D7F542ED882A1
+692F4F6696865E53E3E2DD43B2D5E8C989CFAA5CA5C4C5999045E170BDE9921C
+BACD6F2863F5553EAB2BA2D4A9034729EC0C4201DE90DA89B0A27C5A5C974109
+4E37BFB3F46B3A506169FB0C68E1CAFC844419A8D261A1FD86A3BB78E33D5FB1
+CFC687A5975987CE45155E5FDFAF0CC5FD5568CB1C26212F92E88255F0549F59
+41B33125946DE43436BEC00804063FBF03EC796E3361B1C852EC3038D107F80A
+9198968265D5488B26D7670B22C2D75EDFFD1B7B4AAFA36DFD94640C9D0E2D20
+5BCA18683EFB91834A3939AB8EB60E2F09655BE003582634C52770DA9668C292
+2E02929D812EE2B0CC65F020064AD5BDAC5F5693B30508F40ED8E20E87149BD5
+8DD41AFF83FD1944804017DC5A04512E593549FFFAE501131CE2FDB65EFD0B8B
+33809CBAEE411B3941C241550B9C30DD28088708F1C0CC3125CBEDCD985EAD28
+03313741F67DB5744A87B381147D5BA70AE1145C27F794854628D87D6C1ECCA1
+749E3465B950175D3C3F40E344297BD92D3190041A4392033A79BEAEAABB8DBE
+CC14E39612F43721CFAE6F79074429221CA588AA2501DE520A464DE157A03AFE
+3C082FAE7628FC0C57FFC61D0330AE6332D20FDBB09BF36848FE05E782D6379F
+64F9C82C45402481B0A35989027F9756BF5A79DA2D96E10F39167ADB4305578F
+90B509B6891338FA1D67DCFD61804AA6621526B2EE4769589A2646581712AC05
+DA6E98D16494F07D612743058F54FEE516BD89A8EC3E03F9D7F905175D3412C8
+F7329077FD6EB25213F3CAC94BA0C3363B759401B6EF7548C7D709F3241D030D
+4EB46A1AE81863C412BDDAEA6084C37143A4C5E41BC646315B1CD09F934186CF
+49D1D8239E363A435307030BD79536B50B723A39DD763DB539F24A10DDA12BD4
+E467339D2D6DB177D6FC539FA77D2DE4118EBAC161E928749F7C753ADEF86117
+58619F1155C563DF2E11ACA8347908B98113AED58FCD0394150EEC94B7F986EE
+88BF7171D208D8F1774B1DD478F0C2958AE372D257E7EDF0F6B5D6059CC4D5D3
+B00FCBD2E9CBE79235B9A5A3E943CC27AABB58728C95C7DBD4F4A1F8A4DA99AE
+7377B0CC0BFBD454794398AE0D5F7281771FFE87B25A819F36E692286A42D776
+01794A43CA9BB30FB8FFDAAF014F909A369E34C2F6C75B7D4EB9DB0580E33F46
+19654443AFF8384B95600B86FF8E41FEFD032355626D60C7507C058EF832DF41
+194B48A36F11082D1DCF4723E21401E0C7447AABFAB4639B26E3D2730E348F55
+53EBFF39CDD03E06E2FA5FB379603C879EDB7E1A10F89695C9C47DEEE52BE0A3
+F446F187AB9D7E93E6F9387F21129034F36DF40605D28FD526AF82CA9D232BE4
+412567F06B38ECCD496EF40A7B243E46C9FEBA4F1BF4B1ECA029C5EC239353D6
+C0B100BF7E7DB33BD1277DE104F15AA19F37340A777741AD1AD693BC76DA48CC
+C6F83CD84591ECFEE375979972B0FAC4C10B625E4BFB261B9FFFA83C31DA0108
+4FFB6377466E9739E0EB64424BD9FC7239C7DD834EC6788A0F97FE714AF92831
+E1BA36A8A9E24739F1DC82DC26CC3CE28C210AA7C569B19E1784D663A0CA4E81
+AFF43E86D6F5F63778847700072CEB77A4EB946DC1F23DBC00BCE773203F76DF
+00F0B085F31420672974DDC642D885E95BA6BBE43E1CA8ABF464D9881CDECC7A
+E98E31B9754C9B72A8BD5CF6D4D214DBC3BA7A0CDF6635953F5AC1E7639C4A91
+C7AECE4C75CA3389C348F656FC2CC96C84C85A926237B6504DB51937C9CFCDAC
+B75C31ED570D180757884E27757783DB2D5F35ECC48C496CDA342D49AA947BF8
+2FDAD2F19DFE8CD1C76A8FA08F33681F3E12E229D7DAB45BE3A3F258B5ED4980
+F15340CF20D965252843E026803E8AEE736EC41CCA82167401977AB719AA2F50
+0B791EEAA82027B3C712D2EB9D14BF8F94FBDE2227609BCAC41EC08DE2BAC023
+28352F913F7DF08D4E1C66E83F764578B22B4EB7191E852B91ADCCB1BCFDB1F4
+E63DFD152E86FA9DE9BC8908130EFDE29CC4401339C05B5B9764CF8EFF14951A
+C6C13AF979546996BF22F2B96D3D585B90CD27DADEC78914DA48432C6ACBDD42
+20EF583FD41F2F6D6D10C3DF7DD077304B5940BB0462656E306CBD91EB9B756B
+7014B1884A36201EC582FC9345C386043DD2818FC301EF78791C1D7854F8FACE
+5DE9801DE9F59D5B4271E003AB897B2EF49501589D681D59CFFD9B03F722EEF4
+74ABD29997515DA3591496B62666744EA76DCA45504F8075C0652D6779DBEAE4
+90430C2945FBD60AD53B51DDBEFC7ED703C418B4B244C8FFA5A3C1B7600C5A55
+3EBDB93C16AC191C3A28EB2279BD3F0D67C826BC6A73D3C0AD02262368AB4621
+98A1605F2887BC5880E1AF2780330E0FD01D7CAACBB0F008A42C427F38236066
+54799594E515B289044BAC4DADF8B3686B4372C5110201221FDA923F131E07E7
+93C44BAD406838BA4D1C277EF74098B8C0EDC41EEDD58C195D7DFF5FEDBF96FC
+19CEBC6C3006DD2CBF76916B4298BB915663C2F61AFD7747E03A03BD7280197A
+9DA590E3D081C6F53DBF94E8D6FDDDD910A70AB18A0F6D48A590FFAB314D6CFD
+E3FB20C1F3C91063F00726A2C13A3D48323F9854839405E5A29D66A43E6E2B84
+A8B3765F1D817071D4D6FF42BC785C2D11AB2B9452F141696CE19C6AFB9777DB
+107D6E22D8CC6C26440BC48248AD8805C4329D46BF433741CB519B21663392DA
+5DC7FC9BF37E5BC396BFADD7263D09F6B4D69594AB386B7BDFCF3BACB97A0E08
+22013E716E642592A20136CF9CFD61D4E515D80E06A4CB4FC9D9B916C93CEA95
+B83B98C48CF36C1D02291D4F5C0419338D64E33C90C90EDD2BA3B96D70FAFE0D
+403A060CFF448D3E28A9B1E3916018465E86095BAAB4706CF7ED350D7C554789
+D7F4FE5F180767DE8739259E68CF142040BE1E2E8C6152DE3417C1FAEA7584B6
+20781DC4A9796431EE713DAC4E713C839D7A4FDC8AB6BFEFFE767AFD8B67FDA6
+943AD387E5D3BCB09039ADB64ECC2BE2620C6EC269E708DD06C311F450099E33
+AF46AEC644222E7DC4DBB9371EE12CFBC4F9B27AB46AD1DA96CE006E1DF8291F
+A550A93026CBFFC1087B134EC6EA76F5E109CDA58FF47338A0039A786A575F70
+B8A03A4F9C8D07A4C856C77D9BCC8E3EAA740172D0C2D0A15BA35C9E5717D7FA
+2691774DDE730BB9D7C70D7AE103DB8D35F3728470C76EBA0E670634E1A0BA84
+2FA102BAD7271DF2680D86A4CA6FC353869987700E5E3FD778165456033D624F
+E9B3E80EBF431ACC934AA0357E824B8AD73E222B510DE8445C55C07C8E5DE46D
+E478F832BDDECAF2EBB11941DCF84CCD887043FAED9AA90D12BC8CA9A0C8D94F
+8D3BF1F80B14B6CAE6BB1C6AA405AA64BB94D5A82CFEA548BA070796A02F9642
+87326D066101435AB9EB40BA9EA9E61B363F5F5E3B924369796E8B78DE3414A4
+2B79C6A13ECB2F34E6299658D07D2B3DEF3D4383CE009A927F0EF5C196652842
+D96B857AB5E905201E7E8BA21A5EBED1FC6863BA9A1A6E5390407F75055E2EEC
+512FBDB3E82CEA13663F1A1944DA072C765D8CED06AB461470C5723BDC1271D4
+4D1D049D3EB131743F1EC9A6ADDAA038ACA2C41D139DC6A84EC3C61AC7F1E559
+6155CC2F49171F6E07CF56D721D9728E87FC7DCBCAC46455A3694C765FE807E9
+9CBC2D304AF37E0F28CCB22F239541B53A4D24D09C662559267467EA487BD33A
+0BEFD4899B581D20582930703A868655C31BE935364CA6A95FBCB22CB714C040
+9718824DFE97929D0482430726CCB5A5307957DD2432A9B6271E849148DEB76B
+FAA290FF6D0B18DC5B76407852E81C105EC6CFAB0F620C6DC9DA555A33C167B1
+430A8BC338BFC7D75B7099CC906AD923FA107C74D3FBB719D77A4E5A685FF9D8
+56424EE4AA074434B809D894ED50F6A60A035C5223EA25DD8983B9B34210DABE
+718D7B2BEB293FF1B63CFB1CBDAFC69552963D90F5E3FF533A3FDBB626E9FAA3
+F3C119E5E01C7BFF832A033C3515BF049E29558B1DAD652F2888E339E67D15AE
+95F9BD14E3253DFE9072B24C0E7E85025B71096AF51C86AECB2921126A43156B
+EC812B32B1164BD9B2B947D503C015616DBF2024F5C8CB3236C1DCA653D661FE
+6B1C19A22D272A176B7F1B7F9E67AF40DB0EFD4940E58B2A050249CA4E55CAF7
+6ACFD84FB46FEF952D18552B3972D79D808B4C263B8C7E1BB647A2D03E102867
+630D5C3F2C917F765A4F6FB8106BA6A9D0093E27A4CB6049C2371287D94B5111
+6E7020776EBD744C6C920464BBBC0AC206033E8240017F8CCB112596ECD7CAFA
+89950CF43FD87ACA750C03A778A37FBCE9C82C2F5ABB135BB02DA8E8C0D24475
+3BEA9D79372D0022FF1ABD378C151417DBC69FE5C9CA38D23A3900E34BF924A2
+90777ACDC37930B67DD44A2E76DDBD9B89598D5F626BFD325A978D277265DA47
+38CFAF16E7FF1946E15F41CA73F7B4B02E5AE8FC4C37B115BC567E4EEEFEFC34
+EC8974B1465AE57759EDDA28DD38A9210871D35D331AE1BE6097C3EC21C770C9
+B25D040B2ECCC3AEB1EA1BF99E0C2C0F192C13BB9152CFCF75332E03F9CEC376
+9B8C285A35F53655BE38713E09AE34BA2DA9C06FA42A6FD2D00CBF2AFD2BADB9
+1571629C65DA38A431710CF5B01FCA68E8B8569922FBC3F9B64A5509B6F677AF
+1B97E91FFFEB6308AB68AC58F9BA43DB5E764021E75B56170EB44C2C0A7DB86C
+62B8982256D3621EBE3DB3994DBF5C5A14CF34B4AF3BD5697F8E3203085DE9D5
+84B0598169760B925463E93DC87CE70AF4C2DF0F4287D2F2069847BCCF7A37A2
+AD451D5ACE4DBCCB2E14D5DF38B226952E7446BF87BEC736EF3D5AE793304618
+D66D3299AB9F9CA1D13F134FAEDF36750046E27706C7CBD8E0877BB6276E5196
+BC2A355D109C0253644918E1CC11B717DE6FBDA201E769812752888CD66268F6
+4ACF4A9449378F9F9923D584BA1B51F33663BE7A306887BC14A37E3C5A4654E6
+531D6EB63DE3946BD8BA95CFB037991174F36D61D842071E6625605CAA350A24
+FE551025D10871FE0E2599A63900C8520EF4911C53A03897C8BEE152451708E2
+43FCF4E700C583A5E8DBCC03BF9CAB864DBD19E1760945DEA0EC0BA38BEA8256
+D3A8D4F70F6685A99C6BD2BA8B412A26C002D76138CFCC7DF6802931E5D97BA6
+0151F6A4C572235B4196B22B7B2D14B32886DF0D2CA8A277ABAAC53B63F64CE4
+E4C088192AAB674497E8AF81961359C389B51F4A257373D907C615030BFBEF53
+DBD99058FD06E352450B658478C10454AC8FC0232B70D5CB916981978053E358
+99D322A07294748BA427FFD1E45C909171017B52B7C742FD77A8560852D819DD
+8DD53211A14D7B2FD11E42941722FD3985D627FDAF87EB57326A0D290B5077D1
+8A4230BEB40523A8565F95E0D44F036A571DB698EDD9D94FEC9512369E5E5E73
+A3CA5C142617944F4F99C0697ED088ACAC007FCE06E5A6EDE7D0E03A3399DCE5
+362271BC31533866BA79FD1FB3F608B22CCD4111FFB1BA35D920A23AD157C6B3
+C3DAE11069D5E46DEDA7158C6478D8B8C0D9DC237CDF0CC6633911673C43FB79
+E4F9B7F27495201E5ADE66255BC2CBE9D9F237DECB62A19D62CB41A1C92432D2
+07F0629E913A71B3F1AAF8B8C5AC66D3C8605A48F8913E39C859E163DB1DBC8F
+0ACFEE80A40B6172032E95A76B752B873FB4DF23CF3A655AF1A1B88C8DC156C6
+190DE72973950565454C0A188A33395FD3D529A88F2B578356DE8EBBC12F04C4
+5B899F667D9E6F3A4EC6DD8DE71FD4C2E2B6D56823EE4E0526679D71FF1B868D
+F261489F06F97B010CCBE640E2F57BA3DC3332B329F7958394BA9777D833AB50
+005E8E9232547104065ACE33396772B0E0BD66D2C6CC54DEDD071E444D8C95F8
+6F88B31E20FDB80F77C83151B7E25BD3736B4F9BDC52EE78C41E9475E5A6D94C
+D348AB42F5E36B4F167D29EBDFBD43B03F77EB296B06A36880FF17D412E77EA9
+F2E7C25FD05E16BEC6732681EA21AC3FF6893B93FC09316A370CDDB86D9E6087
+F6042C3F9ECD742778389170F5F041329782FB9F9702F7533E51F355F71825AE
+2BF4F8FE50D413AC9A20C41B42537FDBE8DDC5A5C793D3760C1EE13716068752
+F0AF10812250BEDFB4D7133FD58F4587BACD572505C84A7D3802D27443175FE0
+0D89C3398B55176D8642AFBAB5CBCDFD6220C8488564B4306D74A58CD2921AAD
+73CF803C754DAC2F30A5324886E273064FA51781D5BC596BFEDDCE3982EA1AA2
+62CA7BAA1B16C6EBB99B2AAC4E6C9CEFB3D10F19987045C4918DB239E6E63D79
+5F44B9D097118D081153AFF96E5EB39CBFBB99A3BE30909F614869031358EB98
+F07A97EA78AE50375941B2474DB46AF3305F2B208D45921F93743A6CB8AC584F
+6BEBE25ECAADD5A789EF60C9F54446687E7B030DA3E5243189F02BA46BFD28B7
+DC14822E136AC7E40CE20458DDBF356488045C95907363864CD6943643BF0109
+EE027A3091C11EA392EA91320EBFEA3B857370AD8EB86D73F035A476F7058222
+E8CDE78CA1AA9EA69A8AA6EBFF3E67324C567B914134DE042D6F8F18A9373107
+536E8D90189917D343F5299024239E2EC1D2D177D8211BA44AC3CE67694563D2
+841B62F8110E87700E6D1522A79EDECDA6C59DC3004C4C3CB2DFA31AF1544E5A
+4FFE7802F51C8402B2991BBC188AB976B4E85B124B81A226930F5F80E1D34658
+2C2E711A080DBC1EC1D661782A37A121F9F469BE383F47BB8E249300A4E2A660
+56BB18F8C35B4B830993FB73790CF101C3BB9BFDF16CE498196B69EB18BA4DD2
+95682F6E109B03CAADF1C109B7FBAA515F68E3D13AF1E8067FE8AD1D722E59AC
+028F18A90A93B0A8092E176ACF53A13E05692A45910501C4F0C4060C40434A26
+B014245EFB211DD41AAD932109F364CDE249E47B2500A344D3B45DC41704F107
+F9FD70DBCFD768F531C969C8F2C743E993A9064AC89AF45FA0EE8466189EF286
+59BA3CB358D134D3789A40B5359E84029E48F594BA5C5DF179176109A85170E0
+4A2753C3818A40D52CE36F3AB8B526FA6ACCA04314585D7D7666D5D9CB098D3C
+83447D50F9B37B4E8E77CFE1871ACCBA3842889F281701F3B63A740BB7B6AD81
+95784D69DD751B8887D3934DCB1F8B0899A8DD20797D399C79D005230455BCB4
+B167331B05EFAD279519326AB7EC85B9E9864D46D47EC3EB0D540E55A9D66111
+8C88D188B4AD02208E594A6B76066CA59AD4BB2ED81BA6FC8A7EB43E5FC84AD3
+8900F3EC0BDFA6CF2B1DDC260AE09704A85C81DDDE7FD839040AA08071AE55D6
+447A7FE4282BA129A3477A5E05F6488F9595A5BC9F626F3A62999972527435DF
+EA05CB55ABD7114DE0E77E16E6F52D56F2A48D53E818FDB3BBC090470FC8ABFD
+342B69EE3B4B682C4EB12E99AC58399BF4187F9F0B320F8ED6B61A2F3E3E3C20
+93A88D38C55FE7CA3DBC9187B65262B4FBAFBEF2F2696F17DBD863873CC2A7DC
+0BB611FFC36ABDFE503DD1CCB844E5061E62A6F44AB8719B95C828166B5C888B
+AB2B50F10C514431F4AE568E079C682E6309D0599FFEAEFF6EEB9C0FDAAB55D3
+BEE35C0EAD701A6D36923FD5054D4181F60BBDC5F129B808B33A2A8CFF842374
+35A20FD6B1CE5907D5F660F065A935519C2EB970C010B1FF2EC4BE26E5AC6218
+F9A1CAD2BC6E8128C9E1C70D606379B86A74935F975911027BD8180C40ED9133
+56B06AC135D340C25B6C25AC512FD147447527F64E57995738891DECA8886434
+E8ACED7568DBE2B9B12A44BA92AB05E0740BE47BD774F06400450B5A5009B266
+5293D0420D7A2439AAC0870F1FA32D30572847B7CDD059604297BB464F298466
+1BFC8F4957788E3454E7422C1E26E979A3099DD248B0662B253C30C5F0AD6B3B
+9C5CDDACB1D977E9B58B729306940938BB4D5621F926BC5CFBDAEF53EF0C6A4E
+5BB8F75254CCF9FEEB521723E7F496820D4F36844B85ED153DF99748AC0F0076
+CAF7E30AFD7B54353DA8A077E3DE66299225D48CC977022D34B7F6BBBD03C0A9
+58B204CF7904A5853873F58166B7A54D0B1CF66CE960DFC0CCD1F9D108CFAF17
+C3FA78E0C490CFC125161190F5C57BEDFFAF450300D1124824BCD40CEBE5738F
+2F3F9565B49F00E6DB6078EDE903575164A7587BE2BDCDC6A095DAD6E4CB9E35
+1D01CEA2E22B64B1911A136534A0AFA1E59AA68714AEFED29C33A1484C5EE5AD
+F6085B5F940AD671325A601F17BB5E259F332E968D2ABA894C82D5423409640D
+DDC808B69D8DEFE2C99E301D13CF41BFA6AEACCCA94047318EF847FC2E19B29E
+5CE2CB226CC198F3550783512C66DD0D20B4994D06E7137230306FAD626D4722
+3F6D9A85F8982ACDDB1F8E20C172B78ACF60509DCAF1E81026BA6A3B8F0B6A44
+9E825EB6E4B00982D07F1ACCC4654F97CB159A261B759AB35A4E1FFB55472D4D
+7A64DC43806ECF445FE9CA1F16450CF281F0DFF048CF4F2FF9FA2FBE7B45D44D
+B0BFB768ED4A004B7C3AB005A8C725368B0A1F8A43C518BB453A7A456F4DE34D
+94E8207BFE151ECBAC136187D69489EC4766E49ECA7FD215EF1B76550A341980
+93B967FC24C515AF4473389E8D415E617360C08068FAC4D3DBA51CEE54DD09C5
+F6EC7786E27D45DF6746546616C6E14501CFB2142DE4ED493D693254A02A147C
+073B79EF58A4C66B986D426A8957DACA968A38D87F6A60D68E7DE45B1BCB14E9
+7DAEF3561763F709795FE0EC4E0E59D79D8348CE3C1F8BDFAED200B8CCEA0AE1
+51657FBCA7E5B1D2D533467AE4576BB10B2231A697FD04916384C0A2A25ADF20
+D93F11E098A22F7381CDB0976C7990EA8D4590027CF6868A9A6C8FDD5578246A
+D1E5793DABF37AC1CE47DAA666F22F0096DE0389F3F68F7BA7C5154F050BD558
+51BA9C614611B81CC6E27F2D2A992E858B862FD5C95AC80254FF484975360B57
+D3BFF8620BF66CE81866B5E005D39C1471D5B4D6777F87F0A2993B0211EC2DB0
+C7BDD7DCE61C6F5322F5695CF165D03A67ACD6BC6A60C3461C38EF3D9B27A472
+06615DCBB1A6623549603CDAFAE402F832AC4F207F2A9DCC107F96914119F7CF
+39CBBCF906CDE4433244401C6A38F33FC192EEAD6A8016EDB6F344E1A1494E8E
+AE7B2862ECC61EB97391ADF3EB88784A96562EA8130CDC14EF70DCD0779BE00B
+649027E1996290AF8E24D52C1F1EA711B66766064BE129E56705E69E8C2A4C14
+D17ECAC540B15BCF3C8E6E7276416FBF3728925933FA9345EDA777138B56BA0E
+3B73895A45C18AB7785821B5A52917A7CB9A61C70C80EBEA096349B6934A4EF4
+759ABCBAA9182DE221E8BF21FA6D12A4F5D639596BDAE77AE40C4DD1153938A1
+30395F4AF698A02F04EE8A5826FB83263FB813DFBA349F7606799CC7D3000F15
+A1215AEF630E0BF7DB811D06700ACE7629DDD1D8B75ABD372C023D36AC5C039D
+A81B7F1EA2ACFBFDA6AF4D33397D2839F6BE02B0833A42CFFF0EA7389FC7DEA6
+16865B4EB89CDEA054008264AA05AA6594028B1FBFC0E89E66FCD8FA80F45216
+F8F7DF35BA06E80AA6BEB98FF46D83D5245DAD42A33E1601EC5C98FF6907C5B9
+B0F660834E8042A65D74948E66372497B2ABD4412A8B8A46E277FB1360987391
+6BAFB23E0A02920141A19BA5CDC0F6855073FDB00BB865D94E4488595BDDE1A4
+D95F85E0C4B0A1194BC09668CD6C0D03750DBE68463D2C96BEEEE91E96E1AD28
+38FEDC3C6F0E62F7D887379BBBE98D35195BDE978B384B1EE39BF013C3117278
+E456E7CC3B6F95C3101B7FFAEEC4ABD7322A02E1EA4EA1A21DDFE3FBABCB0C97
+54436989BCC1F7B2678E2D9A0975F207AA966130F7F704B4C084BFB2FEB31663
+6ADD9F8BE47A5D8BC5813F455E88A0F590AD743635D51E04495B55FBCE9EC630
+6251E51A9C67A67A82CA49BBBF6AC2C11D27012B217D24896B717EDFC801038E
+1F45C053B268AC3FBF04AF993EB03F27D1E6A5B490374097FA6B2D679207A95C
+A2932D6501FA16C21E8F22057F3B7EBF1B2AA4182960BAD3014533B3221D7C9D
+E408622572B9CAFDD8509728CFB547761E975F2AFB25246A2A994CD2BD80AB9E
+3CEC30F5223B23A6738EEAA688C0FC840AF27D11EEB249EDBFC4F83280A8EE02
+92B4D418A22540CAE9E722D44CC63746AF439AD6C593D3B8EFA024C1DD42C3B3
+4668E43279684F5DB12D5862835029BF889AC58F998C085F72CBE0DEAAF21581
+B3B3F3401BEFF886774DD073D0DBCA182883458C2A3547C12C8BD1B99A75D00C
+6F8A3DA8B2C1AF0A2D9358BE42BA481CF326AC5BB12B615132BC6293AB10093E
+F96C918DB2FB022AC985067AA8F4F9363F48DA7E303D20B53BEE9C15F15681B9
+5205E08E6426B24E995DCEF54AF1708AB92AA3212E2CC29ABE5B415F1A46C97A
+86A01BBDC3F6F142C7E7DC760413375AFA6EE9C56902F0DB2F5A45EB91C7FD3A
+A1688B449AE81D3D77D69F09D4E528FEAFA3B17CFC59B8C5B7BDE97BA922E142
+59B08E8865B79ECF016E319EDFD4A514CC30B01F48D798E591DA6B2F5BF94C6D
+BD38D42BC17CCED696C1BCF391030F0F445C13695266DE3FD85BB6E12B22203F
+133CC4023B475227624A85E81A0FE60B9CBBC850E4C5DABB171F98C076F7BAE6
+C584844D910897C2FE8C94DF5019EAF0494ABA0526496BBCD9DF3CD52EED942C
+9D53FD3D67AD8704AEF3868B7C341417EB3DF8A6F81C2DDBFF464E6E35AEA659
+BFF3181334F19707F7466093D6C68D10C1145DA1E90AE0A1DABAB8D5CC17C195
+64847DEEBA9DDAFE2CB46867EC8C93D0D2717696FCA1B75A897B443248BB8C06
+6E29FB2449C8BCBAA4B587438077DAD610BE12FCFA99C73F587363CE9D0FBD2A
+6B56FCCFB4F16AAC93AA353CE4FE86DD081DE6ED9A1647E49FC805A055C922FE
+45667EC2DA4D2653DBF3FDBD5BC56F79309FFC5BC9B7435F6C86132F000DF523
+DECDC83D84A8E50AC9806B792667E32E499F11FA9D7359AA3E3FF5B4CDC52515
+9BD7896893276E071EB36353C5478A8E6A6549185966B01620688B9B9F5E631F
+F2D594A2024AEE3BD70451E594E0D0DFF5B231420C59BB201FB1671E61C8272D
+188F8DBC75C009E0F5887589DAF8148D380DC452E9E0DF480295F8A2ED10663C
+E4919C90C1CB1AA9830730449865BBD85BBB1465F61504B68282748247FD3982
+74E92C75C5CA4BF9ED5AFCC23895A5CCD3A45AF515688B18E7B3FB6F0A16EFAC
+D9B7BC07D83321ED99081E43EEE3DB08001D21AA575BEEBE985DD9B3730819B3
+C8591E184EAF59C9C9362BAC305E9631F927ADD8CAA0F8245EFFD921F0CA89AB
+BEE50AA23A1A54270D317B08A1F74A8EEFB164D0D977700C8125FDBB7C9D66E6
+1019C67766887DCA5660C100429B4F158FC4E109444123F6D3B10274F4E89B18
+5D319B6C6BC2B012DACA3BDAB3D908DF1BF32173B6C6DB645FEE3A6B704B9E3F
+E35628C9B8ED60350319307B22DEE61AEEF986222915DEF61B8E20E19E028829
+08BC4C06DED8DB0063F6B5E6F76710E05EBE7D8064DA11AF75464C04F79E62C8
+06A5B7D3EB0CBDB79256EC0F533DF09D2EE4B2543FF47826AD62E37CD7BB703E
+A0A3C6553EA938815E12F47778239FB8A393A27C75DC3E3BA068310C0F5D6AED
+062FB3CC0DE56F9C16CEA8D5C0E6AA8DA42AA3E7DA9FDCD6593EE03EE27BD045
+76EAC4409BC66C868F43CC49A5DD2763C44F806434DA3CBEE9068B934AA724F3
+86BE17C0EE23737AE4360C1AF089E197513A8B27B11D5D368C2F41A97B650352
+08A0853852045CC4C00CB5E911E40B14E4C66D8C1D13DC3D6169FAF22C0F494F
+D2E8C96A8D744FCE213294F1373BB3A95B07A0435DCA2B592C4D4FC1140809BE
+DC6CA900FC8F97F3F6B14F85F8B07BB4AD43D8A8480E3AA70F99B04B07FD4315
+54205A2DCD96E764384FFFBB5AE725052FC78BE7458D3B957E002170616A30F2
+135DC5442A2038AB377B7D1A858B5D3D01E6848BFBE75A23EF495D1912D33328
+327BFA6BBC441B8E40C6219FF5E5848854823B6D64990EEB1E21B5A46B8E40A4
+DA5AA104302A743FF54BD31C2903C9F4F27C355A4BD6FAF285B3E0CC8AA481C4
+18BFC9755CD35CFA78BB93AF239425CF64841ED47C02199F35FD7A90B0526C64
+D2F5A6F86FFB06794A329EEFF23C6F14DC37EA755FE12F5C0ACE80A8677FA815
+3FFD057358C19FD86ECBE50876597E107B7B071F470266CB440F951D21CF603F
+4FDD45FEEFBB97753FBF5BEFC0CA0BA77B247994372E2A61A1E9CC789CA94F94
+0259C10027F0370EDF7FB3ADA8FF543B424CD0EE4803FDB62C1ABF55A72AF985
+A4B391ACA504A6682AA77E8A5C6683445437D8BF89CAE556778302BF40FF3E83
+3E50C03F97DD7EB1C79B7001E2DD70C17E074E2DB0188924E365ABFDF5A312E1
+C0A088912BA36D2063E803178DC394FFB412537AAC2F5BB0BC3E81B44110E82B
+76408EFDBBB5EC3C7B163AED6D084FF17F62842289854B9ADBC21F967BED5814
+5A6AA7ECFA7B3DA1183030D4E43C1CDE5B239BB4A3E5E4C7104BA769559B1B24
+B7D9E9AF28E10B68984EE8F94E07571AF0E04FD3F16A202A384E8EB8D279C553
+15186F705AB2CF45F6DF23BC14F7E2FEA8A72D867909F6420E66C97D8D2D81C9
+CD21B788A882A8B553705F9050D2E505AA097F8C1909C17D44025D47966BAD20
+4C4D6C17C203508185449158A3824541ECF1448B31839B9E60CFBB048B319B6A
+213B46E6A6CC89C9F25606697946DC083C34379A194A514392531418E2106991
+AFDC2D8495D4E324785FDC24E75BD9E8E91F874BBE946A7240158B57D18FFC86
+3C7848A3644F8F0E460200C6DB9DAEA7405B2246E9430439A6927522950BD134
+40FFC5BCA26630732435D81E5259FBDCBB5CE36C094827202B80953F9C51A946
+6934A4E7C6830D5C33197488230044E4EDE470B0B7F5FB97BCB3E09D083D5B29
+3BA305228BD93FD1981F3D4A58179DDF9DD65AC1FF7E4B4EE3158644166D9986
+2004CACDF58B5D27F7AA71572EF01CF2DACC2BF109FB3BD0EC911DC51C13482E
+EB9E64813DEA011B8EAC6A7D35A5BDB4ECD542D6829651F9F36BCAC020290009
+499AFFFBC6E1F7E840CBEEC7C3BA71A4E402BB
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: BeraSansMono-Roman
+%!PS-AdobeFont-1.0: BeraSansMono-Roman 002.000
+%%CreationDate: Thu Jan 29 18:27:33 2004
+%%VMusage: 120000 150000
+11 dict begin
+/FontInfo 14 dict dup begin
+/version (002.000) readonly def
+/Notice (Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved.) readonly def
+/FullName (Bera Sans Mono) readonly def
+/FamilyName (Bera Sans Mono) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+/UnderlinePosition -104 def
+/UnderlineThickness 69 def
+/Weight (Normal) readonly def
+end readonly def
+/FontName /BeraSansMono-Roman def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [ 0.00100 0 0 0.00100 0 0 ] readonly def
+/FontBBox {-5 -236 606 928} readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A989B9974B0179FC6CC445BCF7C3C3333173232E3FDBFF43949
+1DB866C39088C203DC22FDC758584860EC7BB67FDA28CC6208249060E18FAB32
+204779B5C03C0493BBBBC95CF02692CC4DEAA8D2EA90B5C2E64374E92BCB8501
+429B8FAE4A76C0C6B76D6FF7CF9A7D5EDFBCA0E959541C59BD05B7DE43D25D53
+FC3DDA6EF0C2743978A6D03E19CCED4A11F2EA4BCC3110BE8B8D9E2772361969
+C19258EFAFDC276CB1ADE9208A941A36D18A96F6D1C771F81C4B3B8CF0CBC2E8
+4B44D923DDCE84E17DAE82547EA9EA5E732D78F03AA245377BF0780A3752527B
+6E63F6A41202E7A6C4E4F9330A0AABBD04387E12F2ABF531216BF498DC6B6BE6
+06DD50B385DDB864515170905E2BF225AB9AEF29A2181200040460795735C124
+59C90AE9BF9F01F42A2ACC5A5D97D4F6548FBC903ECEFE9FBC8492EFEE55ED6F
+F29A7BB50432A42FF30DB3CEBFE1C2BF83D613F2C846B7F2173F00B4EE5FAA8E
+12EDC39BDDF670F50F6AF072673281554416E77FF134014D5C465127C28647BE
+3E810BBD9EC9F9580C21D2E9479B8F0435749734B76F4C06995E769710828768
+3141ACD67803BC92D5B405AEBD4B25D5DF255B110F1EF1C35D45D24AD0B1E0C6
+8816579DF17721764D5D2CE396276ECE1E6142DC2EEDF83FD7B65717064CF671
+051D92A9993F82D241AA1C3254DBD3DC53886264BDA18DE9FB8F584DEC9A32F9
+82A6131D7140BC7926C074E26639A7141B87ACCD64E61A25DD7E26F463FD7834
+964655DDF83538CF1DEA3D6363DE79EBBCDB429279F84F5DA8035CE823A76FDA
+C2FE77036F5B9D71C0CBB063689C0C9770514E550CDBB1BE97D763729B78CFE3
+DD162726B3F3190F0003F4812E9877545507664B32A1BC0E6C933BA64EEB3563
+39606495CEDCB8EA6E63ABEC9F3558DAA0BAA350F45A6E9B145480D9513B87EC
+14F7551489E0F96B698A104DCDAEF9160549D551093AB3F5F7EBDDEBCAA3ABA5
+F0CD388ED13E9611675BA045A8E99C002616ED89D1F3EF0537C6E787DEF9B5D3
+F20879DF1555A646A79400D3EB80A209937A45A6345C4E51748D3A5C523F9F93
+FCA3628D463FABD8537A948B3A3715BAAEE70345F5186A550FAC78ACD262E671
+AF8FDCC133800B82183CD17B4EA18EB6AD976F91FE3C1447EAB9EACE7AD9354A
+B29F3500141C4B6246062E38306143CB10B08216EE8AA2F99A23CEB18014CD30
+7F34DBCF8A3EEB672A6DFAA20EE2EF3BD76879E37619FC7E8998B432D4319A79
+BA058744039F384AC76B2DCE1B32094DABE91ABD547C8CC10CB0D450407320FB
+1539B126837C367B0014260B8E928F11B8C0D60C4D4B514807BAF8AE9F898DE7
+E006D651EF8842838B37E0F991BC3376DE8004E1A86DE3A07CC82B166F156A01
+20CF7B8D3975893E2A84F65C0B219E276E6A73ECAE7EAFC563637F7137B4FA81
+12BD5D8B57792127727DBA31141A27320282B63A1ED8CDB89DDEB8B040EAE190
+03C35678B897E0C27C6473974FD43199B0344E462B2FCBD0672A1C7F84F27D90
+8B478094FA44EFD3AD5CEE17E30490E31356CFB37B99CC7B9B0A27D287D9D6A4
+13B354CFF2A0BC37703774F70B96635C2BEA2CBC5382F6C96B13136B9260D75F
+0568A57EC7D74F93330F46C973B29E97D928CCB19F7A4396A55340308F6E75AB
+CDB5B7A0EB395C742D5AB9BE3ECDA0F86562C1503F9BD5B0CECC2EDC1B902C9F
+5FB13E9D7AE801E7D56BD54424861F306E3AD277A3A25E4D41CBF59FD2081EFA
+FFCF9B742328EDC962FF21E19D92B5FF46AAC81E9FEFACEC65A8009BE7A4487D
+5EE52C9836829722257123A65158C91DB90F3A3F755F8AF17E1833A81C11EBBB
+14EC001C94279BB82D20B0424AD36DA30077C67A946C4A6540FEEA068AC25C25
+1B9B0267E589F43798CB4D7A992EFEAE22273621B0C31664978672BD6F186E2D
+8FBAE8B55AAD67E4067BE47CCF3B2742811C21DC58B9FEBE6339FF1E82C95A76
+503802FCA297938A0D07C8E2B23987496D664C07759AB2A407CC193D2320D9BB
+D53CEFFF13CA8A2F03A91D77F601CB162F7935E1D591D4820EEEDCCCBDE3F3BE
+CE6969C9512F7688BA420F82878EA772E2E72CA4E6FCA36ADC37894B8B982498
+814CB39C2C2FFB8F30934C971417DA95D464E135877C6D2D13DFEA8BB3000057
+E791B7B9D507B9B6FB91E0341398366B213F335971758ECF12488BA2803EB9FB
+869DEBAE5CA0B23276874E312B24BBC22F876F7234458D6AB3F15DF80F9E26D6
+010299DDFD174B94B7CDD45B83DC38B8BA48FF5B027696538039AD830786A0A0
+68F8BAE7AA56C7769B40FC65DB50F77A837EC449F4AC8773664387F6F598BD94
+0FB24DB5E38AB1656C6A8264593E7F788D739BD00FFE46807498FC405208D16B
+D1426FAC901C6D0ECA771ED25AFBA64FF0198E5E263F6CEDA80549049BF64A74
+36F0A281DBE81758E0313AF43076ADF59DC60CC58574E147078BA2B767EAAABF
+15B974FD33C8214AE7009F9D720FB1EAE296C0484F7FEF7816B019312FEEF336
+09E05764AC81CE82846EB254B065DE1D23934C82FCAE457B12F3E72B4B963D1F
+6DF6B4480FC1F1927958AD1B2A4EA7EE10947DB0BAB5ABF50A761E3F9ACBAE80
+BC40EB28A8259BCBF0E7DEAE4A2FD0DC985FF621013D02C47C04DAF2F03C9C99
+069FCC31B45618092F025ADA3ED013C724CA96C4EBB50F503D776C1B0D3AF01E
+64B28C0E6C177D9A64711BA079ABF4886477BAA78AA80578FAE814435327646B
+28C5081C8F6D048593122A36359C8292C0CABC681563985B86F1166C9E0B1509
+49F2B13D7CE048140FDD16BF46BDFC5B1553AABB82002CCAD1227A82311A0490
+DC1AB194323D8B4FC98101165CAC6B4185121B57485075C84B5EE5269E843D22
+61E2F34D35D395783B46FAF92DB96B4873EA8FBFC8F932152F1EE7B11613AE98
+46BD157C5AF1464FF0FF5C02B3474FA3725BBE093198AD9626E1269B314CC1A3
+FE4986E6B24D6BAC414EA18320D8BDA5EE9B9FEA7E39A70C4E38D98F58996CB4
+E3B925870704BD0DE0D571F7477D4F0B065C00EA0207FA5883C22D562973FD4E
+552D55D137F6C8BD8DA14BD7406F69F19B6A859FF846E725E88C85FD5E5E1520
+68F0A7530FD68B6A37D88E378D6881D82FA702FC1CD2F7CB7036907B79EE5186
+B8A07589BE5C83B6062D0A94012FCF8D8295860000255E8E4CF7A8B6B0475D23
+78C372F5DDE779C9A6E5EAEFE0F84AF9BD9ABD16F78B6C3937C6DF6E0459DA8F
+861DAA0D574A3CB11A64EFC8F1F90B53D44636D654EE87ED42A3C22094477094
+495B21B2A6086F2D5CAA8E1FF33F47CA63E04855418E15B3D4919077AEF0D8CC
+48D558F42D8DEA1CD9438E7D96A8028CFB8AC667BF45D8F99C3B57B509CFD962
+33644ED8E7FBCF25A6C855F420AF92869F400C240F0C80E25F0DCEFD3C934104
+A41C8F8DA71204DD72605A458A816556AAA1639F0FE6DFD8773E579822E2152A
+F53D41B84B2A128A6A7FCCE9C9A6F3143608AFDAB4DF2446CE0F730F01F4D111
+F033EBBAC3B046E11CB08D40D8971ABE40CD22792B762A0F828AF80D85955993
+B3AE82D9428EE1D7BCC1ED9CEE8C293388A1A09664809D771D3719306FE95903
+B708B61027F581D2D439D003007B8A7E6AB82F3F53FFF7FAF3988E56F572F2A1
+6B006E007D50B3A445AD2C8E989F71A449EE5DD329FDAF69B1F13149EE56C097
+FEBC921ACDD53226AC2B1955B6A699BBB7BB702E49CD651FCC7601A63634AEF9
+60AEEA8992D3B3039176763EE7F35E7A05B74C147A0CF37E5F10F49DF3B616B1
+FBB383D33D0E32AA5DD11E73E16202D8AE7767E1AEB0E65BE565FCB984EDCEB4
+03730CC3A2C2A925DAE09DF45E0609942DF7400919FCE30630031F7079842B16
+AF232EE453C50C38C661B8FFE54A8534038BE4360038AC66458FC40E1B9B118A
+3BF05107954E7092B120C22FD418DAD0CAC5754875CE574849D08F154B0B1FC9
+9E28768B297B46587C9E4FE9F8246776501F09F5DD197C012AA381F9E87BA7B2
+B53D93C4F7307C66C9D4B78C2B09D7DAEACABEE33D8582BAE55E49DD4545CC1B
+F23C74DD4FEF3FAF80050EB66E63F50E992D3F247524D59D8CD760965A64A624
+7AF929208C1133E9176D1C135425B2298880E5B8AECA695C345F9D29E29BE2D3
+A9C4C4EBC25672170498B844AF40FDFFAB786917E801001874F74159C7BADD2E
+E235399D8E1F19B92C7D66CEC194488B054B0621F6AE352B2CC4234DC3431DD8
+BEAF52B0E471858703260127235BB9FE3A98CCB92AC6B78EDDB431221D7C3534
+BFB0FEBF3DAA01A655801B496905E9872324397B7E5A709F8A2C60BA62A86F16
+CCA9CC966E9C36171B2895E77FE56496C239B0854FA64124E06BD321DEE27054
+E32C3747507880E278E23741011C2EB39F8D65A288E122F5D61DB48C0F17172D
+8EFABC875B8FB50FB82C9DD9A7DED8691FE570205C708CAB02139A3C65FAA334
+3DED7C1E714418A4A833CCC3231347BB6D537B58D01D983C8B6D2F1F83806DA1
+9D9CB9C06003CA8018836518703CCE03930E280418397C27AD145669EB2C3FDE
+96F13E0F3766BEE8BC075136284AB4C70346204680F25EC3057704A8C0BD3AD1
+BB469356A55BE4753A81D76025D49C033E876A02B9BCC6F74315496EA9850FFD
+A4C4E9E3CCF7096491DBB2A3E4C543433B69BF0C95A16C7447ACC12913AD7F84
+CB3C217E8011AA02D6F51E2537029AA7BF02D8AE906115F44A085825F57F85A1
+AF9B53A576E7833EB94C166344764D626F08F35BC061CCEA2B3327239A166E3A
+DA4D899B93A968983707EFF2C4BFFC1485E654614CFB0903AF4E95291C7EFE15
+A63D079038926FF42D7873285C00F7B92B3FC3EA92D31409D3542D196C45BF32
+5479F95A67AC0B793ED5A4FF895032E5FFB07E2AD226A759D778BD77E298C626
+B567F7A5FE3244CE8EB1A5515A05606371698FF7D2167E9F3E285A8472585F2D
+62862D8DF390AABB63D241E4E14AAFCC33DAECD7EFB0F6E53625FEC0551F30F5
+A5DC867C7C7C62CE425AB442773993CBF758C8D9F524535E73F9F1DB342510F0
+C0E98431F5AC2211AAB4B782AC938200AC1DD98E70DF19BEA39AFD63D766FE46
+43FA084DAFD7C25E8A4B369A68B73683B9431F9324EB4F7E51EB5FCE0ADCB10E
+0220FBB708FE9496CC2DD7B89C8E2DF14E7CC343E09BF2FBA8E7EDEFB7AD2B72
+F944D26C2AAA7EE1A5A8C629BC5CD86B0E395D276B525F6F3BFDF16F28D23786
+A38BFAD28CDE3A11071EF279776C985436C66ED805E8DAF43C1ABBBBDD6BE445
+588BCADE789EE1ADD98C9CBBF97453C22E8AA67869238ABD81E835CED2756FDC
+FF68FEDF98F7450C747E1A2FD16D890DE7C9B87EF6ED946F9992E68358226E71
+1B675F55AB9D80136122F28479C4854CCB0CAE977001C0402675692A8CFE7C70
+3D069CA259B73AB02F8ADE6588743223D21D3F19FC13311C5F2423A8818BFE7E
+9D1F6EED53BC0D4D599B614DF64311DB1F1882EA57226C068839A7DB3B3C57F7
+450D4EA2BCED6806C53E7615FB3EF62133E3C161EFEB8A73AB7A84BA21E2D7D9
+1666D19BFDDDF2FC0808763BAADEF3E8BBF1FFDB3C787CF2BD3014961457A104
+92254C9AFE0DAAB83C444BE4F2AFEA869696BB5F6810E5E9387F1856FEB2A99C
+108C6B1BE257F0598CD58BF321DD1C5316782BC0E824557D081C905095EDB756
+D9F14CB7012C7044FE43D40346BC4F89BB2FD44F81862CED0DE337A8CEAA48E6
+E41AEC4AD4E70CE0EF74DA9CC406953FA50D40F6C4C628B27267DD86653A1B88
+491B47F3085175F73731DE7023EDC5879D5FDC4AC8B026E10F54B9B27F88D034
+ADB5E73EB53FA2D868AD8AE3B30FE8C50C041BDE3A78851ED7E2B13B83CA7070
+473DDC6C6838A9D58B734E77D33DAD505D598FBDCE623A86AEA7F86BB2B661EA
+C5B71DE272DD4A1A909A5013025E48D48B035E403EBB02C9AA9F31A434833449
+4A2EF1892F4745432A1BFA48AF0DC68FB45A34323104ACA3C7F36CC29BD7289F
+E0BCF289523A0EA955A8D7D5F340BBEF00969C8123777A922EFBA4B8BAE0B41B
+8B4E6859A16F92BD815260E28FCA6BE3E640F3AECE6598BA1A37E95665F93232
+68B7624CCFCA8E4187573258F10577A2
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: BeraSansMono-Bold
+%!PS-AdobeFont-1.0: BeraSansMono-Bold 002.000
+%%CreationDate: Thu Jan 29 18:27:48 2004
+%%VMusage: 120000 150000
+11 dict begin
+/FontInfo 14 dict dup begin
+/version (002.000) readonly def
+/FullName (Bera Sans Mono Bold) readonly def
+/FamilyName (Bera Sans Mono) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+/UnderlinePosition -108 def
+/UnderlineThickness 120 def
+/Weight (Bold) readonly def
+end readonly def
+/FontName /BeraSansMono-Bold def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [ 0.00100 0 0 0.00100 0 0 ] readonly def
+/FontBBox {-19 -236 606 928} readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A989B9974B0179FC6CC445BCF7C3C3333173232E3FDBFF43949
+1DB866C39088C203DC22FDC758584860EC7BB67FDA28CC6208249060E18FAB32
+204779B5C03C0493BBBBC95CF02692CC4DEAA8D2EA90B5C2E64374E92BCB8501
+429B8FAE4A76C0C6B76D6FF7CF9A7D5EDFBCA0E959541C59BD05B7DE43D25D53
+FC3DDA6EF0C2743978A6D03E19CCED4A11F2EA4BCC3110BE8B8D9E2772361969
+C19258EFAFDC276CB1ADE9208A941A36D18A96F6D1C771F81C4B3B8CF0CBC2E8
+4B44D923DDCE84E17DAE82547EA9EA5E732D78F03AA245377BF0780A3752527B
+6E63F6A41202E7A6C4E4F9330A0AABBD04387E12F2ABF531216BF498DC6B6BE6
+06DD50B385DDB8644394C4D3FD8051BE7AA17BBF8B3C41354A86C4334EA306A5
+8772FF918DD38C7BEB1DE9E6CC2149A988B8662E7034569A0631E02086B7C244
+DF8F585CE52A08716EE2832F7067728C244B87BF5A0E5D8F720F14859C2BA170
+7A223179BEF36D98791691B88239BF1292FF3C511739A3342419C30DE5C4F56C
+70570E32B8A256F0D0CE6E58A26205B32CF8E4E325C2E6B9CB74294CA40B1B98
+83A602C90C2BC6F5484EAC2F33F86AC21E880023E3A820D761FB828169C8CEBD
+AE34C85DF3925444B8E29C56FFE614B160B57D8A55F1A6D52092BE766E050A98
+8D1A856B2E24DDA3EA9962A54F0DD0996782017D4654C4F8BF617B529DF54BFA
+86E1E32AA4C1A212212094D7942F412FC49C96309D495EB67CF229376A6987C5
+4E320CDC9808E2D7ED4BBAD182C2F3A3EAB70112B45FA062DD7C6492BA475EEB
+19E78A80F74B6859647BFF707CBA462AB54F51359D9DED52A23AB9F714CA8226
+C0ECB0ABCB6E109CF5E72424ACF5601DACE099869520CE07F92DB9E600134C09
+4CE89547BBC53C6384DED35AA84888D4272F31F33CE7EDD5A0199C03382B0981
+A32057490A55690393812F465311858CF6EB237B6CA692048F7410F96B786135
+5B3D1870DFA4CEAD06744BAE44F72CC543229866032C9905A3CD2729C30877B4
+0378154914E27F6DC55C3E980C3A03CF137A1A1342922A435E50C802728CFE1C
+820774CB474ED6B05B7FB52B489B0E9B262C69056AD9EA3021442069CECB6951
+51D5EB9C92E6F88C6F7794FD8791B0A6D07A5F7867D2626123AD13A0801A5F39
+E1C311C317F89ADAAFA6E13FB7BFC3AD1444DA05129BFADA52128313A6A84FB4
+CD05DB3FC14F08AD225EB68BBEA662062631BDD1044B3686A4840ABDE8C04923
+7DC62F7707B4EDC88F46EDD93501BC8286D9A228545D88455E2BAEC7C499FB3B
+AF0161EFFE3AC361F1846807492FEEA2D84C86ABA3705641056942E206181B41
+0900F9299FB7DA4DDC952D5A17B8866177ABD93390F876FDCABC1F1A37C701E0
+BE7B5118988368AD0896054764A8F5C70C5B3472D8AB3C0BA86330EBBD604D34
+8681AA2451A65BED11429B7E94135471A57008864A787A50C4C6C4B11C0E579F
+47DF8305F58BE04480665FE7F15E8F7D54EF3FE5A955D585A43D51AA48955EB7
+57AB5F7EC39FB3989C0DFED6A5596A432146C661746E7BC3E888F5FCEAE4DD0A
+50898A96B6675921D4DBADD8F7C51691FDE69FA26185E4C1CE27C7227B38444A
+D01FD9122C8986AD2CBB93F8A45AE61FA28E226A22DE5F8F16453DF31EC35E8C
+E91689B6241203D414CC810268D0D1DC072F8FB9CB5D312E8E3AA3A449E9C9D2
+149F87E84BE9B61FB17C16991D0F0C62B83D820354BCF0D422A7195DC898B8B6
+F5A0BD98204D1826E452A6E5B78B7E976DA0310DB72264B0388DD0BD42A60878
+6E848DDB11C55BA4E6F05612A86A2A38D1BCC5F3B9B0ADEFA1243DE693A3A4AB
+05EBDFD7C1625AEC61FDD632C251DEDF3D2F9F36F4D8E6DFB861243901FC7A1D
+953BFCC91C4693F6D4E470BE800282CBC7DAE592F5814CBB89B1EEC84CFC483B
+85225BE434D6F03801EBA9470FE34B23F62076C1300C5CB44907877B61CB19D1
+71A23503BE60B9098082F242C77C1E605EBF5D1932C59E83F6E076C1BCFC5700
+89D5B2F31C20D252C6E37D3FC660DD1BD951F9392E88102F589038D2DDE3A8F7
+BA88675CE9F026D39B8E92BA6193EA627F5E2F3AF1206C11460770D2B943958E
+2E0B4D048EE15B1B70765C14A655F6968C94FB8DEE69D6D6EA667DFEB60DEC9C
+312EAA0CEC500AD6DA063C641BF95401C2B667869CDED41CBD6FBD58C7CF6D68
+B58F52ED684CC901DE5CE1708447BBF90C99833370D0A7A49FBAB87810B32D6E
+206106D075098728D0211169306C8D7CBD1D8AAE1E6A4C713FF3C10D68C29596
+5C38B02B8DC0CCD9E56208298F24C0F5E729A604B93710E20B830EFF70294449
+2D9C12300425238D85011BE8895C8663E1FDF4B1723B451E5BAEE59D9D4187DD
+BBE2CD681D9B3FBA1DD3E8904962DB656D477875B80B513F09C2F155BF9D5D69
+F4967C050C7940EC75DF62FFDF5D7FEDC398A3F7D921724F1BC80DD17A005220
+80468A3C9A7D90FA68C9E72E2C14825A96075BE9DC8E713F7B32FA7EFDD32436
+1BA076C489854013023B0C86EB4D6CB1F4DEAB3F2BF244084D2B3A010ABD894C
+C70354D605D5D7EB11497DCC6B1D757D0A63167040009EAF34A2804055F11133
+7A0810C16CF10E9AEFFE48CD7B0AB92720DFA5C0C1748892C1D64F2E1C70B0CA
+53D4271AAAC822952CEE5F229F0548197DA94BEF1B2DC33DBD8C8BA858C6EE38
+CCA603F1EC33B96ED605711841406F68380BD45F849FBC3E2AE935CBFA084BE2
+13519A38817A092F1EE912EBF3CF34ACD9AFF153D48D88BC02AC923AE3361D60
+0816BB327BF1D51AD8029E6FD8FE27B94D9CF0A719675E3823D8C77399E1E24B
+B74626D6F6062586A44BBABA5B580719B9AB63EF3E3457D6CD3A76AA5A6178DD
+292D32B8494F88AECDDE24B24CA1AA67820CFCF7C8A15435A8FF528ACAAB7E9F
+3D3B385D167816815671CEF53A4E5A7C961701D6F82B9BF9659E3FB1730AF4C6
+4C7F9EB3AB8CC8599E4C24F6407EA3A898D80EA2CF26F31EAAB2A9330079E344
+9C01268AB11D80F97CB55C7F8BB0E3373ECF9A293C1A069D4F579F3253D8B855
+CD5515E423A4494F909A36856CC7E0515F260BC607222BCF96255E5B1FE7623F
+57315CB33624E7C51BFF42D9E05C54F6832D98FC467825873AC005542B68C2AA
+8B94AE2A759FA4FA6BF288DA801DF1B388EE988919E297C14761D57B157B2DD2
+FE9CD793AEFC1412A0B1A8
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMSY7
+%!PS-AdobeFont-1.0: CMSY7 003.002
+%%Title: CMSY7
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY7.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSY7 known{/CMSY7 findfont dup/UniqueID known{dup
+/UniqueID get 5096648 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSY7 def
+/FontBBox {-15 -951 1251 782 }readonly def
+/UniqueID 5096648 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY7.) readonly def
+/FullName (CMSY7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 13 /circlecopyrt put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
+7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
+DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
+511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
+1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
+028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
+1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A4D9DAFF1B3EA76067
+C5493B69F73B89C8B61804A34FCEC826343337CCDFFCE17BF343EA8034BF95AA
+14C56862C2C052569AFB236E1F1795F05150C8F28DFEF6BF4BCBACB678D00036
+30EE84FEB44B1A8438185EB45654E6853C1159B073E54292D135F0961A64E8A5
+AAE49C4BA9C44156C123426212120F99F3E8B7425752A5FE384AAEF755A8464B
+51F015F9E2967477D57B22627D75CEF8AAAF0AEBD504EB46D0289DFC8D86C972
+F042BD88A90A53613DD93D8A7A8460E63D85F6C15C000C0AAEE4BD5130B6E668
+8C9B3F3FFD804745DA1D5EC0AB85C96E1724FA67F9324C59275415182AB48D57
+9722DCF602396AD4B5C075A5A89A5D005C9FE11273E5FBDDD1800F11BBDF6AEC
+6711C5633A73AC5DF038BA521AC492E138F7FFC7C5438FFD32FEAA1128C66E83
+0D3AA40665F05E62D7EF00B1B0596162C402A34B6BAE6300D43F3DFCC84860F5
+C0F0F1CE28FC60642BBFE9BC9102E80146774CDC88F9C250DE762D24A3484BCD
+1D26B6D9FE981CA5AAB2A4BEDC528115043DC18D7105735D7528C2C5DD89A812
+75B5D7B2E5A586FBB0C061E708F92C1552F64A296490BD0F20243986A4707FF9
+8AB3C917B8DB92F19DCA6B9D4A1DB57515E51DD85D5C9D2CAF7A036AA3F9E9B1
+5B5E099CC05A9126AB274C17D75CB4FAF78052366D2F21EDAADF84B22A2D645A
+3E65C4BC0F540B5D9609D88DD0E4CBEEF87C16447D43A5F98528FD45ADD10DE6
+41AEC411FD6929308F0E4F48A8D9C9EE386E920D41C1CC98A52073011DF5BD28
+5683F280B5CF7F27DC50930C81D344FF5A8A9258A207D2531AC21A735B14155B
+C22C752DD22AA33C52D6D4D053B3E46FD4C9129068DFF52695A3A9184D04E8EC
+93696A3FEC3AEB3814D9015EC14C22EC3ABD5070E8C28A3B42F5596D948212B4
+AFB9978A0A361135C9E18CBDC98E0D1E8BDC17E25DDB3D52E86127E5AAECC55D
+FEE61693190E378978EF1BBD4D1AF005D511C7607CCFA4BCBD3EC427CAD82809
+B725B25AE8A03EE88F80A7732A571A2317E0B6A0D072EE8CE2EB9E033CDCC899
+B64CF4FA1C708A885442062F08D3D8DAF44C066EE278714D1486EB709D327865
+A483F62709E89D08291F044325208EBA758DD459481334F5D9AE3BB61B3020F2
+A4538CFC2C94BE84C920BE80806FDCEE394230730E049333A7E16509207514FD
+695B5E0AEA9E4A9737311AA0B33B15F6769FF865D1ACB63DC6201C3F1062A3FD
+1B446C1857460745917A36289DD57C94FE6240F4A40FBDFC10E91B91B79029D9
+9F1B9C74E8E5AA011A0ECBEC660230AD5929F01D0325D15FDC0040406F124021
+02AE176F4C98BAC1706F03C2B5B40F325A50CA4683B2BB4605E68E72D0CBDC2D
+96B3BBCDD01201B650A7E7744D58D1E36D81FBF72E0A875FF29B4C109A1950FC
+9621B18D58806392EEE9841794DFD39E3C4E20D45384FE07F9D445F143B922D1
+AB350AA6DFC51FCF767B141A392D6A8B633AACBCEC9F56A0CF40AB08020EE63E
+08CC0BE01B40E86388A65F5869F2F4D022DD4B912031CB8CEDEDFC2473772569
+5B28F66AB74CD7902A0061AA3547D13C7F0C6EEEA7B0BD316694A94E4D672520
+EA044AB28D8D01076C486CE456EDA1811F7ACA75D27473080D27D3E681E35FC6
+447046120C6CC4C17674F0F051570A79DCA74848F3F300B58B19018430D99858
+CA5504084D6BB74CFDB635B6866974A9AF05DF201C69352B2663B0623E7828B9
+5EC5FFA8D8F10A7C28000F8C679B180067D5481D6315BF1C4194EB171C8F3CE2
+4CE319975B9E948D907F9F7EEAF07089844391555F329E331D52FF114668B8A4
+80704B3C6AC0CCAA2F5D043CE44E65EDA89A0CA854CFDCB11D549B7FA72EDB90
+D35353C34A771B1FAF96F83FCA5258AAB65384BAFFCE448690C1432A1F749C20
+5817205185F973FA098BA856584753E75EBEBF387FC155202885F5B67117DD7E
+70D1CD887183C5573B6FB607D4F6CC9F8B94B09B3F3AEC2EF1E6A320CF6D0112
+63046321941D1FB3F2140B59370AA9387E24D579D389A166A10C989497FE9549
+34E1AC2E546CC06C5308460DBEF3E1AEEB6CBB0FFDAC458E61DE3391480CF5CD
+34A647D4DE15B81131B7D1F9EED4C6837A32E89B0EAAD6A05F5F67518655E5DB
+224D4833CEC60D5DBBDB8A03FB1A9730589BB4F0FF56191D17E73B9562E0C356
+B188882B36F9505F6F42EB2644FEE125C2A7D12227ABC8ADB924E88B0A9E8DC2
+79762523B0B88DBBE6AC7968A46BD9E9F0C3F03F5F64724CA07782195F01F130
+30DBE895C212E0EE20162D863F46A674D85232FA0DEE69A8DF019794AF6873AD
+9CC2A5EEEF9393313CA519BF95C08ADF7A75B6F53EDCDC39851D20E58B97CA57
+A7523717AA1821DEA94C8A9F8B82346B16D92D15AEDC16F0011A45A44B09DE47
+08CBA46E8511D0C5CC83F952EEFA4ACFA7F3D7FA5E113EF6B70E5ABA6F1AD3B1
+E4D3B15AC6D5C3BC70A3946F411A7D965D6FA9D7B6C6ECE19B2C29A2FF476251
+EBF0CF3BF658A1D896323706172746F58B2DE49F8B7E431E20304A42694CCF73
+11C4E9E96260CC442E2938A1E27EE6744C7CAB01634C8210CE40488B9CBD757C
+4277B5E3E43C7560291D945F9128AF1F85924003418F96458ADDC5BB8EC431D5
+AC9093D20DEA69B92454613BC1A82DAD4FBF8E56084494D9D2FFABD82A7C9847
+171FE36B265B546F3072B0923840E6C6BB12CA53E05A99F0E8FD4F5109782746
+7CAB9B35B68050230736AE624B7862D1244C7D9BE4D1CAAE21B123D1E8372377
+F1FEF269A9A2EDF02CE0CC8BF92FD7EF09556987B8A3BF6D8C0A663DB6B9742B
+E9AC61A449106AF1EA7ACAD40AC6F59427CC51865E6A90CF2AEED8D6037BA70E
+4ADDAF622CDE877C98C3B2006B4721FC9BA18E30F0752BD4ACE36221F5CD1497
+8FEDA5D643BE2EE007970A68E53D85975116E6CC09F0039A09EBAF0CA4B0EED6
+A485CC0B69E526033FD1C1190BC5686739CE13D1AE8EBCABC01FCFF26141867C
+44ED291196E546369129B9F759FDD7DC21BAF0A528FC34BA9FA8937813953644
+C539F9DA4E55E83DB3D6DA309C562DA1330B157957B18F7618544AB738E25F16
+F0517CD13C1F11BB8EA056BDC575D77CDC526EF497639DD89C2098660C5C45B2
+D7CF715AC5E76847E0D3178360DAC1BAF6ACAEE72453B845B9F86621C166857B
+029CEF5AFE29D1EDB4CA3AD7D008B7550A779E0066D7312DD6C7AFE1C0BFFF25
+7B062B0DF30032EA2A2FE3CC46C96A3A0BA1888D1D2B05424A59ABE3EE928ED8
+B67F507EFA78AE128F58B54634C7F534B3D0F4AFC23E38FB56EB39CFA425FD37
+848545EAD03EDC5A9E796CEFB345F527615C785963F536972EBD9CFC4A6A4A07
+5A31A508CA147FBB762ADD198CE36DF86730FCE2B643D1E7DF0BDE800DE7AF89
+44A36B04193E44231E08919EE91A8B559646DC4DFAFF0AD891890A0A88FFA8EF
+B066BCB7AFCA409C51889E7FEB33F19A3CB1268BD0EA74AF29C1401BABD16F87
+ACF7DD65A8513DA9995C5092C36A774BC4260113360D29AF7ADF5D22B5B58E7E
+A9BEFC33B9A91D2C397B27A81087376CB623318A8362C3FA9CBE3026675723C2
+E711910DDB328E0EE3FCE219F44FE528B70E58B8E6CDB4AAB48237DD933D9639
+E9D4F9EADAA8D46537D964D75C27F210B0C2473CB60D65F61BBD91ADE01576BF
+77C49E31936138B0FBA066BE910DE1B1F0E4FFB5E81038E8656ABFF08DFD923E
+6BA2AFEDCE6998BBF7045393C34811501586A4846E5B942C8E99D4C481D3AE60
+2796ADBB5242D59F1116EBB828014BD903EF58B223DFD18BFBAAE4D348876B06
+CAC10B7AF0DC270E6702A3F75D4DCEF872F2CDB9470AC9A1DC1ABCB55636D26F
+9CB6BF27A0DAEB1F62AFEC12F55F78C9B59AC6DA9DB4B45444B0C582DB4DB8A4
+B31EF4AFB77988E92FC0B257374B4408406490D9AFCC495316D6C08BEC9A76C7
+12371E14417711EF802FB7151B3F6A2580C97527C9C3A0FAAB8D62FD992AA18F
+EBEB36F7910186CD5F70A55DFE932757C299D9D2289796769A00A0C6ABD18F82
+E0D4E95D6477E67B4C012DBBD098FE20E2F15C412DD2AD5471A65EACE05B3A1A
+0C9C430BAEF4887F2CCE668116B87FFD9DAB4B9B3605CD26E6B12488058AFA30
+8843791A95BB322DF5C47387F3EC72343855D6B23D72144EB5EB5157B8B238FD
+6C71DDDA64C9539F66A7DD569FFF43DBE4A8F0608A3CBD354DD9BAB5E3C756DD
+92C3C1B3E169D86A2230299432488BC04A87E08A80809F9968676DF9157B1C91
+27C664ABCCBA9997FAD8966F766B325086899D1FE44581FE07C97688B3E15B0C
+234A22646C32BB965B9BFD2CD34854D1488AAF021E169BF9CA9665CF040E25A8
+16156C80A2F47397CD370AAEDA731E0D14FBEE1E51A17DB972D96DBCCE33F937
+5CDBF1A650BF1D3536BA4CB7A1CACFD5CB457E2368A660A62AC26E64A631B2BA
+6B08EBE42E02D9B1B2E95BF9F0A6B59C96A122968FD46A4D17BA3D018CCBA0F9
+80BA3C1E6C683111AFF79303CF64F1D2CCBD7571C6E09DD9B27B8E101BE219F0
+E075880A0E367885AC94143E777DAE455B990383100EADF786300602C2CE28F2
+4F44662FDF03BD39A5181912D8F1243C36FF88882CFC4B34C1D4EBBC01D96A7D
+9CE5303042D1B21042E4FEAA455F22A01333FCAD7E4AACA5D3A5386331985F6B
+9B247EC6310BB07507321BEF3E4ECFC3B915AAA6E029B3999644C987640863B0
+5DCF58CE479497AFAD1208FEFD1796E74467E9F7867C313A3412E6923F4C9144
+C69EFA17965056DF043DB465BF2F1E191706D3AAB47E6AD5C9767E4A73B29F2D
+E2E579D0262237568F82B360ADB6D0219B7535EFD02DD0688CDD23D84FC4F308
+5D2D0010B1A9F4F0321A00C154672D21708B66B91ADCF98BAC7A2F94848E9A4E
+86CC82EDD0399BD9F13E43359E71F80086B9B0C3B6D08831D4479ED83E7892C4
+90C477BD1F06DFEBBF60F26516EECDEFE4787EEA8683754F2B257D0BAA607DBA
+35EC6D1618C2FDF3881827F92D793ECF152D761F2423A96210F582DC9B90120F
+26A33025414716A5E6F56D712E31BABE5047EC4855B767AC63D793995C9E074B
+6E35C7E5255FBF4C3F17E7AD7B2A6C5F7459794FC94306B581536910F244BF5A
+3158E821CE75F4B0565EBE985DF24DAA92F9C1D848EEC6B88E21FB6C51125872
+1752F7352291960E5BD36F78AABBCF6DAA4D07AF56E4B6058AAB13D41BCDAA14
+C0D63C6807FCD0E2B4B9CC892F224843173A75DC53A8F0FA396959C2E2CFE3F5
+9B1C8B62797F34E7A0BFCF0787C73FEF98442234A617CF161829498035D30B29
+ADFEAABD0B496E8A2E764D22DB7737F950FC5982F1C5F4FD414C1B0202F40FBA
+62C81B8F0E836CD73D79366FD62388B437B81FC673442EE34BF27454F72A08F3
+389E60CE28A050601A42FB4491C60DC02EC008E6B9DD2495522BBEC7293E2923
+120584E88412DA7137397B41A28706B1CC6BB0C80709A2A4BA79822D245757A4
+3EE454198942ED2316FAEB981F7615E642167620EBDDC5B271E273216EB119C6
+4F2F0412F0BA6E3BA396217597575C6739194E1F839232FF088FDDFD3695A5CB
+9A0E220389938596D8BDB183138E1F73F64512E4FAB5E1328F9B42364E3113B8
+004BE2CA0B074EE271BBE0260D31CE555D535C16EBB528747EBAFFF253E659DA
+3A377CBE0B296276AACF0294CF90FDAADB4EAD5E2F600E5B2A018DEFB86FF61C
+84296480A425687CCE37D671472537E897AFD4B8C6A6175E1ADDF9AD24DFC5C3
+A73E18AC2D9B28BDA2F17D51DB3521945850DAF0EE48B0FAC271544C1B4F3B2D
+53BFC8DE32BA366FB1FEC0DD6C0B1FEA374CBE2B96F5B235A1D83A240DB442C7
+1460980A3E5B96AE3D5784DE2C2DFFA671E0A856DB2FF4130E5905F3D5338856
+C11A468D867D0C6EC585F1AD3E7164B8598BB59973B9A952FAE819F052A6554D
+EDC342BCCB0525905D1D27ECB9EE43847B69AE116F494CB2DBBAFB2773F1A3E1
+C75FBDF8D66FA5AB4005757D631A0D9424FCDA91A1D2AC6FCE7CC7A23E84C65B
+3E92BC684F23467DCF8521E0E27CF1441C487EC6E3BCA0AB54BB137E83776009
+833D772FD225E88A8BD992FD69819B3BA90BAAD1DDF16E4326190CC4BF9C30F2
+AF7CA1FB38E6387D9745FC5E176B248B1581BF7A4CA2FCA8E423DF340EAE29AA
+7E07A25FF838F67378F9A6A9A0B404E01E86E64FEF71DD3D540D4711AEB1974D
+E2E0D485DAFFC74BA6B8E9AFDA245BC8997BB39BB6BD52B496A09C68F7A8E900
+8DB3007643416040FCEC85B407EA0A946827771FBBEE49A3DA5542CC5173A31A
+0280AB8E922C23C1BDD88D70627EF124633C318E7C9ACBC14AE216BFD41C0B6B
+3A0161757913CA1F7B6626963C09936A52E73DD9B3D86DEEE73C0293A646FCF1
+21D4C33DFF1671DA7A53E77E20233EDE51571549AACB7968602CD03EE67ACACA
+B231661CA9DA2BEC5795A83DFAF675E9B052C8BDD51490F7874C91EF5ED2E0A6
+BE9CBABB98A950F7E55DDA3823036437C11F614E27DA5BB8BC6D955FFE54B825
+0201275C2C49A3908BEF1DB3D87792DDFFED23DE7FD9CFC284F6255C77E54A39
+C2FDBCD28F2938E4CC135829AC1867CAA5705674062C9639FEEFBE49D6108091
+7C58585B80464F7E69966D7933C7019BF336B88B9E0E7073A85EAF297B71B303
+31EEE9121347A482D28CCE942AF53E94F88A97EF2F1860A92CE29A14495D67B7
+D37E207D42F3891E0423F5BCFFCAAC057FEC683696ED6FEEFA65C8FB6F1312C5
+24A1130192B4179F3B08DA1C951D988894E7FE7CFC28C56992A1CA82BF8BDBDA
+E021F16E630FF67201BA4DF5F3F4D6AA65B8347FC1575C142C6C1868E8472BD2
+CF191137AE1B36F32FD84DCAD50644AD55EBA2694C93BDF984A5C9E7C92B73A0
+26769F00831537266FD2E711AB3F8AFC5F3FDA3C9E6439FFC48C3D1B5527FC56
+1FEDE991E66E8465C0E395EAD0A22A2FDC001E449AB9C5E0EF187A1DE9B74696
+BEB6A525DBF3A60DA2FBF1579150DEE1C5D1B6F55FF2708CE23289803CE123BD
+C81E25DB96551A13AD713D5C7BFDD3F2E1D5C12463A195442B51909CC1724E50
+A1F6F4EADB3B7355908F36F88521F333C4E7C70B094209D1F883B961DFAC32BC
+8C5A2CAF77CA5E6AAB714CC0AF2B42FFF6F73301FC71AFFA9B33A2153F55C2DB
+C1C111874DEC37CB746BEC9A3A9A37A2DD098CE7C66B0FE38460ACD77A47D53C
+1550F857FFB733B5A8D02FB56790A09190B29CCB4F4A3058B1C82F0CC5E1B2EB
+2F8E06F2DE531E1EB81326A8EF0F82843A4AC59D267EEE45730895752820BA93
+A129C22A78C1AB28BCF67AD5DF372FECC9EE6719A02E499FD5CA866688E86089
+7EE8E5912087E0C4588DE38428114785E0CFEDB1E2EE24CC067D107DFDF1E2BD
+B1C4F9C6B740F3DEA0BD315581004E851ED5A9F66C4F9E95DE97D355DB06F482
+A43B565F1255A85710B15A281E2F034B1C23FEE6CDF3A043780CB6AB18A016F1
+9EAFE545CA5A5B5AAE2459D69D2151E99D029FB5C1649B9DA784BFDF7D177385
+4D8B16B9922D149FFF6B4F99311D52BEC9A9FC098E7192180DBB38767DA9B9C6
+E8CFC98615219EF3AD4A8157D14C72BA3F91C8B78381383E0BCA1A5319749E08
+D67D1208C693A6640D1BD6B9285AC0D3110CBF8F7747AD12585141C3248D0BB5
+BDE892F91A4B3291F21F30294693518E4629A3ADD7C8640E424FF615602C603E
+1E14DCB3B17D34C090BEAD2A523E260A599522329B698729A635CFB15BE7E79E
+6A34DAC7C3ED57340821A4E7A0C7F88F64BAA69BB80DFA8B659F4756878E3044
+E1DB7EE4FE60074AF97818B3D36CF51110191B4E10655F52CC5D11F56517CFF9
+04BA2676F4147DC8192C98C555B00F6C8614D23084A0A70E5D9D0DCD118ABC5B
+96912E91FA3F6A8B9A7B83BBB1BD9C2044B5335493C1B74A8C85971E454FE379
+C971CC567A316AA11D6745C6489340A939E49D3E402213EFD8AE74ED4DECD30B
+3395BAD7D65DCAB84EF2B2BD6E178687EC870720A395B69F7F7EDCF23C703F76
+42509CF6CFDF972BBF78431564286903743B208817297B75D9F46F272A3F78C8
+9D302D05377EEF4C4109087264467E3E76615D94ECA5E9F4D1C6F05BF19C11DD
+D76D595AB0A57E455857E8B1EB46CE0DE84F08D145CDBF6154E83A1CC3EA7E36
+D05BDE406BC36D8B66DC0E03E487
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: SFSS0900
+%!FontType1-1.0: SFSS0900 0.3
+%%CreationDate: Wed Sep 12 2001
+% Copyright (c) 2001 Vladimir Volovich <vvv at vsu.ru>.
+% See the file COPYING (GNU General Public License) for license conditions.
+% Converted from METAFONT EC/TC and LH fonts:
+% ecss0900, tcss0900, lass0900, lbss0900, lcss0900, rxss0900.
+11 dict begin
+/FontInfo 6 dict dup begin
+/version (0.3) def
+/FullName (Computer Modern Sans Serif) def
+/FamilyName (Computer Modern) def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/Weight (Medium) def
+end readonly def
+/FontName /SFSS0900 def
+/Encoding StandardEncoding def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] def
+/FontBBox{-209 -321 1528 907}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11
+69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB
+CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89
+F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3
+F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C
+EF25195F68A2A98170E48759F267FE330B507C15D01A48CEA1B39561EFDC256C
+5FB45057A54480A0B2F8EA705C884B2BAD426156445992C03D7C9EDD5CBA2322
+7445EBF42B99561B111A2FEAF0270F82F2D1888A340C6B27130B764396FAC49A
+E525A0972590D8C963728C8C8DC427489CBD83371D357A87DD07EBD71627DAC1
+A13D2398C591F9D869661B8069F3BACCA9B3CF6F202A12DCB2BA563924AE5FD0
+DD40E412D8F90A8DA4CFBFADA63F48A504F75E1DBE685B708F61E3DD7C8613E8
+BC7A623D7E9A9DB0C57D538D6E5AD77165BF4E1C8E56DF1D5E809264C051ED46
+49D407DA6AB0CB7CDAD6EF63161653BA0D4B65853C526703878C907C82A23191
+601B75C3CEC0844B5433467732B64F4E9302EB585AE595266395759ACBC132E0
+BC10F0AF8D24DA5F4058D6A19233B3A89F30BBA72744F69B5F3984825E78590C
+8DFB3F5A5FA2CE4B728B5FA2477E68DE373964BF7B09DC803519221A80391CFF
+916BE5655C26293C30215165D731198DACFC66DD5AB418C0EC3514C48D96466E
+0D48A521885FBA0391054575B8E6F829987FFC32802C8B3945F620EE51228F1F
+B6F4F1C0296BD8FF18A07E3852AB1189D4CFAB335B14A7BD52FB4E16727D43E0
+51EB0055FCA6E538D916E2677C6C79BEA58EC3C20BCBDA1C5E2A8ED9A460C2ED
+90619D2CEF8746D9C6838E4639F9CB21F656D85FA3FF222AB769600F2EDEDC0A
+75AA798540DFB939F8F013F5B64969DE3EB35A3B6AF2286E21E07319733165F0
+7D86EC04033C26BB33F77B6748129E8EA2E57F742EC8DD05F16943E966B98CB9
+8BCAC7C6886E5A19E8D9AD2F896A111B89C2205A24B234B72ABCC2B8B3D56BB0
+58314AF80AE4C679368A13C6477E31978CEB2E24EC8EFB6F2BD05FF521C40018
+7EFB5737467AA8B28B73D53F872A5FCBF8EF6BEF8F3292950495C8AA9050F307
+7109AF1EBF0C4026FFED9AF9C3E089B07B4D9208383EEAF0BADBC51037DDD271
+CA81513269AA3DCD7B3B2A0F8130FFECDA4E041CD6C6C0B29CBE640B989E0752
+A84CB136F9633DEAE9CB386A900C1CFD1FCD4D690A01F044C379DD1EAE2BCEF2
+1BA42AE6863E2CBC2530816D0088780E87FBCAB3D34FDE93E95E824821FE060E
+59E1F62677F4FEB7F5DF7EB0093FF36C008CEB5031624A248C26519058625F9B
+E81DE69BA65DBE9B3680EF0FC47281BA7C76D2AAA41583525D6D9C9F3B820BA7
+435024D48916E6A19FB998F518A075AC7F0CCF44018D6F607603C23FCE4DDA34
+4F508C055E57C2FB2E1B43B981A9798BC43C88D28F580DD78AD06DC1E54CDD8A
+7B08A4CB7CACB6A822FF706460832D64B6BE0F8D906FBF7421CC7D762078DD3E
+5018FF052D11E5A12FFBD12A674BCC38AA87ADF9426DD6B63D259A918CEA4AD8
+DA1874A699B690FBDEF840106D97741D9FE5FDFF435DCDDB876051DB23A8F721
+B06623B4670BBFDE5A850CB4A138CD5AED4267096D6F5B59E434833A89074E8E
+B7AE95EB52EF994980B921C47EF74592B6FA0C9073746B8C18D9E2F5B41A4BF1
+D716D67A246656438AE69E93B1997469D73BE829DDB7BD974001F9357A68A158
+BCE4AF3226433159BD59249552FF9A88ACE586100BBB3BF729C2B6B24C0CD147
+63A3169181822EB234408EC343D683908221C629994E37BC2DB86E5487C9BDB5
+03D34358394703D21364929D4747369E037E8198D27394AF7F5F27FB6EF7A00B
+678192B99E415473B4BEB3114F7C6C1C8CA14B8BB7A286078BCEBC6D07A2A386
+20215298FAF5E9129EA14BA8FBEDDFD0712384E734D208957ADFC7DEF83F5E5F
+4EDB351DC26BB050BE17C460EEC693C16B0542592ED9167A5AA41B2D29A6E2AA
+2B1269FF7BFE1F8C0DB136501C69BCC4C6E8641E138B4D5522B2157B9068F1BE
+B925836A24CB08929FB4A43A75A5D45FC8B9C52101ADD20399EB6F2622FD2F44
+F72C571BEF9E153A956D5B252A337AF57456E9DE9629F2CFEE7B8852C4C86D6F
+D37C5F0AB3CE68642CE6C07888B890196AC9A81DE2280888EB37F59B8B90C463
+CFD7F9711B0FC094123A06D04576A763849C3EB885280CD0728B5E7C12E76973
+C9A662D38917CAF5511820BCB2E11A6248C0756184319E202B57F237F21C09F6
+1DFC9FD34C706AC27CFDE15D9E907FECF47F5ED5A61AFCC8EC3338F70DCE66DB
+A7DE8C8EA3C60575219104394AB80C5A40BEC2B83AF3D62EF1C530875138D6E4
+ABAC4242E7D82B72DD8725B9138695EED5900EB8F57F1825974FBE0C17422B71
+F1FCD7A0D9281DB363A45BC38D2D4339EF9B2387C777AC73620B6602B27D88CE
+83FEF6584B03E3312C109EE5E868EBEEAA1C39BDB8082C1132AEFD99A022A2EC
+E49FEBEF1C7ACC0D84D67D21BAB7AD3B0F954F8729BA682F26DC1906CC507052
+4D1E60F045862F313CB6D8DE936E063A86DA6CAFD68B8E32E60C749802BF674E
+3EE182ADB7EABC054CCA05B51212FC3C15A2E238F79E02DF55DD190619E0BD11
+3AF96A2BCF82346B957F7C590021AA644B7F3A9A0151A25A15344E93FE87E3B4
+D7A7A7804330004ECC5E7607EC75EC3DD9766FF4EA8F994E54FB3169DA2D3A10
+A63A19C2DA0DD7EA52678321C6A5CD8C1BF8E53ACA2E51B9B33866AB214C1081
+8B3AE853316002B4885791CA91048469BC43853B83886F115E57BCF79A312041
+1A8B15FCA918613FC076EDA0A940DA3730F390F61C28B4BA46BCEB1E9E0436DA
+0F2BD80378AFA69E24DECF644DF92D8B8F52F5BED9E09AECA851AA1A7A7519E3
+43C0DA13BC3526A7961496AD20749D58D428EEFAC440EAD6EC6737949FFAFFC5
+B4DA51026F064598347DEAA7F60CFF85EB4042D652111D4EBDF7E0C87841CC99
+58BB44D6204A5144E1F34B481428336BB887A4546020FBD608AC12BF6325CF2A
+1023D0E037DCF90962F96C215CE9B0DB5076103D55BCB99FED4DD2914F5AAE6D
+6DBD7B725C804C8038310EAD5F4268604A45B3255A254A95E5C1D602FACEC94B
+27E3F46EBB39E55DAFC1C94CF72D16E67673D0641D883DBBF22EB53BC8ECABC3
+DE478B07CEA2E78EC53B2848E0AFB5D74BFF42EF404AE00836828999710B974A
+0CDD161BEDB622A841EF73E59F2CA466BA0C061E8509A1B57B3F8174447A9777
+CDC9C4D9CB1C5EFEE8DE9629F2CFEE7B8852C4C86D6FD3780010399868C99D30
+E2010D1ADADF1135C69265488099609475F605FD9690C2AFC60E8C051053517F
+3348A94380C39AB210921BAE4A70AA4A2CA44A6B898ED798EE0972FFC24E1AF8
+566A58B62F7740A9F04D7B3A3B4B66839BF3A7B2BB5CAD740FEDC3E27F14268F
+B10F586A5EF2F3E5A74743FE781F1756CDE5D4148A1651E46B86F75FE172D9B2
+6A3F4D1119104B8C9C295586F4932783C61473719233F3E815B4DEE832214A31
+72F3F13153527AC2FDAFE6979CEB210E41CD5334171F1E7DAD437A201A6E0DE4
+57EE415D0163CED17D9A124232E894752B7DA94D3E4B6A878410A0FFD1FF8879
+D537D25FB79FD116F8BDF57AFFC3621062398BB6CC8ED05DBA6D32B177EAC39E
+3881138AD5B484A28AD1A541F29C163DD4A6FCA9D574718B9BB26D8D65DCB198
+029969E7E6683FADB4A550118AC728A1DD434F06C029F590EE85785A0FB48B6B
+F3DC2DF69EE874DF3C2D253A93E9733812FAFAC971AA607A9CF032A8B094C1A1
+3C6E697602FCF0DA3B4FC19AC4852DD08477920F918509452B0FFB5095F90A64
+753C9F9A46B04078D23572F83B2966D43E3C18F9D95A5174F5856DB02D336DEF
+A83F44C1A8474F38B234B38FA876EDBE856AF3E130AC157149FE33054339C0B5
+9D107D19D013BC3526A7961496AD20749D58D42058275294214481C13BB3EBB7
+CF6357CCABF806295563DDAB4619F6DD76A9C55F64CCC6870FF07329372A93F3
+5E5CABF73E2B931F2FDA98B0E7F904534CBC8C49FC0FCBC50FC7FA6F9E72C238
+A7BD0E5FD2E9D3B5C3729DC47A79E7B97B627C01ACC5658C9190CB037F84E841
+C65ABCF7345C51D692405CC9916BE64E01A4EC94702850D1453A1CC3F96D310C
+BA86F8710A00232636239BFCE6955FA74ADEABE6ACA9EAD96CF2C11B51CE7465
+DA56CAE271F4DC09F71F2B4C1EC7EFCC33EF732B69E3A51D690ED747B1608857
+9101F08D1EDEA2AC078B18E50243714D42F90FEBD544059FDFA4311C72972E05
+FD480974B2EDDC5DA3F10FA419AC2F519FA7AE066372FB176C960F9B884EC295
+EB95236B862BEA4456AFB049EC9F206314F75C6300F139118D8ECC4AEFBAB4A4
+960FCE4C041E632D563A4BC5A1E52B8D3E938C8C15B97126727A0865EB589D9E
+455C0FBB29DF2FB185495B3640FEE2BE932510FE68DE87995883C1D52F763A92
+3535CC35763C2B61D2B298AE0EAC194988A5D1498BDF7F4EE6D268670E4DB1F3
+583FD654B10DD6DFCE20133FC4D6A4317404A4A181A181DA9BA3BA2DC87FA83A
+FBC507C47C686532F38D5CB26E31B2878B6C7D10901464A7DF71EF0634548E83
+ED56B9C31FE2F900C2CCFF1FC5A9A0E5E36BB89C0E13B5E67C0F3670ACF542CF
+0F55EB2A2DB06B4827E3731D565C0EEA302636292DCBCD6EA6948863FE892A66
+C708FEEEE58CD87809872B97DBF0D29804EC44BF73DF6C67F68DACEB9709C38D
+7D6EDA1AA0D91473371828DFE09AECA8F630484780A54250A47476D67971FF37
+784000E617168B1E02AFF0FB49045A57D4208E705ED9770942EB880572BE1D5B
+C14661EE1E9CFAA6AED96BC89A61E010D6ED3EC8B1390CA2AC2975BAF2A510C7
+5C455193E84334B24497218073DA6929CD8D0028621BE55FE70B5D0C5BA4A4C7
+8E41A4025CC66646FE53991D52A7C53CE895E27E5EB32D90459C0B38EF6DE603
+9F26A4135FEFC62A95867D70D856D3D6F9D10E1C74C825AFE8B024229F805C52
+34B353CA64927852E3D9861A8675EFF467E3CF54506D6705A652CD74AC3450BB
+0C9B27AD6231D5B85A76EF8372A74DF7FD8C17AE5C2624F8EAA22E9583921462
+6DB38F42455B9632C83A959B67CC5AFDC82F982FDF8B65ADE4859FF875BE0B0C
+5367C18CCF49A685DD573AD8350FCEB9059D0A12F0E0343CF5B2D4A9CB76E39E
+431F53CE092880A1F0085FD69CAC31A111D98F2099F0E773654F0532FFAD1FC4
+C4C8B8FD51449F12FE84CC0110D6B60B5331B03EFD744488D88E52D800FF9472
+A2508A3B5916C1A6B493573BE9D3EF8353076A4D3B4330A982C30AAA3D1325AD
+7777A4FFCA82C515592F7FABF53BCA19B6B17D691A27D5F1613A6BB4807832F3
+684BE5F69BFCD3A034E320705C92CF2260A4EAD5B7E80EBD64092A55516EF78A
+E5FB49FF61385FE0ABDEE0D89E467794927966A736E3620D02BAED840C491E4A
+0060DE7BA3E21540450C55F67F0ACD4DEDB0546755821A036D677AD25547888A
+A4D2C0926F8802E58D0AB34760F8D136DB14CFC2C2ED3148BE7DA99898D65C4B
+163F6789906D3C60A0A3A9678C8C5DBFAE8CCFE98A1C1CDA82ED6B602214112B
+AF5E8AA0939E3E3C72970547609ADFE0A7B7A8EE705A2181C934E401E94FFDD7
+3F1821CA3F18C0521232B40E85004859E12900139FFBCDD7F98BE18B1909EE55
+639B97195D570EC5A06EF45C2697532124FEFB3E825CC191839CA648E019F13C
+A5BCE2167BAEF2EE57874A7345705B70BD772C3482A1AF98A63A5A303C846C38
+3A1C9ACE9FC47625EA3898BC7643EF69F883A6E0982FE932B24495CC5C643833
+57F6794E4F864387FA751B0A47BD5773F54A9C01458DC3CD821B995E240815E2
+A866A4A74D6EAE3CC8EC15F663E992BC02E9D49917F01C5AA3BA5C639013F87D
+D7E4F24F9E2A82FC866ABAC2B6E2EA77DD8039527CB16E5C9371B0D637FFB03C
+91ECA5B1AB8ED241AD2F9E6CAA4ED71A1A9AC78EF9EC472254ABFB157D3E106B
+9AFC30B317EB57BB11BA3E39071E10C625D787C530D9546201953AE7D54E2E28
+A44A62AC673985CE804E119E30EB552A69B729187C98445FBCA660CA6CD43A26
+28E66F53E87681D0F632634F18648507B20C3D567D7177CA4358E2D206A01C13
+02C921477C62FFB88A41A772BCECC4A90327065F9A7182B34610E4CE877C4DE8
+5FAFD0906D681616AD49BA595940A15216368E1BF92230A99B1AEA30BE62E393
+5B0E15BE2901A684EE4353A0ED1EC8878EA229F71C9EF54BCA0BA817A02E1AC8
+82503F4DD682DCBC9C1ADB45C05739DC3C687CB28205C6155EACAE363507F819
+7943D903944A0D64CB893871F494B11C9F8EAAEB1C01FA9C2B9E0A6A9D15683C
+63003EE063DD10F24A57A8797C6B05F631337D8FA4B433F58C44DB6835A27C53
+8A53BB54B0298942A1FA7F8109E7A6C1C4A16CB1E3B1BCAA86C28A11486C27E4
+284F718214BA6AE12968CBEDFF51C6FE32A2CED3A6A94C8FB201C9E18668AFFE
+056C59C18BCCE62C372BEAC1BD60473DDF23A85AAC7C00EC290A9C2B6ED06F06
+1D629AB9A4FF7C70F67602E3934BB8DA51B8108E5C5376B21EF5CBE7EBAC9F93
+B1D49BF5BEB2330A4DB1F3583FD654B10DD6DFCE20133CB532A43863502E8A12
+727F5D50F3C73B53F8F68349217B65A2C6E9971456C23EEC3B25AD3839D7830E
+DDA635611B705D61C42BC0CDE75D6FA957CDA8989F3955864E470E9E6C8145B4
+5A717F19085186251B59C66A760B813C240A07F5ABC6512A91DF1E449C5D223E
+459C1CFF11FD40617DA8ED1557A25B16D755162BB65C9CD7A99A0A499FB001C2
+E6545F2ED526444E8468ED6AF03CA440AA671D883DBBF22EB53BC8ECABC3DE47
+88F8B0D8C342605941EFB5C5C8813CB052EC54A5F256A69DFAA5502AAA0FA2AF
+035F56B864B065D684C3BA99E260252AA2E7CD068AEBE1456A7707C4F300D1B6
+FDFEF441259FEDBBC4D3C89BFCC2A1298C3BD0263C6864DFC6DF3A7FA56CE538
+54C664F25749580E218242AD44FD99F5E412B4135A0D606A8C21103074F7CB3A
+5E4A41125B96B6B3108297F5239AA639312E6DF18600E51B9CB7BAEA8C242D45
+A0A3905AE977EF13BA0604F23CBADB6719AE00BFB9D1ECB790793CA2C932DE3B
+534D1676FAF8121DF0C1C992AD4C3FAACB2D4CB6D0F823D45B6333C19C9298A9
+6350E4C62975A0395BDC386FFEB2753DA85A746A6529E8E7D648A8A8D9BF3900
+9A3012E645CB61DF2B4C160B584FBD4508C6AFF196D57E8DDDFF72E156E8D351
+0D3A2B184831B46490CE0F1C4EF1ED238762882F25B0A63B86215A2E3D71E07C
+87C7C94E903DF03AC04C151A69B59E69D6C55924D2B294AB777DA4E020F5FF54
+CAD093CEBAE2A45D2CF47B0103ED2D42165F6CA7174C458C57C298A71A88052B
+3E05FA9E962DC65A2F33BE99BF7D04B70E643F385D6B52E2CB49162985F31A70
+A9C60A8285F18EA65083169227690C81360BFC5D2630B7DE482DFDBF731E4AC5
+29026DBC56EEAA9623B8674D480788FD131B82CD491A14660AFD1DB39C4C324F
+C86EC15CFA7AF146B60F049863F5E79D25E3EA85A3B09186258837404CBB2635
+97737DFE1DC582ABF78917CBF49006725185E3A6584356E881191BCF9C3FF4D5
+ADD351ABB6B75DC3FB4103645D5B24E1053D72E8324E1F7E77C7A7AC1B80EA85
+DD29E9D85CC0129882F8211A177D13FA1453DB422D96E608E58E291B99716E57
+47EBD84BF50C1FA080E251D1C143F5357833A0CF88ADF551EBCAD841B07FF8A2
+61D42541141BEC6B7B2D1BE56A453B9D769B508388DD936EC8C33A32A1951BCC
+1CC6D80E28F9C32E5068F9F18B2799894825F3C1727C5D7E7F33EA477A7B7522
+EC6B606CF186D582DD972AFCE8CCB1DAEB243C4231F232F3C81073D07149D63D
+DDB367F34D81081C111B9BC5FDEE25625CD8C4A36916BE2986C124C0DEA68AFF
+32182928CD90769C4A60FB31D933BF448E0F2F424CF33C0351FAC0D79F9DB3B4
+62A403B913E0DF73571A10BF623F5E298698428663E94AA30411DB14F5613DDA
+0C417C3C5A2F5AE58AFD4A3364A47680E82D0D6B58ECF01242F27DB8432FB415
+168A1FF84A5106269C920CF3D64F952CF68A50A751DD3ECFB2DC8313F060F5CC
+88725F37CD5EE9E04D2145888A08D411812885076AFE12EB7C12A5D3EE9D7A0D
+757CBF5CAC4771C8DDD31A7B724238D015D559E1593E1DF8C7B0EABD18AE4181
+B2DC502A421EBCF15C2C6B88F47E9AD7B0C263450AD5B57549CD23EB09A67E84
+3536D98526EFFB7971E9A5648148E49434D575CF2EB8BA6D03BF5EC2A9B1FB38
+27C105700ED744635406CF60DC00C638AFFF8F24F9FF11FF9D6B0C2B1D11EF47
+E35CD43BECBD46E339E95158DBA2BD4F9A977BF70890C6612BF7608DD8EA2571
+CCDC256C2DB61766B8A460BF18E59C5418E30FB914B9AD592071B5182ADC0AD0
+C2DB964037A2B5C7189C9C1B6FCA7003A22251C41DC352DE3EED3C9B1CF54831
+588D2E7910A5AABF7258DB1902402B30A79590B14D35D616A84454D484914361
+74C32B386702F3463D7690E38E858FA575E081F13919E1F7E84D780899439300
+327FA0DCC184E09CFED23A95110130678BB590AAAAB53E9AC55E4C2614DD8BA2
+551F6244AFE7A39E42F2CB6018E77B627CC36BC84A643A9E1BA1DED38FE782C3
+0E74D928B685ECEBF7F9D31E0C89C59688335ADD9D9068C1AF5E5447B6F07B72
+AE5997BC61E6402699218B7057B1E932124F3FF0BA53951A3A1CF480433211A1
+1DDFF5E7E234131ADFCA540B1FA77F4459A49FF8F652D8990C697E4A864D909E
+E651C10847C2FFE69F763A990CB7D6A85629BC054F08B241A2D876C6553679C9
+C885F1076AB4EF535C6437B8951F4671985B359AF11686CFEE325472EE347D79
+1DA17756BEFA39EFAD212514F13D5AE12274CB1F6D36305F03FBB7A55513E9B3
+EF100AEFF7436B804818A020EC6795F2FF63961333FFC7DDB819936EF485102F
+87335C3EF5F22B525669C19A6CB35131028296333131C21C47773024B3357D6F
+9DD218082A55F75F9B7982C96840EB5FC4B33549D6BDBEDDB498AB4354E45FA2
+0F947E445DA0690BD915F1C750E36F4ED2C8B12DC3195345C5BA1710190834BE
+40BC5F4B92B4C5FB706C57953C72BFEF25818BD35EFC5DE8B7B4D66F7699E650
+8B202485E62BC044BB8CCD9037B625F6A9358D47B65872E354ADBD35E9BD0744
+CCF1817CA388D64DCCA287EDEB4A1C38D39D2E15EBDAB5B884E88F385893B0EB
+537564269CB46CECE7822E400741715A51FD6393AB5C460F66B6454906DA9E1A
+9337646F59A60A84D4E219146060707142E47BAE8DE41B6C9F41CC0A17F3774A
+9C8089A67664896B6E229EFC63EEF26EA5F5181DF0236DC17F0A9444461CBA92
+A60171AC8345E11C206BE90B9CFAA313154E5F08E21EDE64BE12CF0AA9479F98
+B2CE73CDFAFD0E58B959361214CFE9F3F16DAA0E8922752F74D35BFC13CFC939
+1C5B422C50587983CD0539F34F233666B70AF61F10C98D6D820F34604171E87E
+D51B96F6126CE4CCF74BEC4FDCC7568F80E52CC37B18D458600090DA30522DF9
+CA931EC96C26E8579DADFF4B12782D58649C71A069D89ED406231E5FA20B2927
+3EC50307E0A2EFFDD63C56BE98BF43D2C80B96025676D33BF4EE1A9ECC5B3712
+45B82768A2128BAA4244B8EE4A81CBD681162DAEBB2E46C655A217090C5FAA68
+EE5D81264A2D9D513073C54421BD0D264AA296D7C06C205FA03D57E071F58D9A
+609766BD25446E4497149459D43981012CDFA0F63A4BD12B0C42C254FDB64562
+915C823E8BA48BD198BC90CF51AF625C1B786EB6C2789A79634B8E6D47E986B6
+CAA9C393A7CF6EF9C1826D530F55C06A20D2D842834410F5847E66EF1EA21EF3
+6BB7C48855901385E3C4B561DC0983DFC5F77C03996F43848645FB8A19811DF6
+0680BD09BCA1A67C750B06D27805B52F7DE93E53F3693583F5044D3F27D51C9F
+0154489B06A1516AB14A3C81B1A240E649AFDF53E6EEDDFB1EF7C8001B5F2476
+A240E2BC40C135BC120B77EAA9B7F1C19406F2955C7EAB22B8EA7551E296755E
+B5061141DB739D9A0D64E53784F4948EE85C49C5C58C32362B07AFFCB63CAF08
+561B4150A473D7D8093A29FF5D2D02610CEF5B588273B29A2B8F481770FCD6F8
+B6899BD5F63F58E1B2BA722A4F6685A05432BA1F09D77C1D59DEB93B217E4E58
+4842783D065A3C9B06A5B472CC2897BAD84257D33F875096F0E1927E82BA0757
+35861C05DCE82D54D677580972094094E8ECF454EEECFF2BAEA5587DC1857030
+87BC21AC6ED65A3A0FA0D83967382C19E95737C55ABCECB7B9FDFE91AD2EF743
+CC12FBE1797EDDB89B18ACF93A0403A4EA1BFF450F8AF591BA51CC5A6B59CDCB
+C74F6D2746F12FEAC224C713132AD3A718A9363BDC93B9401202434771E09D92
+D8ADAD2D388E70043A8EDB7A0DB52C528D323839ECDF8B7972576344B63351D8
+EE6C03399AD3BE2F8C1609974683EF6C4B713D850C455087461238EE99BD7D9A
+4B470874AD8EDB71966A5919B9B5E11CC0E36A1CCC22C262183A25939076F329
+66E6F258197E2B6E9C22BD49F022467E7FC9353952A03DBCC9A1816DFFF2D39C
+81915ABBB52B0ECCFF39A2AA1D3C3155B0DDC360ABA61F50F26D5DDB09EE43DC
+BB24BE069EDE91E3B36D7A7D5E797D460156B1C42B1A5DEE6D91FAC9560A4415
+51A1B122AC2E63BF710C0FE3DA330C4BAC8AD5275B82F6C97AFD6F9A3EEA79F9
+C0B4B7F95A1805B5CD7C2551142FB75FB9B644A8C37DC2520A044158DA125891
+6EA9AB193A4AFD8D3372D1C8DA5879BFCF763FBFA59D940FEE3283F03D26BBA4
+2B1A33513F550A5B31663090ACBCB2D71044A0B1CE7ED65454EA7D304970D314
+DF053CDC9262FC9CC67E5F0C6FA4448C84ECE626D5006A3F56E0EB162F534973
+B31E489E9A33786894885ECAC6E53FC3623948CE227D78EA0CAF6829183FF329
+DE55E951D800F41D903E0E204EB68C1214D956B209BBB913A897EADD1C5C2430
+E8144EC0389FF334DB9DD443EB6225CF87C455AF47ACF62591F8F855543D130C
+C0BC0DF266F9B8DB67B6F763BE811791A994FFBA6BB4BADA2647B0D460ACDFB6
+832D50178EF1680C6151A970D8980D203D27A58B208BA01E6573520DB5EE1D49
+A76A934286150697CF9DD3724C0A6068BC3BCCD8F647A52C491E78DFE316057B
+77282D4DB45364CCEBBE5D59F22446F309A0AB80E34E3B50458EAB8BB2225557
+33EAEA70AF786C61AE7101F4FCFBCF542A1079F4C050AEBEC59B3972169D424C
+57B7742DFD49FD49ADFB49ADDCD1B59B5EFD59FEDCB155B296943746A2BDF0E4
+C82316E49ACC2C242DE795483C17E76FB90ECFF40DF4B2CB9F778A30C8BE41A7
+D672566A5CE85CC742B2437137455BA61B68DBF1E7267B2DCA1816A401CEC9FB
+8C54FFC9E6779D1B2FE33A9055157CBAABBE1652BEFF3DFFCE693926BD8A2024
+B295E855D994083CCD71D674D67B7A2D536D7B4072611B97E6037A7D6F1B8CE8
+5799CFE69174AE17798A3D712C45E042051F0F7FBAB3F7EB4A3B65BA09F81962
+EE6776E82DD5BAF11FB8E7E318052ED7C80021AF12AE01447CB191245C529A3A
+C00339D6D94495D939513FF28C01A8731651F52BB8D96611B182230C22C206FA
+E8E1597C5098E758A3FE64DF1810182476087D7C5B6D2FC8721A2BB47DD19F98
+904BD35309459E70D48E2F41685A6A1BC91C7353528847BBDE1F62020D05BFDD
+AEB520B68592BF87FB0224E748569D7BB1D22A50C2CF2155C291BCC7C7D850B5
+4F3AD743A39379F628B8C143102CA40AEFE95C61C7D48DF9BFC98EDE0DCB0844
+CFCF43996D6E1923101187A8D3EF3E5E4BB25F76B457B311E399FE5B3E96C9CA
+E35AD631264B3A97119C9808F904A01FBB37DB139B841FFC16AB536650AA58F5
+4E24E8B623C35F51A7C91834D96BC09292AD92817E7427DBF2BBAA436EBBD89A
+F346FC07329E76104F980189773839DF2F5CC15FAF163B1A7BDBBFA3FADF57C5
+89ACE70E31BA99956AE3F9CA7000FB33811FA75E86AEA3855F58391DFF99349C
+908274D2AF898D741160859F86CDE4DCF9D77AA24C36C4B0BB65281A77DF607F
+D1D3855E855011CA16212C4A8F8121C79D1432E168D2E9D895E59E0791BAD2C2
+0F18EED0B307BD7EC7700A385ECB8ED0D148DFA0610A52D46EDCA25BED47292F
+6C740E0CD915965C0F16C70336CDDA80E6DE0B78614F4E279913E41D2700E2F9
+4B1D4149A6113D99C6A282ED4523A3B8AEFBC31D865362EC1F574F0FCF426619
+CCE84F497108FF99F5415224E08D5632E82E898E2F15545B4CAF3685D6B58120
+1AFD767EB32A8523AAA2D254B78C80A4900EB8CFCB479F872483A14AA731E51C
+5700E66F482DF426FE595F2261CF6EAB9104BCE0F0AD2E725604512482919276
+36B573DE7FF395337CFEA7119379AAF670498D171DA0093D61BB25405A348CD5
+247461A9285BD3EAD997467E57739CD3E7021748BB3D74E9C6E106A3625EBFBF
+16FA87333BCB5AFE22FAE00191F17857BBEC7B1BC96E261D468BEFA1044BC7F3
+AD1BA455775AAB1170251FFA0A8C405D773089FBD1BD70AA54440B94992D7FB5
+CEED20BFE46EBAD3046FB29A3F309DA26B99D639BD06AF97FC51D7EE42BAF0D8
+4D65F279DA515A9B96729E84E7386854C90E1532CE26A09C118823368F48FB3A
+029E4B2947C754555B8857AC563D64A81A663E82B46BC1F3B31D23B1F0B53B78
+29BE834A4EE4FFD780FA3A2FD31A6A7029118B6DF9D5E546C0CB19A1150AE0D9
+59DB40753B0571726038FD59DBA80BA11E004088C17F9EB121560D95338C7ED1
+161F500C6126C2C9E16E8942BF1B557C9F9D1B14C3540A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMMI6
+%!PS-AdobeFont-1.0: CMMI6 003.002
+%%Title: CMMI6
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI6.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI6 known{/CMMI6 findfont dup/UniqueID known{dup
+/UniqueID get 5087381 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMMI6 def
+/FontBBox {11 -250 1241 750 }readonly def
+/UniqueID 5087381 def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI6.) readonly def
+/FullName (CMMI6) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 70 /F put
+dup 76 /L put
+dup 82 /R put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
+45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
+7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
+72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
+BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
+974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
+11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFB83E8A2A6085DA11
+61B1632328B94B21D3CBF2E7752D441A2C9A03F6681FDAB37C4B67D5857720F7
+0C4BCEE266586738012A2237A85FCD0425DA7E8E8632543F5BD5D50F9DBAAE69
+9E053AECA6027559DE42F7291EB381D866F1293107553809861D43508C6F2341
+5E4FCC431AF4A9B3660386AE63E877DCF5E513D0D5702B98D58B34897FEE163A
+75CD6F5A2196F91CE5060CA5E72F9C5F79D18F242EEE58135BFAB02D5CA430B6
+D1B9A376849751A45E52577B1810C4F0C7F6C8196071D5B08FDB731C5384CCBF
+03B460347E0CAC959E4A12620B6C2ED62E06A241D1637F418B5599A7FF3C1390
+7AF66A00F7C31B4EDF249C56C268EC9D546CD0489DA51B734C8292CE7B3D9E30
+71448C85ACC64FA99B2DEA91AA4CBCBBB9DE20833700AF96395DEEDA3FEB7D6E
+D6E3BE4A62CBFA18BD0471C14F3A2FD025C88E8166A9830C5B5B94624A3D6482
+D1A1D83805D0EDAC1C79EA858A523D9FA3356DF42BC01886E77F6AA6B04E4E3F
+AD107D861FC626F0A439BC3F125D48649E5101BF79C71507FDACACBBB4C4335B
+C41A5C15ADF1DF69E1D68C3EB9BE30BDD5385F81D26EC8F2F206C1C7032B9EB7
+0392BBCA23B4693686AF8D2E1ACB2FBEE81D75667CD1DDB906BC5B675660ABA4
+E63429F16623F20B6A040E4942107CCA26CF6C1F52DEED9EC7EB15BE4F18F2E3
+9ABDEEAAEA9AC41E9F20C37C54B33F609F5835AE5A1EC9D674DC50FAFF6D3511
+2198195590F62B3B8A6FC8C3431BB8895A2F910F0361062DE32CDA9A7F41E761
+B09BD8545CAA2D7124B5688B54705AA52E4716E36C0303FEAD38E0510B3CB496
+6C30B115C37E02043D47B4ED796C671E30360800EC13F0F0FF3E0DBF5A642396
+EB0F39A9DAF0974678EA1D041F08BD73867065DA91B044EF2AB15FAA6546031E
+189936C1FD302BCFBE55EAF369DBA4895DD0996BF7292762551A86C8A3604E9A
+8AD29E38BF6FD40172051EBE7C694249F3378ED0139D37EEA3ADB66F3A80A1D9
+9C3655F054CACE93BA4AD42DC78A03F42455ED1BD5C122F234F21ACEB8FEFF9E
+3BFE0DB2DA6D368478299ED63912A234ADB1DCCF1E519AD20772B71F8522B5DB
+24E9658BDC1333D76F07F63D81F7A51D12C445ABF698092A24E5E5C36A52206C
+0C41F7DCA529BB0A4D146DB6B4B341459FC17FFA357CA5F93DBCF30B61374613
+4846D619423BCAC59B7EB40C14C70ABD985754A0094C98350D01FE9FA371B0F4
+38884690DC7700C49236EF68BD6E806E8937AD8B77648F552C0C907007465A76
+1475BDD3FBE1CF69C706E703226471C249A3448F81C240ADBE4B5474216D0235
+6B0816BB6935A2704E851E20C002F85B653BB0700915B358DDC168ED3FAE3D91
+8280A5CA5C2708D622B03DC47A70E5FFCAD5A7C8D9AD563857BBEF92A3BDB588
+8B5B55CC9B960F20CA4AEB598DA8488004DEDBC9671488011E836D9D8B6251BF
+256D08E6F1808E9D498449DF1F18E48B310D561D4DD3146C2BA64D960E66447F
+6DA8B07194E3BFAF662C00737BB7222B55A5CC206A1C46F252ACF93D2063BABE
+2BAB874C01AEC438D3F86AE37C9D7FCE4077F5B5785E12C1E0B685134CE2E8A2
+2E4DCDDAED2D53D13014E428FAAE22447763D4693E82600F850CA4A49E1ADC5D
+C8DFC16E97B9F6164095CF7F31373B591F815621F45DFF77BFBF89EF60C9F50F
+0C2FBBA4EA9602E197B9447FAB6AB57B19B1C801DAB66BF7D263F6572B9EEF88
+E06744C1FE197B8EAA71E1EB67716B7CAB30C859A2D1B2DB95ECED02B83FBA32
+E62F97EE4403FADEC936CC8DAA161F7B509B2723BA2B735572A80D7D087E6395
+6A9D34D5963E3C6E37F307C66D1CE551D2F055BFCC7360FBE93ACAFDE2B1A849
+37FD373F62BB23C1A2E3DF61C9452A8C995B03D44D6210A968C6293B4A3BE662
+C7B0B59E6EF6D53FD293B2C290436B0C448E7D15A63533DE321643E53C85EF8B
+060C434E46A736EA617EA00D185323460E77B95C49070B035194A2E7693C3B15
+104ED7F56FCADABE49F27F9A576B354C574B5BAFFFC57FE9AF02FBD87B8874A1
+24C53826659BEB1EC50446AC26EF3A95877ED3D81D33A8BC1BF7473FB9C11ABA
+0F27B38EEBDF77D3D3EA63AE6022DB0D4F1125DF274B86EF0A4A263E108D6044
+7A885F5E87362293A53F457CBA6C911D23653DA7CE4BB7D4FF4481AB97C0DD81
+C13515F0E3BF8A7E8DE2CE69B25BA9C185D9BF31A65DD290B0D4FDF40B61E2D9
+AF92BC6468B3F5AB5D5B88710C489ACC69198D697055B39AB3DE8B3733825C5E
+6E763E2698574381A01352A7042A36EA96D17DD2EEEAFF04ABF7BF7D877B0FC7
+B6BA51BA994D431F472B6EC4B4C327399576470A1773BCBAC61CDBF0F95DA6A5
+0BE5239B7E9CD39E1E4D27EF6695D1FB56D4CA2C2370509547D6D01273CBE6E0
+66A696C35D2D0282CB8C85D7B1C51453A0AD0BC80E1D183D11AA78879643D9D9
+A3D0B2BD8EE3EDF29483CC5871426232A20CB058EEBDAAED85378B163425C270
+B0F7BB46B7D1B89CF84E6A06791195FB17F11F34A2548FE424DE10E376B39A2F
+DD9B0BA2F2FDF3ED4AACBD0D60E67C0749D6DCBDE6E79041398DF3FC8D9B6CFC
+693B870683CC425C52705902DFD324E157C9829F25B14A057AA92AFA17F156FB
+0BA949698EAA0657B03D9538288D887959EF24A427EE7EDE47F304A1A6A715FA
+2966273831B5B3A9C11021C153E67A73FA606FE3233C3DB217404C6AED6A4C59
+DD4C2A98B31AF5604D8DE8354448B4CEC66022E756B0056CD32E9B002ADC712C
+0545C2C16D9457E271D98A4ED7DDE01BBD1856F5C3DA28794D2C7951FE2FE6D9
+18643CEEC41CA4A3464D3D3A102653CD6EAADA59CDD44918523B8811C2ECCABA
+AC0D188F5E07B37AFD56006B10B32EDD179F4DA693EEBF4DF5425D996585F21C
+8780A4D23D24FB0618C12DE65CAD42A0138E28A100257978EDCAD168C55C6F07
+78A067F0299890356C2A184820A554FB07448395ECE36C45211757552E288ED3
+7DFE46CB92EB2070442AFC85864A45000C4854D728096AD3D4C552EFC26DB6B9
+C340358451B50AF9F1B35C2E32D495DE85B5848D78940270DEFC07A14D960730
+878B5B55916FB40FD805116C9C2AC8C6D4645DA67A978F1C6FE705EC188DBF7B
+FE7AD6769F2EEC4A9B05306D5BCD6EC3A240D6A29ED07D1D82E697DC8CC391AA
+015DB6BCD1DA5C9A5A7BE3C5936681215E859E9837027D108A54F42AB24E38C2
+4A7D8CF3264AE049D4B1AF48BBC564BCC88AF19D37DD81CCC431D0C554DF29A6
+94ABDF8126EE4FE1DFB78559B9BF36FAFEC9791049C865694F9E2FFB7A308FEB
+EF0195FAA6BFE7A081B65C5125623903828372F117EE17E588B2FA26DC9AE37D
+9A6F0043C019624D3D87AFDB4B90C46AEA78919CEF5D7ACEE316F30EA0229742
+55E02E0E2533CAD78CE9BD6E0260A695D776ABA229D89CF9BEA92CE0397821A8
+830A557021B3B90CE0B07A4B34C24337FA3FA4A3728B6E013BA01071CA7FA667
+6FFB4BA3A28B5D5614ACD4E80E00938C2589CC6CF885A260AF7589240BF8987B
+20A19FDAC73FAEEDD93EBCB3D46F735214164AFAF1A7828FE96E2BF7CE1EA46E
+FC1FC4527A0ADF2B81CA51E3D96F3E786511AF00FDDD9764CD3178362CF9DEE5
+F05D100EC21A301F40FEFC3EF05AFEC140A9466AE68FCFD6CAC1A143BAF2B7BF
+D0DF808F0CF87FE2399CD9D2DD424227CA7D4073ED002CD555FBE8057A797B60
+313D18ECDD779FA7289D4E7BF82D95A7535CE3F0F4164AF239AC666653736654
+C13E436B526EC5A1DC97E1D85C4EB563C7061AE1E81F0B38BC45B17C15FDB0DA
+E5F6332721A925D4DD5A97BFF3E3F11D4F4F43BAE4E73A294D314527397F03CE
+AFD12DDF9D07DAD8D6C8EFAFC2F52E20FBF62026810C0C31A1EF71FBD612654D
+C68B7A24112F0ABDD20EFF3DADBE447AF9CE568F873ACE72B63283CB26B89BED
+4B3315F26084453B1EB0877065A76E7B704B27F93DBEB365574A78E92FDB4B82
+D6ED91A1728F571FC9CAB636A6E81D0C1C4F5E3F6F4574B6EED48BB61EFDDC80
+1831E2AB9327B37881F0CA5D5265575F210BF4BCD8653B4193F74E3FF65028F9
+2968B8127C68CA2919DDF529EC882EE99901146CA629A07B4DC59E7868DBE083
+6E546C5769655EF6628FE2EA78AC891D130108192053D5056A7BD06C09592AF9
+6310B3586A2609DB94CB0079550358F5547B9FBB2B77917A327EFE3F972C7263
+54076627B4DD74638C3105FB25DA246484799D5326EE80503F18672B893289CB
+1FFF8D3F662FB33E93025D86803551A8A1DE363D1534BFA3EF968871B19FB189
+DAD841C177E2AC98B6B69A78048221C5EBBBB86511939D3A9963B3BF021185AB
+0B26CA7D0A779DC2F7693C7E48286BD60EE46615E31B93FB0E6992AE20C792A4
+72AD6FFAD6682D0F606807D7AE63A6280B5967FAB889DCDF0F76347CE302FAED
+A59E1B1AB785D9D0ED695A0D05DD3DF0EF0B275AFCF9EC7031E1357E99A3DB85
+B4D137567875F7580E2BEC96B08C97ECB40876000B610E0BFE81E7884C9BBAE6
+6BE9C2C612475396BC10EC7FFBD1118A7971FE1971DFD0CB677ECA65DD837B5E
+C7D36FE9F20A15A941F1E77C11093C902DF5B7639580B9C0E4AAD13518E1901C
+1162FA095F301848770C6C618E371A0AC3463D0D94221EFCC0884B21300194B5
+97E03BCD5C4878CEBF352EDD1D2173B56C9B6A08BF3F33419DF226E1633CC5CA
+A88A57AA85E21657569916E9B4B79E51B5535A57B2D6FA3EED1D0AA32DC0165B
+12F8F5A681040B456D8DF175AD6053A2954F327F4EB4CD453A056FB1701242C2
+59755058640C62632C764E002CE928E6B908BB137C28630A3CDBC7C34CF2B643
+FFAFF20E345A86F31756C78A8EE2B9B1C5DAB2C863B29A44190770FD90BC6AED
+0C25942BBD6A370C21650947B49AC8EB6825BE65DEFAFDDA32007754DFE0273F
+B995B8986E505F95E58A3F8873545DDA6F3FFAADE992F3FF7B2DAB76D663280E
+CF2BA18BC8871A7C361AA3600B192948CB918FEB0F2900AF2BCF169576828325
+449CBF0C7AEDC299FCBB061F491469B9ED1D56771A03F9F202550E17FDB15B51
+4772B2F06E6AABA4027D13E8730999532DB2475630D2F8EB98242E36F5B45A94
+2D8083014B63A806BB9A01906143482C614B5CFBE8C5354A3F2438B2160F6DC0
+81AFCEB201EC67F66DC5808C907A3C6CB664F444D24095D9A11D4978A7B57037
+87C67552FD59F5713D0FE03462F9A1A323BB3EFF0AAD61B1792CB109CA9AE4D4
+D7F7FBD3FB91258DCFFB4634669FA13E03C0AF699165311CBF37D24378022787
+87D1320ECF878F859149B2F994E700A32CB7253297AC58753E4583A08A1F83D5
+CBFF10F2D26D71CDB20E1C69A666E9C4D23BB0E6BF1097FBBB204EB736E61FF0
+C3FDE1986938F8099694B9F998B3C735770FF21F73B1A6B750498BFD21184F11
+5E6AF0F1FBB08EAD436C4AADE1E6B815F5E58988C113B4B2335A340798BFB201
+40586D0BCD6AF5A08CE9AA042910197F47D98CBB4411A6D435A46F46B3964F85
+032D7F8D880732276A8FD24DA772F642F06C9F3EB4C9090AE4A3AAE67D8768A1
+7B2A57E15B7FC626450372F40E3EE28D8D997CCC8CC89C644461D1110740407E
+F6D884A0503E05AF830994AD0CEEA924D935749F6EE9F2DD65A58ECD59229918
+A303C90E19E9C411FAF24AD5E9B786178F8182692CDD508A4755123B4A594AF1
+A8E7287456C1CE2CA485CF4CF9DEE5238AA7328DA204816F98B7EF49EDB30875
+3CF8C48E0465BFFA8F2A1CFB6A8F165B63CC80F54C669D02BFD9A0EA0FDE2B40
+D69F0101AE4D2C10185AB10953019FE7D373BF40C2F6D4E36693F118866D1267
+12BA7987ED4313E8635DA02A4FC1F7815105F8EDFE8004A8801CC1AFA8D123FD
+1768A6C39E838BD489C6BEFFD3BDF650DF48D5F8D99DD5A2E8AD235F2CAE8BC9
+C13AE9B214CF3FBFAC7BDFA54CB6E675273330608BD35600775FFB2A96FF648E
+DF55A78B43CF54CABC0DA8D574CC5C5C62E9D658EC62035EA5028767749E48D5
+658212BD39C7E76ED0C6F3E0A1D138A0DB8BE574987AF1E43070F1F12C560009
+F48993FAC935EB56A5793BA13C28293601D268B4880F9BC33D553FF3B6A7900D
+37900BD3B4B558C84BBAB09B4BC2B14D32E49596DA090E586E28D560903B9744
+7D014EF2A6AC4F711A025DBBC841F1C1C93BA1F8327DFE33C803A0993050D590
+C7AE262261DB7D04B9DD91F89927161A69E14BB2A48D29578410E312A4793101
+B6CD65B298988AB798F45B76E1F58BE24DB207C7E07014E17525B436D41FDB28
+D1072CBEB526E17C72DDA00ECDD06394940DEE8BD02CD3C81BFD12BE0568A459
+0F53010A0655942C932905FEE87183CE357887E2ED286DC1E89F2F401CDDDFA9
+B418F218D4115043892882C09F2E3749D4671E75AB1AD01C78F59FE3F54276D2
+A91512C21C68180CCC0E147E834002D7799FF393842CE88BEA714672E1952C9F
+7CEF2FD0115B0E292079909A7775769341A7888CE6063537ACFF225B4F396972
+41BF46C599D278906F3BCFF81DF941BF5888DE8A53CB0A2D71610CDCDCC1760A
+7844F89FCBB892AEA853CF5D967648995559EFE852C95D2EFDA2CF063500F88D
+2C83B615618831267BD8F5438DC53C6433CE7347E9C55E103B450EBED6229219
+20E979C00B0B9D86345FC3A8EA2B049B7E148A7AA1C859AFE93381DA74CA578F
+8FAAB28175D5B57F6A74F9869B2F530009E953913C6925D0045CB2E817A17742
+3C5B7574E9BF3BA7B769C161C2496EA2D346B4E19E434120FE92A0ED3F4A9ACC
+A8BFE55F04D17DF035D01FC0B06182D8C27B6D32F36551B9AA56D61FB6A34254
+D0DF918C6716D8D05B973C8BAD5AD52C06EF3C6503D4E0F7F791511C79AE74E4
+4B707612149D583C5D96E534CB45F1E7CA5B23642B1BDBC881FD8E4F66CCEE96
+7CC0509B5CFB0B3596682A81E682DAF6AE58F605FD7A1F414F62572298AD8491
+B76D0A23B4AC731FB8E7682F506B5CC02F7029827FFD866EF4DBF56E07E7743A
+D42CE65B38EBDEA193CE5B172E87DC88452C3DE192E363EB9DBEC4EC65F53002
+BE9E94180F73B53CE1E8EE9333DC86DF5FB2561FA1F9B2511962CBEFACA739CC
+38A286651CEFBF451FF6568CFFBA8AA68555181147C1CDBA18C4F5C77BA8548D
+2B1BA37E05EAF7F69879C3ECBD02783028CB1A8649842EB71023F89CEB36CEEF
+A9B04E9ECB0577536B88ECE7C1D81B0D6D5A478F8E92DF83D194759437088D7B
+E93C6AFD0CC6D568E60E2F1265A6613F97A6C4068C8EEBA70F6CC4E88A80F65D
+EA7B498395390A74BA57221B86611D3EE5DC4632F139CA8A15E5B9D2DC97088D
+7CC65197CD93F4803BE4246394F40EDC2CB4904BC273C597F13C8DC680245A3F
+F1AF2D7BCE5D69E9CFC81E5E9F46927C5F55C719AFDB2CB1AF2E4D55B0E3ACA8
+6BBBCF253CCFF8F02B8542F296CED0EB8A06A88549DC959E22C3D6C48F310452
+22B32C44B046A61A4F7F8AED613DCD3C464DB2280D56E517CFD16DC32C83EACC
+D3E936D2F3A883B265444D818393E30EE3AA59E6FA73DDC421F5A0FC8442F89D
+CCE98189ECADC080F1973E14012C2B87F6A8289D7E168092C539BD54D5D3FFCD
+2B5E02399614BD5085D49ECD04E14FDB8686A39D6B3F7FAD25D751CA66148781
+32296AFD919D83DF85BA4FCBD7FFAA1D831C8897E39819D72F271AB142F1C4B5
+D94BB96F64B76C0C8A2D1481910C9571078DC7A4E23C0F133241F06609699988
+7AD4D12DD860E6F00A162DAFE55AD781FD915597899D9BDF17C01C6EB24F8BD7
+65B39AF750F44198BA633D86B96CCEB5ADD5620CDB737199ED96497317D05218
+537325871A9760C80B1EB1585214C2BD09A1C184648ED57AFEB57CBD78021297
+4B79A02C6B95899D035DB8A28FCF5A40C9286D06982FB5C9EE3A2D28110E8DD2
+B41376B316BA24DA5EE34B3C481BEAB54023EDD93627A89E53D09DF79972B9E8
+E0BECC11F961948BFE9F951F0B03264853BD74C9A25B2C9B08BB8C9E0806634F
+CBB6EEDAA33140F2D991AE3F0261EBCF267191FFBD2DAFA4EBE311753713CDC5
+5906337E4C1997ECEB4D4F619F445B64A989A20A4165C8BEA6BA277694B42AED
+9B4F34CFF0F5DF2F31EC5E2D87B6388A842F52A16CE10B6CB71FB082B4051E8D
+CE5A06BC4C44397C641A304B4BE6DC56192343640AFF273E31E3A2AFE994C64E
+2B3DBC93C4F95C1DF62B6C55110BC9BE03CD41039D5837B0200D03819F0994E6
+9FCD7E222F35EDF5FCD6987C5D29897002C4C68587E193DEBB709D31C5867545
+9BB27B478FF4CD1F7C9C2A92E8D2F6E0EC624E1AEB8DB841F3DDF46A21659091
+5E71B129A86E1B45F66C7DA3D94A2F10515E835A61CF3B8AAFAB6345E0E85EC3
+9E02AEF4DD670E7F00299D5BC76BD421C43C735CC9F2D4D52184FABC761FFD56
+AB69302269C1AB5CF55B8D7D9D0E0C1025ECF61F6B5971549164613F63B967D9
+7854DCD2EEADC9AA863A8279CAF90894C457C8F4AA8CF8BE895713E9903D1378
+E73FFC9D6BD5A2E8975D1A7F5878C6EFB58D48CCF43A79AFEF4BAF4C4B8665B1
+0C1520961526ACFFDD1F30034DFF478DE5D34F8E44734489FA22EF4ED8FDA3E9
+A775116FFE85E44A42987E0DD9A5F39421581462637810DD5302D90EA9B5D499
+505F7467AD04DB2D0842CE157A8A0C02A53F1BFFAEBA76C4FA3838C9563E3969
+902D9E89D6D9E52A582966DBF383945F2D5B73C0E1FAF9B456DD6121ECFAA090
+86E9321F82B25B3C6277E50D9EDB0C913021568348B08D9AE6DF31C5FD19946A
+8D74298AD1B10D137144A29CFA32E6AF047F07A8A6D2010487155A18A9A1CB39
+1D0DB8F09F75FA7B3583942A8E572580160788F938D0E8298E1950B71ACBAD4D
+FF720BEDB008884E4F62AC4B6C0C5A09E561D06E11DB23D0CD775FD9A644F758
+74E27BE0CE3B9BE217BC9C376927193531EECAC8D3628D56C67FBE544248C20E
+3BD3E995EF7985439BDEF7F0A6CAF3076AABC09883EE46C1F6192ACA0FEEAD8D
+33E43F1499777FBDB099CEE55E3F8FA21680BF31DBDC0A8B732F331290A4A49F
+BB448E74E90C5D1427DFAEA084615FE1E9F1C12C3B97B16DB7E5DE3BBD48EF61
+0B5699C41F7EC863C30EA843E62C4FC9E6369A6880ABE63980BE99E8A697BC69
+BD017C31C52D6B95D8FF1388CA15B469F5EE89EC27B16695FAD2ABD47065B3A9
+935E3C56FFD0AF2AC56F934A2CEA42E2C9E16B220CDA4569460FC0FEC662E410
+9D5E0A6DCDDC6FE3404CDEA47A880F9F52BC04EAA5E981B771B171F285A081A0
+5003825DF82AC7D2D49E652DB0E7529FECA70D97C8A407B4EE1C6B0F5134DBC1
+2414A301DE678CCB38D9117BE6A04DB7509E930E20A813BBE934222149C27CA2
+304B81A669C81472C62280CFE0764F32AAC39E021F89A2802975D55ACFC7371F
+C77C359938C96540981BAFAC6B1DDAE14851CB30670C150BF3F9F2C883EAC956
+94A708FD98EA300386B3F6009881AAF19FB3FA8718864A28865332482ED2485B
+AAF60ED6B6450AA2C051300D84104F3455CCC0FAD15A5F25E11A2210ECC92B54
+F110E5C73F453AA6B3DFAC42A27B0E681B30FEDEF96868FA82BAC0A5D3CFFAD5
+BC3D7F3F22B9143EA3E7FAB72B33F9F55F53BE63620ADAF29FEA15FC7FF77404
+D2452A4B44FDEC2CE3F2997E6BB7303C7DB669C6AEF09CB987057501F5A4C7A2
+E2BCC8B0EEC7A51A022D73F356FD3F3C3F8808B042E4BFE100E95A0129358F24
+795E6DABE5D19494C236DB623CBC85E4115E1FA79501EEC7DEAFC720D89F75F2
+949EA07D73B05CD6236584F087B10F33EBF428D0D86D4F831E33BB6A53190BF4
+8E1A660D7C929595D1E00EA9D3AEC16C49B8DE748678698E097052B4AE818FDF
+7C5668BF7983A798D48FDC8C6C8CE9F20191CAD1C9E59A329B4534CC8F9F71DD
+B33D4B046CC248982ABB2CBC665A83D5EC4C4CC679FEAB43C172BB16A8EBCCF9
+570FDD86E986CD950A27B9007D401ECC2C3DB3DF55A30BFF2FEB93DFAC9C9FD4
+2AAFB894
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+%%BeginFont: CMMI8
+%!PS-AdobeFont-1.0: CMMI8 003.002
+%%Title: CMMI8
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI8.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI8 known{/CMMI8 findfont dup/UniqueID known{dup
+/UniqueID get 5087383 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMMI8 def
+/FontBBox {-24 -250 1110 750 }readonly def
+/UniqueID 5087383 def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI8.) readonly def
+/FullName (CMMI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
+45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
+7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
+72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
+BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
+974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
+11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBA9B440A6DD72BF8
+97084C906B05FAD969086ED21AF0AA1471613182B26117D7494DD9F9270EF3ED
+8DA4D957225F75D060237B6DAAD5A0AE3E702B3D1C437835B93B8AF1F9E7D966
+E739CF3AD5E256F90286A34069E5BB4122F94F18F3485658D0D25B938522A879
+8215A417CA2CBD20F71C5C5FCDE21EEA7BB27876D93BA667868A419287FE59BC
+F538980597DBBA743DBBDBEBC61E3286DA7977833DC8BFC5E52FF5DF5EFD9A92
+D070EB769E31E760A50FDE012DC0057835E8B9B046FCC83F1A0C40326AFB4E3A
+0CC3BFA35FCC64E32854F32EB7DF10A19F95830136BBB8139DE1663B7FD790CE
+464EA431AC109FCA0E03F3E0D355FAE20AC8774D6B1CE233C27680C77DDA7356
+560A27C75993E8C980CD1E3B0683F7E8A05119B3AD567DAB4851B66E418687B7
+F9B21B3BEF607918D5973421B68E65DFD8B6C8DFDCF1CAFE2637D365148EBCE3
+FA4CC00052A2A522205EA3AE3461CEE02042E1A3F11467CB6C8C849B200CCE3D
+0BC188EC7B934CBBC0AE2BF5DEA228181DBF0F774119F313516E7D97FF532621
+9278F856C166CA6547504F34991D588A0631A5CD06363F3FEE9FA0772C783447
+ECD0A200929CB58EBFB6B72008E4082B5D14AA560C24915B9463A92F38237886
+C35CBB2D4DD6D0CA8C1D4EC46093041C6181C2F6586EE3E7D4E647A107B6DB23
+DAD9AB5A0C2905455FE58075EFF6B48597078BFCCDD84812B98986F34987CE49
+7EFB19814F2A58B0233A59331F6F8EB66401F04EE7B1ECAD9BC90A2BCEBE213D
+DDDB1F75C83609ED6A669A0CED58B2E269E76ECF73616D94F13CF827C9BF354A
+E82202988DCFE856786B8AE569AFF3105B55C72C58D310FFC0E10B2ABAC8DB06
+40D5F72E54770E9DED1AF4616008595B8481E3D9AF4191CC9A5BFD9DDD01C9F1
+FE7165D21E488DB40879E863D470CB31CA06E5B5F1F8C3CCE04B697CEB0F3557
+ECAA358D2EC2B370519CE06138FA702314BA01F1F33881825EAE1230098BB3C9
+59666983275CA4E8D9DB34979F86535577E79393A72F84B0F768FE8C92692907
+15E9FE9894E98A0EBEA490CBC8C7E5A9F3E43B24C2C5A4BCD71DAAD3CC0B8B82
+AC13933543E295C163F61C9FD18371CB514493F90BF7FB460C029B8DD2E2BF05
+FD66B451DF277864DE1EE42100BF29E01A50258C2758F3EDE211BB3457B8243C
+20BE72983FD6FA2581C5A953D94381E32E80D6D6095F2E93A5455C101BA71E8C
+E560D4694E4C167EFA25FB1E9D214AEA745CE34CAA5468FAEF8F6BDB6C6BE8F4
+3D58836C26A2392E4C4DECE284A90DDB3858A16D6135FED655A600929DE71605
+6CA32F6851A2A6F71A9DF3D5D657593BB729CBCA2F4B059365B7263DC08AB211
+9C547096E6427F6AA53CB2EB87DF0AFE2ABCDBD15D7EF228D3396413B83C6B4A
+79E41F9BA55A2688F62A10472675E5658F151F9FD6634EC94EC0682C17448024
+CC1633077C07A93E4DA8749D974FB8F4332B5DECF97D749C10DB60D4C90ACBFA
+E65AE928C88BAE19234690EEABDB30BEDCEF2660D7464D5071058C30C572A2BC
+7DEE5384BD7614A4BEC4C84E18CF7EC81C810256E8CE6520466C033E2A36D3D3
+5D6074B3857415011D8D9D49A474D994571CDBB89AF92BEA879BEBAF67663F5C
+17ACAE809C2231EDD0A76641BA52FA7B19A2798D54A4A9B62C42F9905851229F
+2CEE0191C8AA5AC12BB0CE9E5E3E862683AB57DBB4AAD6AC0FA8BA4F408D41E0
+755F72B82B7C18EC6B13995BF7AFD66AF4BA0EA7523DA8B75EE751744EBA9CA4
+4E8BC1FB37734503A5B24FB9F2C2D07A47CFC477F02413D55BD7DC180B0344E8
+50248801FA6BE26C97F397797F5F9DF762967E7CD92CCB8B2E587C92177619A4
+BF8046CBC72C6E69DC78B8CB6B7381A290080EF59F5B9F29C1167B261C932E9D
+010D2D14BB425D157F22BC0305770AECC5BC80000F8CCFB9930255A68F299ED9
+D3B5B83A2CC00E3305EB281E1A7054734661B175C6CA0AF168790985F173DF03
+A8693B677BAFE23C3CF833FF6463B136FC370E4F0C29E322DBEF637F62C33CD9
+B0A8338FD67EC628E3BF2FCBF7CF0347D5CBA1DBE6DE878DD670176B85F69EF2
+3C5CCA1BD2B8A385F113EF1CE522F5A6AE053B9C1E39408C9459DE3E7FE2C4ED
+77F026B0081BB80D40185458139C16333EA27F43EF1204BFBF80BC5301B2A3AD
+B10F7EFBB4F5B7E04DA1167F68BB6D4049440B0F57385FF0A95E72760C6A12F8
+1335BB31CB74081FBAA319180DC00113CF50CC5A41D2E751E055DA1429CD75BB
+0060C21CED634FDA106C49A12B356129D010E29F2919301AA7F80222AF3905ED
+672FF85C9897A70241E8DDB9A53034B6BB44E140D9E739848E7A782F24B98AC8
+00DA09EBE4532787E5CF3ED815705F659D8E52DC2C2D4949374A3BF192BEEB99
+1D9A90A4F3250BF8A1FD40D91F5B34AF2CC561FD02FED712500B24330D87DA9E
+4AA46B6E34BCB40B1F73A1DDE07E002B9478E9651D2BF85E67585B6ED812BE03
+A594874A235B1C1840C4BF4BA6D863583D8C12DB49EF7F8CC24DCBB6B21FBCA9
+378F3E2DC406291AB324571F76E0805DF8826090F0E8B50599CA58D124653D16
+16C782B01C91A6F3DA6346482E3163D28D95EA49866360147296838A3FD0CC53
+920F91D895F839CB61FFD2FBA296CA4C6304EEE579782AE5FD33D0FA652BA7E2
+CEC7C01DD0D3E0D56E6177EE5F609A396F7FC8EADABB465DBA7F384E215C4DCB
+E64F807A50A461545107F9C3F7D7CC7D33E6EBD6D9228B1DCBFEF160703E6129
+0DCED8D45DD54E2A36E698A616E7906A50901E453BDB2A363EB77144E9EA6F2B
+6BD927495EB0EBA5755165707CCFBF8759CE5856881117C7F3EF6D494EDDA7EF
+E499BCA56C86467AC573DA9C2724FCC74BEB331E736FB093DCB67DAD42296655
+415D110F2729BD1D55E5C9CCE2E724116F45FB2E66AE0F790258851A5C808762
+68B8A110BD326F8D3EC45004E7CC08DA42F6CB80A6B6E7C286F139534A275BCD
+2F812993DD9C9A1AEB5E7E4BDB4805DFF3A7030263AB060C9B74F0C25C5B9005
+965284884450CC2815DF28D5F9B0496DC7A3AA85E1E42741E1538797175C28D9
+FD904699C771FB066397FFDEE8E8DD1ABBDF67E6BFEF95BB700A7C1BA91354C5
+42EC3864F6E19B379E79A1CC3C786C0DA146C6B0B8E507ED58DBB1F12F613A98
+0E1F8967991427A22ED323901C4B83336CD343212131E8B59C2F5D232702ACC5
+7891BFD4EBA5D0FA35AEF9F3520CA82D121BF6885BBDAF15248A9E4649ADB94D
+0735CC4D14E1D7275427D00C8E709579612F7F74DB6FC218C10C278CC63E2AE2
+37EC996B10C0229D687F0DB5E38A8C4DAFB3DD8A9E7ED37186FEFC97790A1EA6
+636A88FA9FB4D282234BAAD301A1F3AD33F252C5EEC49410562FC52809CEC466
+A0F6D148E9AF19D6DA2337C8283FBFF6005C37AAEB0B7F7217A8DC6F949B9984
+72DEF163E4D5ECE4288404448C96A7FF0AC76F732D50AD63A1D286C9180E80E7
+C218B1F48E3034FCABA6BF262CEECC284AC29E9F3CA1CFC1639A681ED66C1FBA
+666F073D45C84A286E05FF809D4764FE819B6A330E73695CCF2F448B4D4EB4B3
+F63E94EC289807A2F9A1159CF328C002B467B19D6E9454CCE36FC19E0A214190
+B251818DD456EF658B0398E275514B72D9C1DA5F806EABCF1DD56BC025D69FC8
+A0C2FAAC1892B64D2AF79EA2F57F103CA623E440307600D50E783FAA998EBD40
+51D23A0CEFF8D8649B48B982DC38D613F882DCCAE5F51233A641B3CFD783F830
+D984F116DEA3ED8F0D3369AE629A006BAD4523F8E3C7C6B39A6C972508B67AE9
+32613F28CCFFC4BBC86CF31A0C25C786554F7A1F3DE97F5CFD1A941F775067A4
+784385E2D02EE1FF886701B1E87D966D3F500E15591A5012E645837FE2DBE3E6
+A3D375C6CA0ADBF96B33EC3FCFFFD888D7344B31D40427B8A8BED0FEC6FBE038
+1FB5F0714C4B5A0E607E215B5B7F76ACF0FEAA4C9790EB7E13C0E3933B7C63FE
+5B934EA34F4B741C3667BF1735C685CECA63507E6FB9EB06AA010311F12AC1AB
+4CE3FE8D1EA1EDB3C700BEBA516FC71D740B1CA1A60D4578003973CC3EE21DB1
+58FB1CF7E2EAEB2A4A6C742EBC3575EE6378531C6EFA6E6986E68B8E25CEEA67
+A59623FC1ED2ADDA9D72DBA627D179E47DC7F5551E07EA4D54ADB6CC8109D340
+7279F288E552EFD79C17DA3431E53EED66D16F24BF86468C2FE7EFF421560500
+12FB048D6CE2F370BE4E560F8B4AA12362ACFEBC839351C1D5100C625B14CFDC
+747B66082D4AD5474A63EA0054E9C3E6295AF6B133348487B0471395857F4B73
+4BF8337DCE2FE2E1A4EAD7E7BEDC822BDDCE42B79B308C11897C98E3ADE253CD
+09CEEEC0CB1DB66AB072E36E1E04911F40B535B0FD85982C21B8A587D65C38D2
+DBC5A07A0A26DFFF7460F10781069490AC1B611CF7312A14B4AA6005A4582C5D
+336BCC30EB47749193BE8D457A43F54204B070DF5AC2057B6437E23705C7FE8F
+7BB150560F7044BE3E48EFDDA539FEEFB0D2A7856CD4E405FCE0F5EB190D91AE
+578E2EDEB9ECA218573BB1A8EF116043A27DD17A4047BCCC7C5F3C563A910778
+45ABCA32C7347E6180ACC86F9D665FF025DD8AF514FC3724B5C3510F3C37E0AC
+5101D1667C6ED4E8F37F06CC2BDF66CB5A9FB7C52CAD26344FD1557571336A1E
+1E340EBA149B4EB99016D1A411FB874914AAB2A415CE3F5FDFBBF5AFD7959B9F
+CB127BDC68D2A2F3F07FF3D4FF32046C0371CD2E68A6471E46B08413FC3C7A80
+A107EEE57979DB387B2206D2810DB310B7232B2DAA385256C8A58964B512003F
+A0C24ED21809E2576229627278118107B9C32345C1EE8C0CFB452CA362379369
+31320DEB5371037AFAD093B61E8AC7A6DCF7D49C7F8EC32DC0ECEAFD7E892810
+039570D2956289B15E078C2545911BF535F72F7DAC619BBDEEFA855BBAA81704
+18F7D351B0936357085A32157AD8E27438A58B2397D69264E748B0B8D01B33F4
+D04DC59326A7DED39E247A1C1A1AE49382BDBDE9478A1CB48F88BDF14A268B40
+A40B9FBFC4C87FD3DF1EB2464C3C14E36CA41E09EE0A9B75FEB0769F9ECEB1BA
+EBF73B818427FACDBC33BB95B9654F31C59A766E931C698A8608F15290FCDBD3
+5C535D9036A19CB7B55BF54E96F9B2206DC71624E2E55FE632FDFDEC8757AEA3
+1D83D190ABED5E7A7AAE2F41FCEBC7C18626BF58F9E9F02FBAE0C8AA85E9DB21
+A3D8907522DCBAE4923C6A2A09FD2F08FE32215C544AB577B337D929E625E704
+E041C2381AFCFEA37F3133B6CA20093EFD457C772E428325E56C9CBCC447EF9A
+05A8C3F28017DD4FFACC51B38E4896C5044266EAB4EB7C13FE855E790DCF8A17
+B61B1D30DD866BC57397EF6297C4891451FD6A5C6AD6D7446F58F56A68650908
+224D9F4C31C6906FD29BB51DC947465B808438E6260325752808963C808A4AAD
+60422ADD62CAF315F6AE92FACEC55D5B682089AC0BC051CE1E2C06A3874736CF
+0DB5F7C8F178479E4F11665402781D80397C75456F5CDF0A4F382A19EC6AD64F
+71A9275264800E178F212269154DD8352167C57EBC0A38BE794AAD1601C8E541
+7E1AB8E969A76E1EB4092644958FEA2AD29635E70C4DFE2EB0D9B3E1644FAAD9
+B27AD5466EFAC724718962B62E7B8C32F412B69DFFEB792587D571FB5C591D95
+4CD441662CD1B07595E245FA537FA9EB5A20A97E5C9251EED22C9961B48B25ED
+85BB7524F635F9CBA3714C6D60A6BF920C45A64F4C366C1F9D22F53084997C9A
+EFE2D79FBE3347111F5093E271DB7E3770B35D253DAF93653F6A23FA145AD775
+AF11E188EA0428137D9A14542E3EDA6F7B2E5AA86C9F3D3649A85ED2F020C696
+01A339FE6D7E42BC548C8F92A4E3809C67A986C99418772403D16D0E8662595A
+1F37563671D6DA0F36CAC99DAA8FEA215DF7D45E61314915A30A22FCA86A50D5
+2FF2EF08E240F9FAC030D92BDFBE40F1972DF413E6B452024CD11792BFDAA2D7
+C82716528AD4B3D637BB43E748336DCC86A952BE96F1EA423E31340FCACDC1EB
+02EE932F58734AF3A5B2279361B63F1D824EE3BA9F4D2EC7B33A300A1CE8CA43
+24616444176DB8099D85AC68329B1F85E4B5B16F3B396FE2AE7774F3065D0203
+AA140DC128D6F935C44733EF585F89E8639A2096A225A2E5E49D447D8AF9FD44
+CF6C1BAD5C5E5262AECC5543EC8199B00B72BE32A0F110F64A1D0D5CCEF38FD1
+155D6198E9A343702F8ECF5052333272CAC2FE016681E12745CBE14E1065EFD5
+407DA3686080989F6F6D650A9F1EB3A813B070C30C0D3B4A1E9C206E2E4DFD51
+D8DCBE9AECF956640A2E79F1B4FD0EB8E0449AE1B8FFEBC43275743B4D7F6605
+0673B61EB3189E74F51F3780A91E6A5C6464C8CF7D563D9958D46F39B1A12087
+6BBD4898BA9ABA468AE1F24115891FD3CBC2195F75958E26DF8BF1B93F7B521A
+C12112237AB23A8E5A7B7D0DC4C53692B35F3CD813EB463C0BD3A6486B0476C6
+3B36DA71FE512E5745D097FD4AF5D056E434DEE2AF926B2EE79F7FC4FEFD4130
+BB4B4BE01E5C720325A4884507CB51CBA4FFB615B78A4182444F0ECBE4161A58
+E86FE1DA2E39C2BECBCF1F1D7B9B776A26078FC252128FA8108CB83F673CFD37
+CCDA493234FB93E1550EF8D2DC049ED95B00A8A57834B024B277D3DF062E748C
+B61F183F2D72AD075474F8165528CE75E4F40B38B0FAAE45751C1907F8D31619
+E88EAB02EEED415F3EE3BC5BECC6AF565D34E0BA2958FF337A2B06012DD1858E
+C53DE52C108BD5AAB76C882198C72CDCC958D68EA8FD26F76F04EC1A08B2AC3F
+A6D0E8724D2656555DBC0C8C42A3E22ACA7E1BC8E9F897D9AB692E0FB9EC32EC
+59E31CCA4516A3C3BFD5411BAC3DEDCE374D48681CE7D67DEAB93F5B5C5290AC
+FEB29C5EA2C98095692873D36C7DA24847B66F31E4CA4C7AE5C79D7CE4F0532B
+78620582E3731A2A6533A03E7155B33E7CD142FE79F72721862EDB24959B9783
+F834CB616FFCB2A23497BA6D99AE34DC459A2F7B3E4DA2B54BED118ADCD92178
+66C40F4E60F6E1327D5DBCA645A2A7C770807E6D7E47E1265C753F8793BD2D1E
+BDCD749CC24D4AF9315A93F01180A0F9A7F420DA1B87664DA5FD967131273271
+9DCC45C3D57EB9B8AF14771E8E751D88B98D2FFDC72F5011D402EC34FD010ACF
+D3B0660304725191D64FEE106253FCB3470F1A16EB7B45C1489D3534BF94F740
+C2781DAFA5E8A9E7B25A85BD7935DF3ADDE08C960E283D8FC3976FDB4085DBB4
+B6B35FB239C28C785B18BE4FC98F3A5F410F562DB5FCA04E8074E4E790F4265E
+F88117B3D0833AFAE6E8B8A71D7731BA6F14FD6F217EDA3F8CC687A494FC3914
+B84FDC37C8C335AB1E7E0BEC7FB6B7A595C50CF8F0080C8D461BCB8B579A5155
+F963B6587873FA31C3A6572740C63EFBE58A2EBB723B7517D2A243F6CB08A038
+54F4DF0F6692022B2EE8C6F6B73735ED3166BAC58D9216A06EA6FC7B63B20031
+D0F0F99D83D9030B413C2360DD2C553E34BD67851B743C3FDA676AD63C5BD759
+9131358C6BCDF05FCC048F4EBB9005899ACDD8E9EC9BB8C5A08E83485047D263
+0ED69B4D1869A38068FDA03524022A1D32FA2AE0BF7F09D3A6C93191E20C47C7
+832A25DFE46206D78D05B29615AF8A32B09006939A989F7EDEF37BB9B883334F
+528A5AFA99164500A4FF96495E5E23083A673A976328E1F0D052AA49B80FE035
+9DDB6B5C01E4EDF10ADA000A7D6D9CAAC7970690C002203AD8FEB9231F5A2D0D
+2AB4D8007503F64797942F9227920CAAD43D1B48EC23887DF500A243A7967826
+FD4095095317784AB2F2B4BC81933CFCDDCC723A92C5D81B3B8D5E7BD3C814E1
+7E6430C149498B186503DCA07F57B5F1164FAB22AA70670EAA5A4BF65B0FA7D0
+ED1C46C17E7F99CFAC861C96C8B4512A7FDEB9F5B7007D4DF17CA85FF1A474CA
+7FE270F111A14865B5E118D34026FEE6A97289E11909EEB6A58D6C30785B0391
+78CDF986A2A3EBCF0BB8A6B7C7514AC6FD591EACD32469ED7F86DA5C2C34E982
+2BF4E32579246B526F518231408E2E5782E45E7DF67CAF2796640ED4EE5B2469
+8F6B41DC1B6B03ABB8F90AEF5624D0F77E55ADD076AC5B82EA647F5F2F937159
+654729F3331EC18BAB1D76E4A525FC72A191C8750176BA20130C89B5121ED346
+6E855AA32EA90468895524AA116CDD8D936EBFBA0282682052F6A406315441C2
+7F73AB704A34A941BE3AFEAC595C403C0636ED1188AB4EB0E6AEEBE843519583
+020937AB5E9442E6602ADA80B144DFA5B73D392B7DF3984A0E2A68646E958301
+DA6D965D1C2463A12C03DB01C9648B776F23218BB1E74D588DA6BBFEB662879F
+2FE601869D3D4FF6C69F1B02ACA0198C25A6459F20143283CE1F9570298DDBD9
+94D7DA23DBE44D7AF6749D26CD1603CCA9F39BC30FB4A403AA51D0C1C5C00DFD
+84108ED4A31242EAAD9320CAE80630EDA644F84B5EE3ED26EBAEEBF5A0C68896
+1A263A7E7CCD8DEBBC7EB93BB14DF514DBE9DCA9D6BCEAFDCF71FBA141CE8AAF
+17230F6B95845DE93266E509D6A984700C7766DE7A307BF33C309D3ACD60B0F6
+EBFC52E833905868EF96EB9EC4F25E1E376BDBB37B9C3E5326E408FE41DFA3E5
+877B841126D5E710E3887767E8889BD0965AD3A274D5C6EA2AEF87A5C292F029
+C5A5713A7B32AE4FC4D599359465DC57DFAAA1A5666B0DA8C414485252EAC1CE
+A8F77AF570F8B4553B75CD6633C4BA49D2C2A15D4A8FBB8914E4EB5330BD9F4F
+CB9C46C13F6C3A8BDB2A4CB81B9B88C65664D694670C09560BB3CA20EAAF6713
+702720B3509C0BCF66220B3B26F28AD2AF9FC945C42AF9CD130DE81EB21422BF
+6CC3246B51FFC3B2349D760714
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont 
+TeXDict begin 40258431 52099146 1000 8000 8000 (paper.dvi)
+ at start /Fa 133[344 393 393 591 393 443 246 344 344 1[443
+443 443 639 246 393 246 246 443 443 246 393 443 393 443
+443 10[541 1[492 443 2[541 639 591 738 492 1[393 295
+639 639 541 541 639 591 541 541 7[443 1[443 2[443 443
+443 443 443 246 221 295 221 4[295 39[{TeXBase1Encoding ReEncodeFont}55
+885.568 /Times-Italic rf /Fb 252[407 3[{}1 553.48 /CMSY5
+rf /Fc 207[243 44[424 3[{}2 664.176 /CMSY6 rf /Fd 171[666
+84[{}1 996.264 /EUFM10 rf /Fe 244[484 484 6[427 427 469
+469{}6 996.264 /CMEX9 rf /Ff 136[523 1[523 523 523 523
+3[523 1[523 4[523 1[523 523 523 1[523 97[{}12 996.264
+/CMTT9 rf /Fg 145[512 4[398 398 512 512 6[683 3[683 27[796
+7[0 0 3[683 8[1024 7[1024 30[796 2[{}14 996.264 /CMSY9
+rf /Fh 133[455 540 2[540 569 398 404 401 1[569 512 569
+853 284 1[313 284 569 1[313 455 569 455 569 512 3[284
+1[284 7[569 10[768 2[697 7[796 2[284 16[398 398 6[284
+20[569 12[{}32 996.264 /CMR9 rf /Fi 198[377 377 377 377
+377 377 377 377 377 377 48[{}10 553.48 /CMR5 rf /Fj 136[640
+443 523 4[456 6[313 20[523 1[667 5[607 76[{}8 774.872
+/CMMI7 rf /Fk 134[466 466 1[466 466 466 466 466 1[466
+466 466 466 3[466 466 466 466 466 466 466 1[466 1[466
+21[466 6[466 7[466 8[466 466 1[466 466 466 2[466 466
+4[466 35[{TeXBase1Encoding ReEncodeFont}31 774.872 /BeraSansMono-Oblique
+rf /Fl 198[277 277 277 277 277 277 277 277 277 277 48[{
+TeXBase1Encoding ReEncodeFont}10 553.48 /Times-Roman
+rf /Fm 240[470 8[732 3[732 2[{}3 885.568 /CMSY8 rf /Fn
+138[449 320 324 320 1[449 406 449 1[234 2[234 2[255 363
+449 43[406 406 406 406 406 1[406 406 406 35[467 12[{}21
+664.176 /CMR6 rf /Fo 136[734 497 589 1[477 2[514 496
+2[306 2[350 18[597 1[597 626 775 5[697 3[847 1[654 753
+6[796 512 796 284 284 15[1024 42[{}22 996.264 /CMMI9
+rf /Fp 134[466 466 466 466 466 466 466 466 1[466 466
+466 466 466 1[466 466 466 466 466 466 466 466 466 466
+1[466 21[466 2[466 3[466 3[466 466 2[466 8[466 466 1[466
+466 466 466 1[466 466 40[{TeXBase1Encoding ReEncodeFont}38
+774.872 /BeraSansMono-Roman rf /Fq 136[466 1[466 466
+466 466 1[466 1[466 1[466 2[466 466 1[466 466 466 466
+1[466 97[{TeXBase1Encoding ReEncodeFont}15 774.872 /BeraSansMono-Bold
+rf /Fr 134[533 533 533 533 533 533 533 533 1[533 533
+533 533 533 533 533 533 533 533 533 533 533 533 533 533
+1[533 21[533 2[533 3[533 7[533 533 1[533 4[533 1[533
+533 533 533 45[{TeXBase1Encoding ReEncodeFont}36 885.568
+/BeraSansMono-Roman rf /Fs 133[442 498 498 719 1[554
+332 388 442 1[554 498 554 830 277 554 332 277 554 498
+332 442 554 442 554 498 1[498 10[665 1[719 1[609 775
+4[498 388 2[609 665 1[719 1[719 8[498 498 498 498 498
+498 498 498 2[249 332 41[554 3[{TeXBase1Encoding ReEncodeFont}46
+996.264 /Times-Bold rf /Ft 242[882 13[{}1 774.872 /CMSY7
+rf /Fu 175[431 2[689 7[473 19[387 4[194 4[258 39[{
+.167 SlantFont TeXBase1Encoding ReEncodeFont}6 774.872
+/Times-Roman rf /Fv 105[387 28[387 387 559 387 387 215
+301 258 387 387 387 387 603 215 387 1[215 387 387 258
+344 387 344 387 344 11[559 473 431 2[431 2[689 2[301
+6[517 1[559 7[387 387 387 387 387 387 387 387 387 387
+215 194 258 194 7[387 33[431 2[{TeXBase1Encoding ReEncodeFont}49
+774.872 /Times-Roman rf /Fw 7[443 96[886 443 1[393 393
+24[393 443 443 639 443 443 246 344 295 1[443 443 443
+689 246 443 246 246 443 443 295 393 443 393 443 393 1[443
+1[295 1[295 541 639 1[836 639 639 541 492 591 639 492
+639 639 787 541 639 344 295 639 639 492 541 639 591 591
+639 5[246 246 443 443 443 443 443 443 443 443 443 443
+246 221 295 221 2[295 295 295 1[738 29[246 3[492 492
+2[{TeXBase1Encoding ReEncodeFont}81 885.568 /Times-Roman
+rf /Fx 134[442 442 665 442 498 277 388 388 1[498 498
+498 719 277 442 277 277 498 498 277 442 498 442 498 498
+10[609 1[554 498 609 1[609 719 2[554 1[442 332 4[719
+9[332 11[249 332 249 44[{TeXBase1Encoding ReEncodeFont}38
+996.264 /Times-Italic rf /Fy 134[442 1[665 1[554 277
+388 388 1[498 498 554 775 277 1[277 277 1[498 1[442 498
+442 498 498 12[609 554 7[665 3[719 2[719 665 67[{
+TeXBase1Encoding ReEncodeFont}25 996.264 /Times-BoldItalic
+rf /Fz 198[332 332 332 332 332 332 332 332 332 332 48[{
+TeXBase1Encoding ReEncodeFont}10 664.176 /Times-Roman
+rf /FA 136[879 609 677 405 474 541 1[677 609 677 1014
+338 677 405 338 677 609 405 541 677 541 677 609 9[1218
+2[812 1[879 2[947 2[812 1[609 474 2[744 812 879 879 812
+879 8[609 609 609 609 609 609 609 609 2[304 46[{
+TeXBase1Encoding ReEncodeFont}44 1217.66 /Times-Bold
+rf /FB 133[445 1[472 2[529 370 392 350 1[529 512 529
+813 244 1[273 244 529 512 313 455 529 455 529 492 32[682
+17[284 341 16[549 28[{T1Encoding ReEncodeFont}25 996.264
+/SFSS0900 rf /FC 3[498 5[498 17[442 76[996 498 1[442
+442 24[442 498 498 719 498 498 277 388 332 498 498 498
+498 775 277 498 277 277 498 498 332 442 498 442 498 442
+1[498 1[332 1[332 609 2[940 719 719 609 554 665 1[554
+719 719 886 609 719 388 332 719 719 554 609 719 665 665
+719 5[277 277 498 498 498 498 498 498 498 498 498 498
+277 249 332 249 2[332 332 332 1[830 1[498 406 30[554
+554 2[{TeXBase1Encoding ReEncodeFont}83 996.264 /Times-Roman
+rf /FD 156[371 364 448 14[612 5[562 5[515 70[{}6 664.176
+/CMMI6 rf /FE 156[408 403 500 97[{}3 885.568 /CMMI8 rf
+/FF 133[541 2[879 1[609 338 474 405 2[609 609 947 338
+609 338 338 609 609 1[541 609 541 1[541 13[677 812 1[677
+2[1082 744 5[677 2[812 812 879 57[338 7[{TeXBase1Encoding ReEncodeFont}
+29 1217.66 /Times-Roman rf /FG 134[996 2[996 1108 664
+1[885 2[996 1108 1660 554 2[554 1[996 1[885 1[885 1108
+996 12[1329 1[1439 1[1217 5[996 775 3[1329 3[1439 65[{
+TeXBase1Encoding ReEncodeFont}22 1992.53 /Times-Bold
+rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 8000dpi
+TeXDict begin
+%%BeginPaperSize: Letter
+/setpagedevice where
+{ pop << /PageSize [612 792] >> setpagedevice }
+{ /letter where { pop letter } if }
+ifelse
+%%EndPaperSize
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop Black Black Black Black Black 193
+2148 a FG(Allocation)696 b(Remo)-20 b(v)g(al)698 b(by)f(P)-20
+b(artial)698 b(Ev)-20 b(aluation)697 b(in)g(a)h(T)-147
+b(racing)696 b(JIT)4611 6133 y FF(Carl)306 b(Friedrich)f(Bolz)14081
+5693 y FE(a)16712 6133 y FF(Antonio)g(Cuni)23376 5693
+y FE(a)26007 6133 y FF(Maciej)f(Fija\007k)-12 b(o)-30
+b(wski)35400 5693 y FE(b)37934 6133 y FF(Michael)305
+b(Leuschel)46626 5693 y FE(a)17280 7572 y FF(Samuele)f(Pedroni)25566
+7132 y FE(c)28104 7572 y FF(Armin)i(Rigo)33956 7132 y
+FE(a)12639 8809 y FD(a)13143 9232 y FC(Heinrich-Heine-Uni)-25
+b(v)-15 b(ersit\344t)251 b(D\374sseldorf,)d(STUPS)h(Group,)h(German)-15
+b(y)17766 10020 y FD(b)18185 10443 y FC(merlinux)249
+b(GmbH,)h(Hildesheim,)g(German)-15 b(y)19728 11127 y
+FD(c)20155 11550 y FC(Open)250 b(End,)f(G\366tebor)-18
+b(g,)250 b(Sweden)5170 12878 y FB(cfb)28 b(olz at gmx.de)2113
+b(anto.cuni at gmail.com)g(\034jal at merlinux.eu)g
+(leuschel at cs.uni-duesseldo)-28 b(rf.de)15552 13985 y(samuele.p)28
+b(edroni at gmail.com)2114 b(a)-28 b(rigo at tunes.o)g(rg)p
+Black -2000 20378 a FA(Abstract)-2000 21928 y FC(The)248
+b(performance)h(of)f(man)-15 b(y)249 b(dynamic)g(language)h
+(implementations)f(suf-)-2000 23035 y(fers)203 b(from)g(high)h
+(allocation)h(rates)e(and)h(runtime)g(type)g(checks.)h(This)e(mak)-10
+b(es)-2000 24142 y(dynamic)243 b(languages)f(less)f(applicable)j(to)d
+(purely)i(algorithmic)f(problems,)-2000 25249 y(despite)273
+b(their)f(gro)-25 b(wing)273 b(popularity)-65 b(.)273
+b(In)f(this)g(paper)h(we)g(present)f(a)h(simple)-2000
+26356 y(compiler)232 b(optimization)h(based)f(on)g(online)h(partial)f
+(e)-25 b(v)g(aluation)233 b(to)f(remo)-15 b(v)g(e)-2000
+27463 y(object)259 b(allocations)h(and)f(runtime)f(type)h(checks)h(in)e
+(the)h(conte)-15 b(xt)260 b(of)e(a)h(trac-)-2000 28570
+y(ing)268 b(JIT)-74 b(.)267 b(W)-80 b(e)269 b(e)-25 b(v)g(aluate)269
+b(the)f(optimization)h(using)f(a)g(Python)g(VM)g(and)g(\002nd)-2000
+29714 y(that)249 b(it)g(gi)-25 b(v)-15 b(es)250 b(good)f(results)g(for)
+f(all)i(our)f(\(real-life\))f(benchmarks.)21561 29291
+y Fz(1)-2000 31445 y Fy(Categories)390 b(and)g(Subject)h(Descriptors)
+996 b FC(D.3.4)391 b([)p Fx(Pr)-45 b(o)-10 b(gr)-15 b(amming)390
+b(Lan-)-2000 32552 y(gua)-10 b(g)g(es)p FC(]:)268 b(Processors\227code)
+g(generation,)h(interpreters,)f(run-time)g(en)-40 b(vi-)-2000
+33659 y(ronments)-2000 35389 y Fy(General)250 b(T)-92
+b(erms)995 b FC(Languages,)250 b(Performance,)g(Experimentation)-2000
+37120 y Fy(K)-25 b(eyw)-15 b(ords)995 b FC(T)-35 b(racing)250
+b(JIT)-74 b(,)248 b(P)-15 b(artial)250 b(Ev)-25 b(aluation,)250
+b(Optimization)-2000 39626 y FA(1.)1218 b(Intr)-22 b(oduction)-2000
+41175 y FC(The)337 b(objecti)-25 b(v)-15 b(e)338 b(of)e(a)h
+(just-in-time)g(\(JIT\))e(compiler)i(for)f(a)h(dynamic)h(lan-)-2000
+42282 y(guage)238 b(is)f(to)h(impro)-15 b(v)g(e)238 b(the)g(speed)f(of)
+h(the)f(language)i(o)-15 b(v)g(er)238 b(an)g(implementa-)-2000
+43389 y(tion)261 b(of)g(the)g(language)i(that)e(uses)f(interpretation.)
+i(The)f(\002rst)f(goal)i(of)f(a)g(JIT)-2000 44496 y(is)229
+b(therefore)g(to)g(remo)-15 b(v)g(e)230 b(the)g(interpretation)g(o)-15
+b(v)g(erhead,)231 b(i.e.)e(the)h(o)-15 b(v)g(erhead)-2000
+45603 y(of)231 b(bytecode)h(\(or)e(AST\))g(dispatch)h(and)h(the)f(o)-15
+b(v)g(erhead)232 b(of)e(the)h(interpreter')-55 b(s)-2000
+46710 y(data)364 b(structures,)f(such)h(as)f(operand)i(stack)f(etc.)g
+(The)g(second)g(important)-2000 47817 y(problem)241 b(that)f(an)-15
+b(y)241 b(JIT)e(for)h(a)h(dynamic)g(language)g(needs)g(to)f(solv)-15
+b(e)241 b(is)e(ho)-25 b(w)-2000 48924 y(to)228 b(deal)g(with)g(the)f(o)
+-15 b(v)g(erhead)229 b(of)f(boxing)g(primiti)-25 b(v)-15
+b(e)228 b(types)f(and)h(of)g(type)g(dis-)-2000 50031
+y(patching.)221 b(Those)e(are)h(problems)f(that)h(are)f(usually)h(not)g
+(present)f(or)g(at)h(least)-2000 51138 y(less)248 b(se)-25
+b(v)-15 b(ere)250 b(in)f(statically)h(typed)f(languages.)-672
+52245 y(Boxing)386 b(of)g(primiti)-25 b(v)-15 b(e)387
+b(types)f(is)f(necessary)i(because)g(dynamic)g(lan-)-2000
+53352 y(guages)310 b(need)h(to)f(be)g(able)h(to)f(handle)h(all)f
+(objects,)g(e)-25 b(v)-15 b(en)311 b(inte)-15 b(gers,)310
+b(\003oats,)-2000 54459 y(booleans)220 b(etc.)g(in)g(the)f(same)h(w)-10
+b(ay)220 b(as)f(user)-20 b(-de\002ned)220 b(instances.)g(Thus)f(those)
+-2000 55566 y(primiti)-25 b(v)-15 b(e)265 b(types)g(are)g(usually)g
+Fx(boxed)p FC(,)g(i.e.,)g(a)g(small)g(heap-structure)g(is)f(al-)-2000
+56673 y(located)356 b(for)f(them)g(that)h(contains)f(the)h(actual)g(v)
+-25 b(alue.)356 b(Boxing)f(primiti)-25 b(v)-15 b(e)-2000
+57780 y(types)261 b(can)h(be)g(v)-15 b(ery)262 b(costly)-65
+b(,)261 b(because)h(a)g(lot)f(of)g(common)h(operations,)g(par)-20
+b(-)-2000 58887 y(ticularly)335 b(all)g(arithmetic)h(operations,)f(ha)
+-20 b(v)-15 b(e)336 b(to)f(produce)g(ne)-25 b(w)336 b(box)-15
+b(es,)335 b(in)p Black -2000 60005 13284 37 v -2000 60688
+a Fz(1)-1502 61000 y Fw(This)305 b(research)h(is)f(partially)h
+(supported)e(by)g(the)h(BMBF)g(funded)f(project)g(PyJIT)-2000
+61997 y(\(nr)-49 b(.)222 b(01QE0913B;)e(Eureka)h(Eurostars\).)p
+Black Black -2000 66693 a Fv(Permission)257 b(to)e(mak)-8
+b(e)255 b(digital)i(or)e(hard)h(copies)g(of)f(all)g(or)g(part)h(of)f
+(this)h(w)-8 b(ork)256 b(for)f(personal)i(or)-2000 67578
+y(classroom)217 b(use)f(is)f(granted)i(without)h(fee)d(pro)-12
+b(vided)217 b(that)g(copies)f(are)f(not)h(made)f(or)h(distrib)-15
+b(uted)-2000 68464 y(for)178 b(pro\002t)h(or)e(commercial)i(adv)-19
+b(antage)179 b(and)g(that)f(copies)i(bear)e(this)h(notice)g(and)f(the)h
+(full)f(citation)-2000 69349 y(on)213 b(the)g(\002rst)g(page.)g(T)-62
+b(o)213 b(cop)-8 b(y)214 b(otherwise,)h(to)e(republish,)i(to)e(post)h
+(on)f(serv)-12 b(ers)214 b(or)f(to)g(redistrib)-15 b(ute)-2000
+70235 y(to)195 b(lists,)g(requires)h(prior)f(speci\002c)g(permission)h
+(and/or)g(a)d(fee.)-2000 71342 y Fu(PEPM'11,)789 b Fv(January)195
+b(24\22625,)h(2011,)f(Austin,)h(T)-54 b(e)-12 b(xas,)195
+b(USA.)-2000 72227 y(Cop)-8 b(yright)1598 72204 y(c)1329
+72227 y Ft(\015)194 b Fv(2011)i(A)-31 b(CM)193 b
+(978-1-4503-0485-6/11/01.)116 b(.)g(.)g($10.00)p Black
+Black Black 27224 20378 a FC(addition)294 b(to)h(the)f(actual)h
+(computation)g(the)-15 b(y)295 b(do.)f(Because)h(the)f(box)-15
+b(es)294 b(are)27224 21485 y(allocated)217 b(on)f(the)g(heap,)g
+(producing)h(man)-15 b(y)216 b(of)g(them)g(puts)f(pressure)g(on)h(the)
+27224 22592 y(g)-5 b(arbage)250 b(collector)-55 b(.)28552
+23699 y(T)-80 b(ype)330 b(dispatching)g(is)e(the)i(process)e(of)h
+(\002nding)h(the)f(concrete)i(imple-)27224 24806 y(mentation)223
+b(that)f(is)f(applicable)i(to)f(the)g(objects)g(at)g(hand)h(when)g
+(performing)27224 25913 y(a)262 b(generic)h(operation)f(on)g(them.)h
+(An)f(e)-15 b(xample)263 b(w)-10 b(ould)263 b(be)f(the)g(addition)h(of)
+27224 27020 y(tw)-10 b(o)285 b(objects:)f(F)-15 b(or)285
+b(addition)g(the)f(types)h(of)f(the)h(concrete)h(objects)e(need)i(to)
+27224 28127 y(be)264 b(check)-10 b(ed)266 b(and)f(the)g(suiting)f
+(implementation)i(chosen.)f(T)-80 b(ype)265 b(dispatch-)27224
+29271 y(ing)229 b(is)f(a)h(v)-15 b(ery)230 b(common)f(operation)h(in)f
+(modern)44029 28848 y Fz(2)44646 29271 y FC(dynamic)h(languages)g(be-)
+27224 30378 y(cause)j(no)g(types)g(are)g(kno)-25 b(wn)234
+b(at)f(compile)h(time.)f(Therefore)g(all)g(operations)27224
+31485 y(need)250 b(it.)28552 32592 y(A)230 b(recently)h(popular)f
+(approach)h(to)f(implementing)h(just-in-time)e(com-)27224
+33699 y(pilers)271 b(for)h(dynamic)h(languages)f(is)g(that)g(of)g(a)g
+(tracing)g(JIT)-74 b(.)271 b(A)h(tracing)h(JIT)27224
+34806 y(w)-10 b(orks)364 b(by)h(observing)f(the)h(running)g(program)g
+(and)g(recording)g(its)e(com-)27224 35913 y(monly)245
+b(e)-15 b(x)g(ecuted)246 b(parts)f(into)f Fx(linear)h(e)-20
+b(xecution)246 b(tr)-15 b(aces)p FC(.)245 b(Those)f(traces)h(are)27224
+37020 y(optimized)250 b(and)f(turned)h(into)f(machine)i(code.)28552
+38127 y(One)376 b(reason)g(for)f(the)h(popularity)g(of)f(tracing)h
+(JITs)e(is)g(their)i(relati)-25 b(v)-15 b(e)27224 39234
+y(simplicity)-65 b(.)489 b(The)-15 b(y)489 b(can)h(often)f(be)h(added)g
+(to)f(an)g(e)-15 b(xisting)489 b(interpreter)-40 b(,)27224
+40341 y(reusing)428 b(a)g(lot)g(of)g(the)g(interpreter')-55
+b(s)428 b(infrastructure.)g(The)-15 b(y)428 b(gi)-25
+b(v)-15 b(e)429 b(some)27224 41448 y(important)251 b(optimizations)g
+(lik)-10 b(e)251 b(inlining)h(and)f(constant-folding)g(for)g(free.)
+27224 42555 y(A)349 b(tracing)g(JIT)e(al)-10 b(w)g(ays)350
+b(produces)f(linear)g(pieces)g(of)f(code,)i(which)f(sim-)27224
+43662 y(pli\002es)296 b(man)-15 b(y)296 b(of)g(the)h(hard)f(algorithms)
+g(in)g(a)g(compiler)-40 b(,)297 b(such)f(as)g(re)-15
+b(gister)27224 44769 y(allocation.)28552 45876 y(The)308
+b(use)g(of)g(a)h(tracing)f(JIT)f(can)i(remo)-15 b(v)g(e)309
+b(the)g(o)-15 b(v)g(erhead)309 b(of)f(bytecode)27224
+46983 y(dispatch)386 b(and)f(that)h(of)f(the)h(interpreter)f(data)h
+(structures.)f(In)g(this)g(paper)27224 48090 y(we)442
+b(w)-10 b(ant)442 b(to)g(present)f(a)h(ne)-25 b(w)443
+b(optimization)f(that)g(can)g(be)g(added)h(to)e(a)27224
+49197 y(tracing)228 b(JIT)f(that)i(further)f(remo)-15
+b(v)g(es)228 b(some)g(of)g(the)h(o)-15 b(v)g(erhead)229
+b(more)f(closely)27224 50304 y(associated)444 b(to)g(dynamic)h
+(languages,)f(such)g(as)g(boxing)g(o)-15 b(v)g(erhead)445
+b(and)27224 51410 y(type)355 b(dispatching.)h(Our)f(e)-15
+b(xperimental)357 b(platform)e(is)g(the)g(PyPy)g(project,)27224
+52517 y(which)283 b(is)g(an)g(en)-40 b(vironment)284
+b(for)e(implementing)i(dynamic)g(programming)27224 53624
+y(languages.)472 b(PyPy)f(and)h(tracing)f(JITs)f(are)h(described)h(in)f
+(more)g(detail)27224 54731 y(in)386 b(Section)i(2.)e(Section)i(3)e
+(analyzes)i(the)f(problem)g(to)g(be)g(solv)-15 b(ed)386
+b(more)27224 55838 y(closely)-65 b(.)28552 56945 y(The)297
+b(core)g(of)f(our)h(trace)g(optimization)h(technique)g(can)f(be)g(vie)
+-25 b(wed)298 b(as)27224 58052 y(partial)258 b(e)-25
+b(v)g(aluation:)259 b(the)g(partial)f(e)-25 b(v)g(aluation)259
+b(performs)e(a)i(form)e(of)h(escape)27224 59159 y(analysis)223
+b([4)o(])g(on)g(the)h(traces)f(and)g(mak)-10 b(es)224
+b(some)e(objects)i(that)f(are)g(allocated)27224 60266
+y(in)342 b(the)g(trace)h Fx(static,)e FC(which)i(means)f(that)h(the)-15
+b(y)342 b(do)g(not)g(occur)h(an)-15 b(y)342 b(more)27224
+61373 y(in)366 b(the)h(optimized)g(trace.)g(This)f(technique)i(is)d
+(informally)i(described)g(in)27224 62480 y(Section)394
+b(4;)g(a)g(more)g(formal)g(description)g(is)g(gi)-25
+b(v)-15 b(en)394 b(in)g(Section)h(5.)f(The)27224 63587
+y(introduced)485 b(techniques)g(are)f(e)-25 b(v)g(aluated)486
+b(in)e(Section)g(6)g(using)g(PyPy')-55 b(s)27224 64694
+y(Python)249 b(interpreter)-55 b(.)28552 65801 y(The)249
+b(contrib)-20 b(utions)250 b(made)g(by)f(this)g(paper)g(are:)p
+Black 27224 69407 V 27224 70090 a Fz(2)27722 70403 y
+Fw(F)-13 b(or)197 b(languages)g(in)g(the)h(LISP)f(f)-9
+b(amily)-58 b(,)199 b(basic)f(arithmetic)g(operations)f(are)g
+(typically)27224 71399 y(not)209 b(o)-13 b(v)g(erloaded;)208
+b(e)-22 b(v)-13 b(en)209 b(in)g(Smalltalk,)i(type)e(dispatching)h(is)g
+(much)f(simpler)h(than)f(in)27224 72395 y(Python)221
+b(or)g(Ja)-18 b(v)c(aScript.)p Black Black Black eop
+end
+%%Page: 2 2
+TeXDict begin 2 1 bop Black Black Black -1696 886 a FC(1.)p
+Black 388 w(A)211 b(description)g(of)f(a)h(practical,)h(ef)-25
+b(\002cient)211 b(and)h(ef)-25 b(fecti)g(v)-15 b(e)211
+b(algorithm)g(for)-561 1993 y(remo)-15 b(ving)250 b(object)g
+(allocations)g(in)f(a)g(tracing)h(JIT)-74 b(.)p Black
+-1696 3542 a(2.)p Black 388 w(A)249 b(characterization)j(of)c(this)h
+(algorithm)h(as)f(partial)g(e)-25 b(v)g(aluation.)p Black
+-1696 5092 a(3.)p Black 388 w(Performance)250 b(benchmarks)g(for)f
+(this)f(algorithm.)-2000 7777 y FA(2.)1218 b(Backgr)-22
+b(ound)-2000 9327 y Fs(2.1)997 b(PyPy)-2000 10876 y FC(The)359
+b(w)-10 b(ork)358 b(described)i(in)e(this)g(paper)h(w)-10
+b(as)359 b(done)g(in)g(the)g(conte)-15 b(xt)359 b(of)g(the)-2000
+12021 y(PyPy)365 b(project)3235 11598 y Fz(3)3987 12021
+y FC([26].)g(PyPy)f(is)g(an)h(en)-40 b(vironment)366
+b(where)f(dynamic)h(lan-)-2000 13128 y(guages)374 b(can)f(be)h
+(implemented)g(in)f(a)h(simple)f(yet)g(ef)-25 b(\002cient)374
+b(w)-10 b(ay)-65 b(.)374 b(When)-2000 14235 y(implementing)317
+b(a)e(language)i(with)f(PyPy)g(one)g(writes)f(an)h Fx(interpr)-37
+b(eter)338 b FC(for)-2000 15342 y(the)393 b(language)h(in)f
+Fx(RPython)g FC([1].)f(RPython)h(\("restricted)g(Python"\))g(is)g(a)
+-2000 16449 y(subset)232 b(of)h(Python)g(chosen)h(in)f(such)g(a)g(w)-10
+b(ay)234 b(that)f(type)g(inference)h(becomes)-2000 17556
+y(possible.)371 b(The)g(language)h(interpreter)g(can)f(then)h(be)f
+(compiled)h(\(\223trans-)-2000 18663 y(lated\224\))269
+b(with)f(PyPy')-55 b(s)267 b(tools)h(into)g(a)g(VM)g(on)g(C)f(le)-25
+b(v)-15 b(el.)269 b(During)f(translation)-2000 19770
+y(to)217 b(C,)f(man)-15 b(y)218 b(lo)-25 b(w-le)g(v)-15
+b(el)218 b(aspects)e(of)h(the)g(\002nal)g(VM,)g(such)g(as)g(object)g
+(layout,)-2000 20876 y(g)-5 b(arbage)320 b(collection)f(and)g(memory)g
+(model,)g(are)g(w)-10 b(o)-15 b(v)g(en)320 b(into)f(the)g(gener)-20
+b(-)-2000 21983 y(ated)246 b(code.)h(Therefore)f(the)g(interpreter)g
+(itself)f(can)i(remain)f(at)g(a)g(relati)-25 b(v)-15
+b(ely)-2000 23090 y(high)249 b(le)-25 b(v)-15 b(el)250
+b(of)f(abstraction.)-672 24197 y(A)460 b(number)f(of)g(languages)h(ha)
+-20 b(v)-15 b(e)461 b(been)f(implemented)g(with)g(PyPy)-65
+b(.)-2000 25304 y(The)380 b(project)g(w)-10 b(as)380
+b(initiated)g(to)g(get)g(a)g(better)g(Python)g(implementation,)-2000
+26411 y(which)315 b(inspired)f(the)g(name)h(of)e(the)i(project)f(and)h
+(is)e(still)g(the)i(main)f(focus)-2000 27518 y(of)445
+b(de)-25 b(v)-15 b(elopment.)446 b(In)f(addition)g(a)h(number)f(of)f
+(other)i(languages)f(were)-2000 28625 y(implemented,)211
+b(among)f(them)g(a)g(Prolog)f(interpreter)h([7],)f(a)h(Smalltalk)g(VM)
+-2000 29732 y([6])249 b(and)g(a)h(GameBo)-10 b(y)250
+b(emulator)f([8].)-672 30839 y(The)289 b(feature)f(that)h(mak)-10
+b(es)289 b(PyPy)f(more)g(than)h(a)f(compiler)h(with)g(a)f(run-)-2000
+31946 y(time)339 b(system)f(is)g(its)g(support)g(for)g(automated)i(JIT)
+e(compiler)h(generation)-2000 33053 y([5].)317 b(During)h(the)g
+(translation)f(to)h(C,)e(PyPy')-55 b(s)317 b(tools)g(can)i(generate)f
+(a)g(trac-)-2000 34160 y(ing)400 b(just-in-time)g(compiler)h(for)f(the)
+g(language)i(that)e(the)h(interpreter)g(is)-2000 35267
+y(implementing.)343 b(This)d(process)h(is)g(mostly)g(automatic;)h(it)g
+(only)f(needs)h(to)-2000 36374 y(be)i(guided)g(by)g(the)g(language)h
+(implementer)g(using)e(a)h(small)f(number)h(of)-2000
+37481 y(source-code)274 b(hints)f(in)g(the)g(interpreter)-55
+b(.)274 b(Mostly-automatically)f(generat-)-2000 38588
+y(ing)211 b(a)f(JIT)g(compiler)h(has)f(man)-15 b(y)211
+b(adv)-25 b(antages)212 b(o)-15 b(v)g(er)211 b(writing)g(one)g
+(manually)-65 b(,)-2000 39695 y(an)267 b(error)-20 b(-prone)266
+b(and)h(tedious)f(process.)g(By)g(construction,)h(the)g(generated)-2000
+40802 y(JIT)235 b(has)g(the)i(same)f(semantics)f(as)h(the)g
+(interpreter)-55 b(.)237 b(Optimizations)f(can)h(be)-2000
+41909 y(shared)249 b(between)i(dif)-25 b(ferent)249 b(languages)h
+(implemented)h(with)e(PyPy)-65 b(.)-672 43016 y(Moreo)-15
+b(v)g(er)-40 b(,)300 b(thanks)g(to)f(the)h(internal)f(design)h(of)f
+(the)h(JIT)e(generator)-40 b(,)300 b(it)-2000 44123 y(is)243
+b(v)-15 b(ery)244 b(easy)g(to)f(add)h(ne)-25 b(w)244
+b Fx(bac)-20 b(k)-10 b(ends)245 b FC(for)e(producing)h(the)g(actual)h
+(machine)-2000 45230 y(code.)227 b(Examples)f(of)g(JIT)e(back)-10
+b(ends)227 b(that)g(are)f(implemented)h(are)f(those)g(for)-2000
+46337 y(Intel)347 b(x86)g(and)g(x86-64)g(and)g(an)g(e)-15
+b(xperimental)348 b(one)f(for)f(the)h(CLI)e(.NET)-2000
+47444 y(V)-60 b(irtual)250 b(Machine)g([12].)-2000 49529
+y Fs(2.2)997 b(T)-74 b(racing)249 b(JIT)f(Compilers)-2000
+51078 y FC(T)-35 b(racing)306 b(JITs)f(are)h(a)h(recently)g(popular)f
+(approach)h(to)f(write)h(just-in-time)-2000 52185 y(compilers)274
+b(for)g(dynamic)h(languages.)g(Their)f(origins)g(lie)g(in)g(the)h
+(Dynamo)-2000 53292 y(project,)324 b(which)h(used)e(a)h(tracing)g
+(approach)h(to)f(optimize)g(machine)h(code)-2000 54399
+y(using)249 b(e)-15 b(x)g(ecution)250 b(traces)f([2].)f(T)-35
+b(racing)249 b(JITs)f(ha)-20 b(v)-15 b(e)249 b(then)h(be)f(adapted)h
+(to)f(be)-2000 55506 y(used)299 b(for)f(a)h(v)-15 b(ery)300
+b(light-weight)f(Ja)-20 b(v)-25 b(a)299 b(VM)g([15])g(and)g(afterw)-10
+b(ards)299 b(used)g(in)-2000 56613 y(se)-25 b(v)-15 b(eral)270
+b(implementations)h(of)f(dynamic)g(languages,)h(such)f(as)f(Ja)-20
+b(v)-25 b(aScript)-2000 57758 y([13],)249 b(Lua)1707
+57334 y Fz(4)2344 57758 y FC(and)g(no)-25 b(w)250 b(Python)f(\(and)h
+(other)f(languages\))h(via)g(PyPy)-65 b(.)-672 58865
+y(The)270 b(core)g(idea)g(of)f(tracing)h(JITs)e(is)h(to)h(focus)f(the)h
+(optimization)g(ef)-25 b(fort)-2000 59972 y(of)338 b(the)h(JIT)f
+(compiler)h(on)g(the)g(commonly)g(e)-15 b(x)g(ecuted,)341
+b(i.e.,)e Fx(hot)357 b FC(paths)338 b(of)-2000 61079
+y(the)402 b(core)g(loops)g(of)g(the)g(program)g(and)g(to)g(just)f(use)h
+(an)g(interpreter)g(for)-2000 62185 y(the)303 b(less)f(commonly)i(e)-15
+b(x)g(ecuted)304 b(parts.)e(VMs)g(that)h(use)g(a)g(tracing)g(JIT)f(are)
+-2000 63292 y(mostly)287 b(mix)-15 b(ed-mode)289 b(e)-15
+b(x)g(ecution)288 b(en)-40 b(vironments,)289 b(the)-15
+b(y)288 b(contain)g(both)g(an)-2000 64399 y(interpreter)370
+b(and)g(a)g(JIT)f(compiler)-55 b(.)370 b(By)g(def)-10
+b(ault)370 b(the)g(interpreter)g(is)f(used)-2000 65506
+y(to)h(e)-15 b(x)g(ecute)371 b(the)f(program,)g(doing)g(some)f
+(light-weight)h(pro\002ling)g(at)g(the)-2000 66613 y(same)353
+b(time.)g(This)g(pro\002ling)f(is)h(used)g(to)g(identify)g(the)g(hot)g
+(loops)g(of)g(the)-2000 67720 y(program.)271 b(If)e(a)i(hot)f(loop)g
+(is)g(found)g(in)h(that)f(w)-10 b(ay)-65 b(,)271 b(the)g(interpreter)g
+(enters)f(a)-2000 68827 y(special)318 b Fx(tr)-15 b(acing)318
+b(mode)p FC(.)g(In)f(this)g(tracing)h(mode,)g(the)g(interpreter)g
+(tries)f(to)p Black -2000 70104 13284 37 v -2000 70788
+a Fz(3)-1502 71100 y Fr(http://pypy.org)-2000 72083 y
+Fz(4)-1502 72395 y Fr(http://luajit.org/)p Black Black
+Black 27224 886 a FC(record)225 b(all)g(operations)g(that)g(it)g(is)f
+(e)-15 b(x)g(ecuting)226 b(while)g(running)f(one)g(iteration)27224
+1993 y(of)291 b(the)g(hot)g(loop.)h(This)e(history)g(of)h(e)-15
+b(x)g(ecuted)293 b(operations)f(of)e(one)i(loop)f(is)27224
+3099 y(called)307 b(a)g Fx(tr)-15 b(ace)p FC(.)307 b(Because)g(the)g
+(trace)g(corresponds)f(to)h(one)g(iteration)g(of)f(a)27224
+4206 y(loop,)337 b(it)h(al)-10 b(w)g(ays)337 b(ends)h(with)f(a)h(jump)f
+(to)h(its)e(o)-25 b(wn)338 b(be)-15 b(ginning.)339 b(The)e(trace)27224
+5313 y(also)406 b(contains)h(all)g(operations)f(that)h(are)g(performed)
+g(in)f(functions)g(that)27224 6420 y(were)303 b(called)g(in)f(the)h
+(loop,)f(thus)g(a)h(tracing)f(JIT)g(automatically)h(performs)27224
+7527 y(inlining.)329 b(This)g(trace)h(of)f(operations)h(subsequently)g
+(forms)e(the)i(basis)f(of)27224 8634 y(the)372 b(generated)g(code.)h
+(The)e(trace)h(is)f(\002rst)g(optimized,)h(and)g(then)g(turned)27224
+9741 y(into)205 b(machine)g(code.)h(Both)e(optimization)i(and)f
+(machine)h(code)g(generation)27224 10848 y(are)225 b(simple,)f(because)
+i(the)f(traces)g(are)g(linear)-55 b(.)225 b(This)f(linearity)h(mak)-10
+b(es)225 b(man)-15 b(y)27224 11955 y(optimizations)379
+b(a)g(lot)f(more)h(tractable,)g(and)h(the)e(inlining)h(that)g(happens)
+27224 13062 y(gi)-25 b(v)-15 b(es)249 b(the)h(optimizations)f
+(automatically)i(more)e(conte)-15 b(xt)250 b(to)f(w)-10
+b(ork)250 b(with.)28552 14169 y(Since)234 b(the)g(trace)g(corresponds)f
+(to)h(one)g(concrete)g(e)-15 b(x)g(ecution)235 b(of)f(a)f(loop,)27224
+15276 y(the)358 b(code)g(generated)h(from)e(it)h(is)f(only)h(one)g
+(possible)f(path)h(through)g(the)27224 16383 y(loop.)303
+b(T)-80 b(o)303 b(mak)-10 b(e)304 b(sure)e(that)i(the)f(trace)h
+(maintains)f(the)g(correct)h(semantics,)27224 17490 y(it)374
+b(contains)h(a)g Fx(guar)-37 b(d)402 b FC(at)375 b(all)g(places)g
+(where)g(the)g(e)-15 b(x)g(ecution)376 b(could)g(ha)-20
+b(v)-15 b(e)27224 18597 y(di)-25 b(v)-15 b(er)d(ged)245
+b(from)e(the)h(path.)h(Those)e(guards)h(check)h(the)f(assumptions)f
+(under)27224 19704 y(which)369 b(e)-15 b(x)g(ecution)370
+b(can)g(stay)e(on)h(the)g(trace.)h(As)e(an)h(e)-15 b(xample,)370
+b(if)e(a)h(loop)27224 20811 y(contains)419 b(an)h(if-statement,)f(the)g
+(trace)h(will)f(contain)h(the)f(e)-15 b(x)g(ecution)421
+b(of)27224 21918 y(one)307 b(of)g(the)g(paths)g(only)-65
+b(,)308 b(which)g(is)e(the)h(path)h(that)f(w)-10 b(as)307
+b(tak)-10 b(en)308 b(during)f(the)27224 23025 y(production)386
+b(of)f(the)h(trace.)g(The)g(trace)g(will)g(also)f(contain)i(a)e(guard)h
+(that)27224 24132 y(checks)293 b(that)f(the)h(condition)g(of)f(the)h
+(if-statement)f(is)f(the)i(same)g(as)f(during)27224 25239
+y(tracing,)249 b(because)i(if)d(it)h(isn')-18 b(t,)249
+b(the)g(rest)g(of)g(the)g(trace)h(w)-10 b(ould)250 b(not)f(be)h(v)-25
+b(alid.)28552 26346 y(When)391 b(generating)f(machine)h(code,)g(e)-25
+b(v)-15 b(ery)390 b(guard)g(is)f(turned)h(into)f(a)27224
+27453 y(quick)291 b(check)i(to)d(see)i(whether)f(the)h(assumption)f
+(still)f(holds.)h(When)h(such)27224 28560 y(a)377 b(guard)g(is)f(hit)g
+(during)h(the)g(e)-15 b(x)g(ecution)378 b(of)e(the)h(machine)h(code)f
+(and)g(the)27224 29667 y(assumption)388 b(does)g(not)g(hold,)g(the)h(e)
+-15 b(x)g(ecution)389 b(of)f(the)g(machine)h(code)g(is)27224
+30773 y(stopped,)261 b(and)g(interpreter)g(continues)g(to)f(run)h(from)
+f(that)h(point)g(on.)g(These)27224 31880 y(guards)249
+b(are)i(the)f(only)g(mechanism)g(to)g(stop)g(the)g(e)-15
+b(x)g(ecution)251 b(of)f(a)g(trace,)g(the)27224 32987
+y(loop)f(end)h(condition)g(also)f(tak)-10 b(es)249 b(the)h(form)e(of)h
+(a)h(guard.)28552 34094 y(If)242 b(one)i(speci\002c)f(guard)h(f)-10
+b(ails)242 b(a)h(lot)g(\(i.e.,)g(more)h(than)f(some)g(threshold\),)
+27224 35201 y(the)327 b(tracing)g(JIT)f(will)h(generate)h(a)f(ne)-25
+b(w)328 b(trace)f(that)g(starts)f(e)-15 b(xactly)328
+b(at)f(the)27224 36308 y(position)210 b(of)g(the)h(f)-10
+b(ailing)211 b(guard)g([14].)f(The)h(e)-15 b(xisting)210
+b(assembler)h(is)e(patched)27224 37415 y(to)469 b(jump)g(to)g(the)h(ne)
+-25 b(w)470 b(trace)f(when)h(the)g(guard)f(f)-10 b(ails.)469
+b(This)g(approach)27224 38522 y(guarantees)297 b(that)f(all)g(the)g
+(hot)g(paths)g(in)g(the)g(program)g(will)g(e)-25 b(v)-15
+b(entually)297 b(be)27224 39629 y(traced)250 b(and)f(compiled)h(into)g
+(ef)-25 b(\002cient)250 b(code.)27224 43171 y Fs(2.3)996
+b(Running)249 b(Example)27224 44721 y FC(F)-15 b(or)250
+b(the)h(purpose)g(of)f(this)h(paper)-40 b(,)251 b(we)g(are)g(going)g
+(to)g(use)g(a)g(tin)-15 b(y)250 b(interpreter)27224 45828
+y(for)290 b(a)i(dynamic)g(language)g(with)g(a)f(v)-15
+b(ery)291 b(simple)g(object)h(model,)g(that)f(just)27224
+46935 y(supports)296 b(an)h(inte)-15 b(ger)298 b(and)f(a)g(\003oat)h
+(type.)f(The)g(objects)g(support)g(only)g(tw)-10 b(o)27224
+48042 y(operations,)322 b Fr(add)p Black Black FC(,)g(which)g(adds)g
+(tw)-10 b(o)322 b(objects)g(\(promoting)g(ints)f(to)h(\003oats)27224
+49149 y(in)233 b(a)g(mix)-15 b(ed)234 b(addition\))f(and)h
+Fr(is)38184 48940 y(_)38717 49149 y(positive)p Black
+Black 1 w FC(,)f(which)h(returns)e(whether)i(the)27224
+50256 y(number)259 b(is)f(greater)h(than)g(zero.)g(The)g
+(implementation)h(of)e Fr(add)p Black Black 259 w FC(uses)g(clas-)27224
+51363 y(sical)c(Smalltalk-lik)-10 b(e)255 b(double-dispatching.)h(The)e
+(classes)g(can)h(be)g(seen)g(in)27224 52470 y(Figure)249
+b(1)g(\(written)g(in)h(RPython\).)28552 53577 y(Using)405
+b(these)g(classes)f(to)h(implement)g(arithmetic)h(sho)-25
+b(ws)404 b(the)h(basic)27224 54684 y(problem)315 b(of)h(a)f(dynamic)h
+(language)h(implementation.)g(All)e(the)h(numbers)27224
+55791 y(are)e(instances)g(of)g(either)g Fr(BoxedInteger)p
+Black Black 315 w FC(or)g Fr(BoxedFloat)p Black Black
+1 w FC(,)g(therefore)27224 56898 y(the)-15 b(y)296 b(consume)h(space)g
+(on)f(the)g(heap.)h(Performing)f(man)-15 b(y)297 b(arithmetic)g(op-)
+27224 58005 y(erations)319 b(produces)g(lots)f(of)h(g)-5
+b(arbage)320 b(quickly)-65 b(,)320 b(putting)f(pressure)f(on)h(the)
+27224 59112 y(g)-5 b(arbage)310 b(collector)-55 b(.)310
+b(Using)f(double)g(dispatching)h(to)f(implement)h(the)f(nu-)27224
+60219 y(meric)192 b(to)-25 b(wer)193 b(needs)f(tw)-10
+b(o)193 b(method)g(calls)f(per)g(arithmetic)h(operation,)g(which)27224
+61326 y(is)248 b(costly)h(due)h(to)f(the)h(method)g(dispatch.)28552
+62433 y(Let)276 b(us)g(no)-25 b(w)277 b(consider)g(a)f(simple)g
+(\223interpreter\224)i(function)e Fr(f)p Black Black
+277 w FC(that)g(uses)27224 63540 y(the)213 b(object)g(model)g(\(see)g
+(the)g(bottom)g(of)f(Figure)h(1\).)g(The)f(loop)h(in)g
+Fr(f)p Black Black 213 w FC(iterates)27224 64646 y Fr(y)p
+Black Black 334 w FC(times,)335 b(and)g(computes)g(something)f(in)h
+(the)g(process.)f(Simply)g(running)27224 65753 y(this)277
+b(function)h(is)f(slo)-25 b(w)-65 b(,)278 b(because)h(there)f(are)h
+(lots)e(of)g(virtual)h(method)h(calls)27224 66860 y(inside)264
+b(the)h(loop,)g(one)g(for)f(each)i Fr(is)39920 66651
+y(_)40453 66860 y(positive)p Black Black 265 w FC(and)f(e)-25
+b(v)-15 b(en)266 b(tw)-10 b(o)265 b(for)f(each)27224
+67967 y(call)446 b(to)g Fr(add)p Black Black 1 w FC(.)g(These)g(method)
+g(calls)g(need)h(to)f(check)i(the)e(type)h(of)e(the)27224
+69074 y(in)-40 b(v)-20 b(olv)-15 b(ed)349 b(objects)f(repeatedly)i(and)
+e(redundantly)-65 b(.)350 b(In)e(addition,)h(a)f(lot)g(of)27224
+70181 y(objects)224 b(are)g(created)h(when)g(e)-15 b(x)g(ecuting)225
+b(that)f(loop,)g(man)-15 b(y)225 b(of)e(these)h(objects)27224
+71288 y(are)341 b(short-li)-25 b(v)-15 b(ed.)342 b(The)f(actual)i
+(computation)f(that)g(is)f(performed)g(by)h Fr(f)p Black
+Black 341 w FC(is)27224 72395 y(simply)249 b(a)g(sequence)h(of)f
+(\003oat)h(or)f(inte)-15 b(ger)249 b(additions.)p Black
+Black eop end
+%%Page: 3 3
+TeXDict begin 3 2 bop Black Black Black -2001 1315 a
+Fq(c)o(l)o(a)o(s)o(s)463 b Fp(B)o(a)o(s)o(e\()n(o)o(b)o(j)o(e)o(c)o(t)o
+(\))o(:)-606 2245 y Fq(p)o(a)o(s)o(s)-2001 4105 y(c)o(l)o(a)o(s)o(s)g
+Fp(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o(e)o(r)o(\()n(B)o(a)o(s)o(e)o
+(\))o(:)-606 5034 y Fq(d)o(e)o(f)1253 4851 y Fp(_)o(_)2183
+5034 y(i)o(n)o(i)o(t)4043 4851 y(_)o(_)4973 5034 y(\()o(s)o(e)o(l)o(f)o
+(,)g(i)o(n)o(t)o(v)o(a)o(l)o(\))o(:)788 5964 y(s)o(e)o(l)o(f.)n(i)o(n)o
+(t)o(v)o(a)o(l)h(=)f(i)o(n)o(t)o(v)o(a)o(l)-606 7824
+y Fq(d)o(e)o(f)g Fp(a)o(d)o(d\()n(s)o(e)o(l)o(f)o(,)g(o)o(t)o(h)o(e)o
+(r)o(\))o(:)788 8754 y Fq(r)o(e)o(t)o(u)o(r)o(n)h Fp(o)o(t)o(h)o(e)o(r)
+o(.)n(a)o(d)o(d)8227 8571 y(_)o(_)9157 8754 y(i)o(n)o(t)o(\()o(s)o(e)o
+(l)o(f)o(.)n(i)o(n)o(t)o(v)o(a)o(l)o(\))-606 10614 y
+Fq(d)o(e)o(f)f Fp(a)o(d)o(d)2648 10431 y(_)o(_)3578 10614
+y(i)o(n)o(t)o(\()o(s)o(e)o(l)o(f)o(,)g(i)o(n)o(t)o(o)o(t)o(h)o(e)o(r)o
+(\))o(:)788 11543 y Fq(r)o(e)o(t)o(u)o(r)o(n)h Fp(B)o(o)o(x)o(e)o(d)o
+(I)o(n)o(t)o(e)o(g)o(e)o(r)n(\()o(i)o(n)o(t)o(o)o(t)o(h)o(e)o(r)g(+)f
+(s)o(e)o(l)o(f)o(.)o(i)o(n)o(t)o(v)o(a)o(l)o(\))-606
+13403 y Fq(d)o(e)o(f)g Fp(a)o(d)o(d)2648 13220 y(_)o(_)3578
+13403 y(f)o(l)o(o)o(a)o(t)o(\()o(s)o(e)o(l)o(f)o(,)g(f)o(l)o(o)o(a)o(t)
+o(o)o(t)o(h)o(e)o(r)o(\))o(:)788 14333 y(f)o(l)o(o)o(a)o(t)o(v)o(a)o(l)
+o(u)o(e)h(=)f(f)o(l)o(o)o(a)o(t)o(o)o(t)o(h)o(e)o(r)h(+)f(f)o(l)o(o)o
+(a)o(t\()n(s)o(e)o(l)o(f)o(.)o(i)o(n)o(t)o(v)o(a)o(l)o(\))788
+15263 y Fq(r)o(e)o(t)o(u)o(r)o(n)h Fp(B)o(o)o(x)o(e)o(d)o(F)o(l)o(o)o
+(a)o(t)o(\()n(f)o(l)o(o)o(a)o(t)o(v)o(a)o(l)o(u)o(e)o(\))-606
+17123 y Fq(d)o(e)o(f)f Fp(i)o(s)2183 16940 y(_)2648 17123
+y(p)o(o)o(s)o(i)o(t)o(i)o(v)o(e)o(\()n(s)o(e)o(l)o(f)o(\))o(:)788
+18052 y Fq(r)o(e)o(t)o(u)o(r)o(n)h Fp(s)o(e)o(l)o(f)o(.)n(i)o(n)o(t)o
+(v)o(a)o(l)g(>)g(0)-2001 19912 y Fq(c)o(l)o(a)o(s)o(s)f
+Fp(B)o(o)o(x)o(e)o(d)o(F)o(l)o(o)o(a)o(t)o(\()o(B)o(a)o(s)o(e)n(\))o(:)
+-606 20842 y Fq(d)o(e)o(f)1253 20659 y Fp(_)o(_)2183
+20842 y(i)o(n)o(i)o(t)4043 20659 y(_)o(_)4973 20842 y(\()o(s)o(e)o(l)o
+(f)o(,)g(f)o(l)o(o)o(a)o(t)o(v)o(a)o(l)o(\))o(:)788 21772
+y(s)o(e)o(l)o(f.)n(f)o(l)o(o)o(a)o(t)o(v)o(a)o(l)h(=)f(f)o(l)o(o)o(a)o
+(t)o(v)o(a)o(l)-606 23631 y Fq(d)o(e)o(f)g Fp(a)o(d)o(d\()n(s)o(e)o(l)o
+(f)o(,)g(o)o(t)o(h)o(e)o(r)o(\))o(:)788 24561 y Fq(r)o(e)o(t)o(u)o(r)o
+(n)h Fp(o)o(t)o(h)o(e)o(r)o(.)n(a)o(d)o(d)8227 24378
+y(_)o(_)9157 24561 y(f)o(l)o(o)o(a)o(t)o(\()o(s)o(e)o(l)o(f)o(.)n(f)o
+(l)o(o)o(a)o(t)o(v)o(a)o(l)o(\))-606 26421 y Fq(d)o(e)o(f)f
+Fp(a)o(d)o(d)2648 26238 y(_)o(_)3578 26421 y(i)o(n)o(t)o(\()o(s)o(e)o
+(l)o(f)o(,)g(i)o(n)o(t)o(o)o(t)o(h)o(e)o(r)o(\))o(:)788
+27351 y(f)o(l)o(o)o(a)o(t)o(v)o(a)o(l)o(u)o(e)h(=)f(f)o(l)o(o)o(a)o(t)o
+(\()o(i)o(n)o(t)o(o)o(t)o(h)o(e)o(r)o(\))h(+)f(s)o(e)o(l)o(f)o(.)o(f)o
+(l)o(o)o(a)o(t)o(v)o(a)o(l)788 28281 y Fq(r)o(e)o(t)o(u)o(r)o(n)h
+Fp(B)o(o)o(x)o(e)o(d)o(F)o(l)o(o)o(a)o(t)o(\()n(f)o(l)o(o)o(a)o(t)o(v)o
+(a)o(l)o(u)o(e)o(\))-606 30140 y Fq(d)o(e)o(f)f Fp(a)o(d)o(d)2648
+29957 y(_)o(_)3578 30140 y(f)o(l)o(o)o(a)o(t)o(\()o(s)o(e)o(l)o(f)o(,)g
+(f)o(l)o(o)o(a)o(t)o(o)o(t)o(h)o(e)o(r)o(\))o(:)788 31070
+y Fq(r)o(e)o(t)o(u)o(r)o(n)h Fp(B)o(o)o(x)o(e)o(d)o(F)o(l)o(o)o(a)o(t)o
+(\()n(f)o(l)o(o)o(a)o(t)o(o)o(t)o(h)o(e)o(r)g(+)f(s)o(e)o(l)o(f)o(.)o
+(f)o(l)o(o)o(a)o(t)o(v)o(a)o(l)o(\))-606 32930 y Fq(d)o(e)o(f)g
+Fp(i)o(s)2183 32747 y(_)2648 32930 y(p)o(o)o(s)o(i)o(t)o(i)o(v)o(e)o
+(\()n(s)o(e)o(l)o(f)o(\))o(:)788 33860 y Fq(r)o(e)o(t)o(u)o(r)o(n)h
+Fp(s)o(e)o(l)o(f)o(.)n(f)o(l)o(o)o(a)o(t)o(v)o(a)o(l)g(>)g(0)o(.)o(0)
+-2001 36649 y Fq(d)o(e)o(f)g Fp(f)o(\()o(y)n(\))o(:)-606
+37579 y(r)o(e)o(s)g(=)f(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o(e)o(r)n
+(\()o(0)o(\))-607 38509 y Fq(w)o(h)o(i)o(l)o(e)i Fp(y)o(.)n(i)o(s)4043
+38326 y(_)4508 38509 y(p)o(o)o(s)o(i)o(t)o(i)o(v)o(e)n(\()o(\))o(:)788
+39439 y(r)o(e)o(s)g(=)e(r)o(e)o(s)o(.)o(a)o(d)o(d)o(\()o(y)n(\))o(.)o
+(a)o(d)o(d)o(\()o(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o(e)o(r)n(\()n
+(-)o(1)o(0)o(0)o(\))o(\))789 40369 y(y)h(=)g(y)n(.)o(a)o(d)o(d)o(\()n
+(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o(e)o(r)o(\()n(-)o(1)o(\))o(\))
+-607 41299 y Fq(r)o(e)o(t)o(u)o(r)o(n)g Fp(r)o(e)o(s)p
+Black Black -2000 42279 26568 37 v -2000 43407 a Fs(Figur)-18
+b(e)269 b(1.)499 b FC(An)269 b(\223Interpreter\224)h(for)e(a)h(T)-35
+b(in)-15 b(y)269 b(Dynamic)h(Language)h(Written)-2000
+44514 y(in)249 b(RPython)p Black -672 48119 a(If)336
+b(the)h(function)f(is)g(e)-15 b(x)g(ecuted)338 b(using)e(the)g(tracing)
+h(JIT)-74 b(,)336 b(with)g Fr(y)p Black Black 336 w FC(being)-2000
+49226 y(a)383 b Fr(BoxedInteger)p Black Black 1 w FC(,)g(the)h
+(produced)f(trace)h(looks)f(lik)-10 b(e)383 b(the)g(one)h(of)e(Fig-)
+-2000 50333 y(ure)268 b(2)f(\(lines)g(starting)h(with)g(a)f(hash)h
+(\223#\224)g(are)g(comments\).)g(The)g(trace)g(cor)-20
+b(-)-2000 51440 y(responds)249 b(to)g(one)h(iteration)f(of)g(the)h
+(while-loop)f(in)h Fr(f)p Black Black FC(.)-672 52547
+y(The)364 b(operations)g(in)f(the)h(trace)h(are)e(indented)i
+(corresponding)f(to)g(the)-2000 53654 y(stack)323 b(le)-25
+b(v)-15 b(el)324 b(of)e(the)i(function)f(that)g(contains)g(the)h
+(traced)f(operation.)h(The)-2000 54761 y(trace)358 b(is)e(in)h
+(single-assignment)g(form,)f(meaning)i(that)g(each)g(v)-25
+b(ariable)358 b(is)-2000 55868 y(assigned)223 b(a)h(v)-25
+b(alue)224 b(e)-15 b(xactly)225 b(once.)f(The)f(ar)-18
+b(guments)224 b Fo(p)16757 55979 y Fn(0)17442 55868 y
+FC(and)f Fo(p)19617 55979 y Fn(1)20302 55868 y FC(of)g(the)h(loop)-2000
+56975 y(correspond)267 b(to)f(the)g(li)-25 b(v)-15 b(e)267
+b(v)-25 b(ariables)267 b Fr(y)p Black Black 266 w FC(and)g
+Fr(res)p Black Black 267 w FC(in)f(the)h(while-loop)g(of)f(the)-2000
+58081 y(original)249 b(function.)-672 59188 y(The)305
+b(operations)h(in)f(the)g(trace)h(correspond)f(to)g(the)g(operations)h
+(in)f(the)-2000 60295 y(RPython)249 b(program)g(in)g(Figure)h(1:)p
+Black -1419 62335 a Fm(\017)p Black -561 62433 a Fr(new)p
+Black Black 249 w FC(creates)g(a)f(ne)-25 b(w)250 b(object.)p
+Black -1419 63884 a Fm(\017)p Black -561 63982 a Fr(get)p
+Black Black 249 w FC(reads)g(an)f(attrib)-20 b(ute)250
+b(of)f(an)g(object.)p Black -1419 65434 a Fm(\017)p Black
+-561 65532 a Fr(set)p Black Black 249 w FC(writes)g(to)g(an)h(attrib)
+-20 b(ute)250 b(of)f(an)g(object.)p Black -1419 66984
+a Fm(\017)p Black -561 67082 a Fr(guard)2104 66873 y(_)2637
+67082 y(class)p Black Black 224 w FC(is)222 b(a)g(precise)h(type)g
+(check)h(and)f(precedes)g(an)g(\(inlined\))-561 68189
+y(method)250 b(call)g(and)f(is)g(follo)-25 b(wed)250
+b(by)f(the)g(trace)h(of)f(the)h(called)g(method.)p Black
+-1419 69640 a Fm(\017)p Black -561 69738 a Fr(int)1038
+69529 y(_)1571 69738 y(add)p Black Black 492 w FC(and)492
+b Fr(int)7191 69529 y(_)7724 69738 y(gt)p Black Black
+492 w FC(are)f(inte)-15 b(ger)492 b(addition)g(and)g(comparison)-561
+70845 y(\(\223greater)250 b(than\224\),)g(respecti)-25
+b(v)-15 b(ely)-65 b(.)p Black -1419 72297 a Fm(\017)p
+Black -561 72395 a Fr(guard)2104 72186 y(_)2637 72395
+y(true)p Black Black 250 w FC(checks)250 b(that)g(a)f(boolean)h(is)f
+(true.)p Black Black Black 51577 1315 a Fl(1)p 0.3 0.3 0.3
+TeXcolorrgb -24631 w Fk(#)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 464 w(a)o(r)o(g)o(u)o(m)o(e)o(n)o(t)o(s)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+463 w(t)o(o)p Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3
+TeXcolorrgb 464 w(t)o(h)o(e)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 463 w(t)o(r)o(a)o(c)o(e)p
+Black 0.3 0.3 0.3 TeXcolorrgb -1 w(:)p Black 0.3 0.3 0.3
+TeXcolorrgb Black 465 w Fj(p)39768 1426 y Fi(0)p 0.3 0.3 0.3
+TeXcolorrgb 40199 1315 a Fk(,)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 465 w Fj(p)41586 1426 y Fi(1)51577 2245 y Fl(2)p
+0.3 0.3 0.3 TeXcolorrgb -24631 w Fk(#)p Black 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb 464 w(i)o(n)o(s)o(i)o(d)o(e)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+463 w(f)p Black 0.3 0.3 0.3 TeXcolorrgb -1 w(:)p Black
+0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+464 w(r)o(e)o(s)p Black 0.3 0.3 0.3 TeXcolorrgb -1 w(.)p
+Black 0.3 0.3 0.3 TeXcolorrgb -1 w(a)o(d)o(d)p Black
+0.3 0.3 0.3 TeXcolorrgb -2 w(\()p Black 0.3 0.3 0.3 TeXcolorrgb
+-1 w(y)p Black 0.3 0.3 0.3 TeXcolorrgb -1 w(\))p Black
+51577 3175 a Fl(3)-24631 b Fp(g)o(u)o(a)o(r)o(d)29548
+2992 y(_)30013 3175 y(c)o(l)o(a)o(s)o(s)n(\()p Fj(p)33259
+3286 y Fi(1)33690 3175 y Fp(,)464 b(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)n(\))51577 4105 y Fl(4)p 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb -22772 w Fk(#)p Black 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb 464 w(i)o(n)o(s)o(i)o(d)o(e)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+464 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o(e)o(r)p
+Black 0.3 0.3 0.3 TeXcolorrgb -2 w(.)p Black 0.3 0.3 0.3
+TeXcolorrgb -1 w(a)o(d)o(d)p Black 51577 5034 a Fl(5)-22771
+b Fj(i)29396 5145 y Fi(2)30293 5034 y Fp(=)463 b(g)o(e)o(t)o(\()p
+Fj(p)33539 5145 y Fi(1)33970 5034 y Fp(,)h(i)o(n)o(t)o(v)o(a)o(l)o(\))
+51577 5964 y Fl(6)-22772 b Fp(g)o(u)o(a)o(r)o(d)31407
+5781 y(_)31872 5964 y(c)o(l)o(a)o(s)o(s)o(\()p Fj(p)35119
+6075 y Fi(0)35550 5964 y Fp(,)463 b(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)o(\))51577 6894 y Fl(7)p 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb -20912 w Fk(#)p Black 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb 464 w(i)o(n)o(s)o(i)o(d)o(e)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+464 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o(e)o(r)p
+Black 0.3 0.3 0.3 TeXcolorrgb -2 w(.)p Black 0.3 0.3 0.3
+TeXcolorrgb -1 w(a)o(d)o(d)42566 6711 y(_)o(_)43496 6894
+y(i)o(n)o(t)p Black 51577 7824 a Fl(8)-20911 b Fj(i)31256
+7935 y Fi(3)32153 7824 y Fp(=)463 b(g)o(e)o(t)o(\()p
+Fj(p)35399 7935 y Fi(0)35830 7824 y Fp(,)h(i)o(n)o(t)o(v)o(a)o(l)o(\))
+51577 8754 y Fl(9)-20911 b Fj(i)31256 8865 y Fi(4)32153
+8754 y Fp(=)463 b(i)o(n)o(t)34477 8571 y(_)34942 8754
+y(a)o(d)o(d)o(\()p Fj(i)37116 8865 y Fi(2)37547 8754
+y Fp(,)i Fj(i)38791 8865 y Fi(3)39222 8754 y Fp(\))51577
+9684 y Fl(10)-21188 b Fj(p)31399 9795 y Fi(5)32296 9684
+y Fp(=)463 b(n)o(e)o(w)o(\()o(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o
+(e)o(r)n(\))51577 10614 y Fl(11)p 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb -19329 w Fk(#)p Black 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb 464 w(i)o(n)o(s)o(i)o(d)o(e)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+463 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o(e)o(r)p
+Black 0.3 0.3 0.3 TeXcolorrgb -2 w(.)p Black 0.3 0.3 0.3
+TeXcolorrgb 43030 10431 a(_)o(_)43960 10614 y(i)o(n)o(i)o(t)45820
+10431 y(_)o(_)p Black 51577 11543 a Fl(12)-19329 b Fp(s)o(e)o(t)o(\()p
+Fj(p)35119 11654 y Fi(5)35550 11543 y Fp(,)464 b(i)o(n)o(t)o(v)o(a)o(l)
+o(,)g Fj(i)40513 11654 y Fi(4)40945 11543 y Fp(\))51577
+12473 y Fl(13)51577 13403 y(14)p 0.3 0.3 0.3 TeXcolorrgb
+-24908 w Fk(#)p Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3
+TeXcolorrgb 464 w(i)o(n)o(s)o(i)o(d)o(e)p Black 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb 463 w(f)p Black
+0.3 0.3 0.3 TeXcolorrgb -1 w(:)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 464 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)p Black 0.3 0.3 0.3 TeXcolorrgb -2 w(\()n(-)o(1)o(0)o(0)o
+(\))p Black 51577 14333 a Fl(15)-24907 b Fj(p)27680 14444
+y Fi(6)28576 14333 y Fp(=)464 b(n)o(e)o(w)o(\()n(B)o(o)o(x)o(e)o(d)o(I)
+o(n)o(t)o(e)o(g)o(e)o(r)o(\))51577 15263 y Fl(16)p 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb -23049 w Fk(#)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+464 w(i)o(n)o(s)o(i)o(d)o(e)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 464 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)p Black 0.3 0.3 0.3 TeXcolorrgb -2 w(.)p Black
+0.3 0.3 0.3 TeXcolorrgb 39311 15080 a(_)o(_)40241 15263
+y(i)o(n)o(i)o(t)42101 15080 y(_)o(_)p Black 51577 16193
+a Fl(17)-23049 b Fp(s)o(e)o(t)o(\()p Fj(p)31399 16304
+y Fi(6)31830 16193 y Fp(,)464 b(i)o(n)o(t)o(v)o(a)o(l)o(,)f(-)o(1)o(0)o
+(0)o(\))51577 17123 y Fl(18)51577 18052 y(19)p 0.3 0.3 0.3
+TeXcolorrgb -24908 w Fk(#)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 464 w(i)o(n)o(s)o(i)o(d)o(e)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+463 w(f)p Black 0.3 0.3 0.3 TeXcolorrgb -1 w(:)p Black
+0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+464 w(.)p Black 0.3 0.3 0.3 TeXcolorrgb -1 w(a)o(d)o(d)p
+Black 0.3 0.3 0.3 TeXcolorrgb -1 w(\()p Black 0.3 0.3 0.3
+TeXcolorrgb -1 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o(e)o(r)p
+Black 0.3 0.3 0.3 TeXcolorrgb -2 w(\()n(-)o(1)o(0)o(0)o(\))o(\))p
+Black 51577 18982 a Fl(20)-24908 b Fp(g)o(u)o(a)o(r)o(d)29548
+18799 y(_)30013 18982 y(c)o(l)o(a)o(s)o(s)n(\()p Fj(p)33259
+19093 y Fi(5)33690 18982 y Fp(,)464 b(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o
+(e)o(g)o(e)o(r)n(\))51577 19912 y Fl(21)p 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb -23049 w Fk(#)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+464 w(i)o(n)o(s)o(i)o(d)o(e)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 464 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)p Black 0.3 0.3 0.3 TeXcolorrgb -2 w(.)p Black
+0.3 0.3 0.3 TeXcolorrgb -1 w(a)o(d)o(d)p Black 51577
+20842 a Fl(22)-23048 b Fj(i)29396 20953 y Fi(7)30293
+20842 y Fp(=)463 b(g)o(e)o(t)o(\()p Fj(p)33539 20953
+y Fi(5)33970 20842 y Fp(,)h(i)o(n)o(t)o(v)o(a)o(l)o(\))51577
+21772 y Fl(23)-23049 b Fp(g)o(u)o(a)o(r)o(d)31407 21589
+y(_)31872 21772 y(c)o(l)o(a)o(s)o(s)o(\()p Fj(p)35119
+21883 y Fi(6)35550 21772 y Fp(,)463 b(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o
+(e)o(g)o(e)o(r)o(\))51577 22702 y Fl(24)p 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb -21189 w Fk(#)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+464 w(i)o(n)o(s)o(i)o(d)o(e)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 464 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)p Black 0.3 0.3 0.3 TeXcolorrgb -2 w(.)p Black
+0.3 0.3 0.3 TeXcolorrgb -1 w(a)o(d)o(d)42566 22519 y(_)o(_)43496
+22702 y(i)o(n)o(t)p Black 51577 23631 a Fl(25)-21188
+b Fj(i)31256 23742 y Fi(8)32153 23631 y Fp(=)463 b(g)o(e)o(t)o(\()p
+Fj(p)35399 23742 y Fi(6)35830 23631 y Fp(,)h(i)o(n)o(t)o(v)o(a)o(l)o
+(\))51577 24561 y Fl(26)-21188 b Fj(i)31256 24672 y Fi(9)32153
+24561 y Fp(=)463 b(i)o(n)o(t)34477 24378 y(_)34942 24561
+y(a)o(d)o(d)o(\()p Fj(i)37116 24672 y Fi(7)37547 24561
+y Fp(,)i Fj(i)38791 24672 y Fi(8)39222 24561 y Fp(\))51577
+25491 y Fl(27)-21188 b Fj(p)31399 25602 y Fi(10)32672
+25491 y Fp(=)464 b(n)o(e)o(w)o(\()n(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)o(\))51577 26421 y Fl(28)p 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb -19329 w Fk(#)p Black 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb 464 w(i)o(n)o(s)o(i)o(d)o(e)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+463 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o(e)o(r)p
+Black 0.3 0.3 0.3 TeXcolorrgb -2 w(.)p Black 0.3 0.3 0.3
+TeXcolorrgb 43030 26238 a(_)o(_)43960 26421 y(i)o(n)o(i)o(t)45820
+26238 y(_)o(_)p Black 51577 27351 a Fl(29)-19329 b Fp(s)o(e)o(t)o(\()p
+Fj(p)35119 27462 y Fi(10)35927 27351 y Fp(,)463 b(i)o(n)o(t)o(v)o(a)o
+(l)o(,)i Fj(i)40890 27462 y Fi(9)41321 27351 y Fp(\))51577
+28281 y Fl(30)51577 29211 y(31)p 0.3 0.3 0.3 TeXcolorrgb
+-24908 w Fk(#)p Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3
+TeXcolorrgb 464 w(i)o(n)o(s)o(i)o(d)o(e)p Black 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb 463 w(f)p Black
+0.3 0.3 0.3 TeXcolorrgb -1 w(:)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 464 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)p Black 0.3 0.3 0.3 TeXcolorrgb -2 w(\()n(-)o(1)o(\))p
+Black 51577 30140 a Fl(32)-24907 b Fj(p)27680 30251 y
+Fi(11)28953 30140 y Fp(=)463 b(n)o(e)o(w\()n(B)o(o)o(x)o(e)o(d)o(I)o(n)
+o(t)o(e)o(g)o(e)o(r)o(\))51577 31070 y Fl(33)p 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb -23049 w Fk(#)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+464 w(i)o(n)o(s)o(i)o(d)o(e)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 464 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)p Black 0.3 0.3 0.3 TeXcolorrgb -2 w(.)p Black
+0.3 0.3 0.3 TeXcolorrgb 39311 30887 a(_)o(_)40241 31070
+y(i)o(n)o(i)o(t)42101 30887 y(_)o(_)p Black 51577 32000
+a Fl(34)-23049 b Fp(s)o(e)o(t)o(\()p Fj(p)31399 32111
+y Fi(11)32207 32000 y Fp(,)464 b(i)o(n)o(t)o(v)o(a)o(l)o(,)f(-)o(1)o
+(\))51577 32930 y Fl(35)51577 33860 y(36)p 0.3 0.3 0.3
+TeXcolorrgb -24908 w Fk(#)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 464 w(i)o(n)o(s)o(i)o(d)o(e)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+463 w(f)p Black 0.3 0.3 0.3 TeXcolorrgb -1 w(:)p Black
+0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+464 w(y)p Black 0.3 0.3 0.3 TeXcolorrgb -1 w(.)p Black
+0.3 0.3 0.3 TeXcolorrgb -1 w(a)o(d)o(d)p Black 0.3 0.3 0.3
+TeXcolorrgb -1 w(\()p Black 0.3 0.3 0.3 TeXcolorrgb -2
+w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o(e)o(r)p Black
+0.3 0.3 0.3 TeXcolorrgb -1 w(\()n(-)o(1)o(\))o(\))p Black
+51577 34790 a Fl(37)-24908 b Fp(g)o(u)o(a)o(r)o(d)29548
+34607 y(_)30013 34790 y(c)o(l)o(a)o(s)o(s)n(\()p Fj(p)33259
+34901 y Fi(0)33690 34790 y Fp(,)464 b(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o
+(e)o(g)o(e)o(r)n(\))51577 35719 y Fl(38)p 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb -23049 w Fk(#)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+464 w(i)o(n)o(s)o(i)o(d)o(e)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 464 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)p Black 0.3 0.3 0.3 TeXcolorrgb -2 w(.)p Black
+0.3 0.3 0.3 TeXcolorrgb -1 w(a)o(d)o(d)p Black 51577
+36649 a Fl(39)-23048 b Fj(i)29396 36760 y Fi(12)30670
+36649 y Fp(=)463 b(g)o(e)o(t)o(\()p Fj(p)33916 36760
+y Fi(0)34347 36649 y Fp(,)h(i)o(n)o(t)o(v)o(a)o(l)o(\))51577
+37579 y Fl(40)-23049 b Fp(g)o(u)o(a)o(r)o(d)31407 37396
+y(_)31872 37579 y(c)o(l)o(a)o(s)o(s)o(\()p Fj(p)35119
+37690 y Fi(11)35927 37579 y Fp(,)463 b(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o
+(e)o(g)o(e)o(r)o(\))51577 38509 y Fl(41)p 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb -21189 w Fk(#)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+464 w(i)o(n)o(s)o(i)o(d)o(e)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 464 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)p Black 0.3 0.3 0.3 TeXcolorrgb -2 w(.)p Black
+0.3 0.3 0.3 TeXcolorrgb -1 w(a)o(d)o(d)42566 38326 y(_)o(_)43496
+38509 y(i)o(n)o(t)p Black 51577 39439 a Fl(42)-21188
+b Fj(i)31256 39550 y Fi(13)32529 39439 y Fp(=)464 b(g)o(e)o(t)o(\()p
+Fj(p)35776 39550 y Fi(11)36584 39439 y Fp(,)f(i)o(n)o(t)o(v)o(a)o(l)o
+(\))51577 40369 y Fl(43)-21188 b Fj(i)31256 40480 y Fi(14)32529
+40369 y Fp(=)463 b(i)o(n)o(t)34853 40186 y(_)35318 40369
+y(a)o(d)o(d\()o Fj(i)37492 40480 y Fi(12)38300 40369
+y Fp(,)i Fj(i)39544 40480 y Fi(13)40352 40369 y Fp(\))51577
+41299 y Fl(44)-21188 b Fj(p)31399 41410 y Fi(15)32672
+41299 y Fp(=)464 b(n)o(e)o(w)o(\()n(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)o(\))51577 42228 y Fl(45)p 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb -19329 w Fk(#)p Black 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb 464 w(i)o(n)o(s)o(i)o(d)o(e)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+463 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o(e)o(r)p
+Black 0.3 0.3 0.3 TeXcolorrgb -2 w(.)p Black 0.3 0.3 0.3
+TeXcolorrgb 43030 42045 a(_)o(_)43960 42228 y(i)o(n)o(i)o(t)45820
+42045 y(_)o(_)p Black 51577 43158 a Fl(46)-19329 b Fp(s)o(e)o(t)o(\()p
+Fj(p)35119 43269 y Fi(15)35927 43158 y Fp(,)463 b(i)o(n)o(t)o(v)o(a)o
+(l)o(,)i Fj(i)40890 43269 y Fi(14)41698 43158 y Fp(\))51577
+44088 y Fl(47)51577 45018 y(48)p 0.3 0.3 0.3 TeXcolorrgb
+-24908 w Fk(#)p Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3
+TeXcolorrgb 464 w(i)o(n)o(s)o(i)o(d)o(e)p Black 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb 463 w(f)p Black
+0.3 0.3 0.3 TeXcolorrgb -1 w(:)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 464 w(y)p Black 0.3 0.3 0.3
+TeXcolorrgb -1 w(.)p Black 0.3 0.3 0.3 TeXcolorrgb -1
+w(i)o(s)34662 44835 y(_)35127 45018 y(p)o(o)o(s)o(i)o(t)o(i)o(v)o(e)p
+Black 0.3 0.3 0.3 TeXcolorrgb -2 w(\()o(\))p Black 51577
+45948 a Fl(49)-24908 b Fp(g)o(u)o(a)o(r)o(d)29548 45765
+y(_)30013 45948 y(c)o(l)o(a)o(s)o(s)n(\()p Fj(p)33259
+46059 y Fi(15)34067 45948 y Fp(,)463 b(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o
+(e)o(g)o(e)o(r)o(\))51577 46878 y Fl(50)p 0.3 0.3 0.3
+TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb -23049 w Fk(#)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+464 w(i)o(n)o(s)o(i)o(d)o(e)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 464 w(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)p Black 0.3 0.3 0.3 TeXcolorrgb -2 w(.)p Black
+0.3 0.3 0.3 TeXcolorrgb -1 w(i)o(s)40241 46695 y(_)40706
+46878 y(p)o(o)o(s)o(i)o(t)o(i)o(v)o(e)p Black 51577 47808
+a Fl(51)-23048 b Fj(i)29396 47919 y Fi(16)30670 47808
+y Fp(=)463 b(g)o(e)o(t)o(\()p Fj(p)33916 47919 y Fi(15)34724
+47808 y Fp(,)g(i)o(n)o(t)o(v)o(a)o(l\))51577 48737 y
+Fl(52)-23048 b Fj(i)29396 48848 y Fi(17)30670 48737 y
+Fp(=)463 b(i)o(n)o(t)32994 48554 y(_)33459 48737 y(g)o(t)o(\()p
+Fj(i)35168 48848 y Fi(16)35976 48737 y Fp(,)g(0)o(\))51577
+49667 y Fl(53)p 0.3 0.3 0.3 TeXcolorrgb -24908 w Fk(#)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+464 w(i)o(n)o(s)o(i)o(d)o(e)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 463 w(f)p Black 51577 50597
+a Fl(54)-24908 b Fp(g)o(u)o(a)o(r)o(d)29548 50414 y(_)30013
+50597 y(t)o(r)o(u)o(e)n(\()p Fj(i)32651 50708 y Fi(17)33459
+50597 y Fp(\))51577 51527 y Fl(55)g Fp(j)o(u)o(m)o(p)o(\()o
+Fj(p)30004 51638 y Fi(15)30812 51527 y Fp(,)465 b Fj(p)32199
+51638 y Fi(10)33008 51527 y Fp(\))p Black Black 27224
+52507 V 28388 53636 a Fs(Figur)-18 b(e)249 b(2.)499 b
+FC(An)249 b(Unoptimized)i(T)-35 b(race)249 b(of)g(the)h(Example)g
+(Interpreter)p Black 28552 56913 a(Method)475 b(calls)g(in)f(the)h
+(trace)g(are)g(preceded)h(by)f(a)g Fr(guard)50592 56704
+y(_)51125 56913 y(class)p Black Black 27224 58020 a FC(operation,)279
+b(to)f(check)i(that)e(the)h(class)f(of)g(the)g(recei)-25
+b(v)-15 b(er)280 b(is)d(the)i(same)f(as)g(the)27224 59165
+y(one)218 b(that)f(w)-10 b(as)218 b(observ)-15 b(ed)218
+b(during)f(tracing.)41980 58741 y Fz(5)42586 59165 y
+FC(These)g(guards)g(mak)-10 b(e)218 b(the)g(trace)27224
+60272 y(speci\002c)273 b(to)h(the)f(situation)g(where)h
+Fr(y)p Black Black 274 w FC(is)e(really)i(a)f Fr(BoxedInteger)p
+Black Black 2 w FC(.)g(When)27224 61379 y(the)473 b(trace)g(is)f
+(turned)h(into)g(machine)h(code)g(and)f(afterw)-10 b(ards)473
+b(e)-15 b(x)g(ecuted)27224 62485 y(with)252 b Fr(BoxedFloat)p
+Black Black 1 w FC(,)g(the)g(\002rst)f Fr(guard)41015
+62276 y(_)41548 62485 y(class)p Black Black 253 w FC(instruction)h
+(will)g(f)-10 b(ail)252 b(and)27224 63592 y(e)-15 b(x)g(ecution)250
+b(will)g(continue)g(using)f(the)g(interpreter)-55 b(.)28552
+64699 y(The)328 b(trace)g(sho)-25 b(ws)327 b(the)g(inef)-25
+b(\002ciencies)329 b(of)e Fr(f)p Black Black 327 w FC(clearly)-65
+b(,)328 b(if)f(one)h(looks)f(at)27224 65806 y(the)k(number)g(of)f
+Fr(new)p Black Black 1 w FC(,)g Fr(set)q(/get)p Black
+Black 331 w FC(and)h Fr(guard)43982 65597 y(_)44515 65806
+y(class)p Black Black 332 w FC(operations.)g(The)27224
+66913 y(number)219 b(of)f Fr(guard)34199 66704 y(_)34732
+66913 y(class)p Black Black 219 w FC(operation)h(is)f(particularly)h
+(problematic,)h(not)27224 68020 y(only)270 b(because)h(of)f(the)g(time)
+g(it)g(tak)-10 b(es)270 b(to)g(run)g(them.)g(All)g(guards)g(also)g(ha)
+-20 b(v)-15 b(e)27224 69127 y(additional)310 b(information)f(attached)h
+(that)f(mak)-10 b(es)310 b(it)e(possible)h(to)g(return)g(to)p
+Black 27224 70403 13284 37 v 27224 71086 a Fz(5)27722
+71399 y Fr(guard)30387 71190 y(_)30920 71399 y(class)p
+Black Black 358 w Fw(performs)357 b(a)g(precise)h(class)g(check,)g(not)
+e(checking)h(for)g(sub-)27224 72395 y(classes.)p Black
+Black Black eop end
+%%Page: 4 4
+TeXDict begin 4 3 bop Black Black Black Black Black 4217
+32334 a @beginspecial 0 @llx -1 @lly 212 @urx 484 @ury
+1272 @rwi @setspecial
+%%BeginDocument: figures/obj-lifetime.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: cairo 1.10.0 (http://cairographics.org)
+%%CreationDate: Thu Nov 18 15:15:16 2010
+%%Pages: 1
+%%BoundingBox: 0 -1 212 484
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%EndComments
+%%BeginProlog
+/cairo_eps_state save def
+/dict_count countdictstack def
+/op_count count 1 sub def
+userdict begin
+/q { gsave } bind def
+/Q { grestore } bind def
+/cm { 6 array astore concat } bind def
+/w { setlinewidth } bind def
+/J { setlinecap } bind def
+/j { setlinejoin } bind def
+/M { setmiterlimit } bind def
+/d { setdash } bind def
+/m { moveto } bind def
+/l { lineto } bind def
+/c { curveto } bind def
+/h { closepath } bind def
+/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
+      0 exch rlineto 0 rlineto closepath } bind def
+/S { stroke } bind def
+/f { fill } bind def
+/f* { eofill } bind def
+/n { newpath } bind def
+/W { clip } bind def
+/W* { eoclip } bind def
+/BT { } bind def
+/ET { } bind def
+/pdfmark where { pop globaldict /?pdfmark /exec load put }
+    { globaldict begin /?pdfmark /pop load def /pdfmark
+    /cleartomark load def end } ifelse
+/BDC { mark 3 1 roll /BDC pdfmark } bind def
+/EMC { mark /EMC pdfmark } bind def
+/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
+/Tj { show currentpoint cairo_store_point } bind def
+/TJ {
+  {
+    dup
+    type /stringtype eq
+    { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
+  } forall
+  currentpoint cairo_store_point
+} bind def
+/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
+    cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
+/Tf { pop /cairo_font exch def /cairo_font_matrix where
+      { pop cairo_selectfont } if } bind def
+/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
+      /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
+      /cairo_font where { pop cairo_selectfont } if } bind def
+/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
+      cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
+/g { setgray } bind def
+/rg { setrgbcolor } bind def
+/d1 { setcachedevice } bind def
+%%EndProlog
+%!PS-AdobeFont-1.0: NimbusSanL-Regu 1.06
+%%Title: NimbusSanL-Regu
+%Version: 1.06
+%%CreationDate: Thu Aug  2 14:35:58 2007
+%%Creator: frob
+%Copyright: Copyright (URW)++,Copyright 1999 by (URW)++ Design &
+%Copyright:  Development; Cyrillic glyphs added by Valek Filippov (C)
+%Copyright:  2001-2005
+% Generated by FontForge 20070723 (http://fontforge.sf.net/)
+%%EndComments
+
+FontDirectory/NimbusSanL-Regu known{/NimbusSanL-Regu findfont dup/UniqueID known pop false {dup
+/UniqueID get 5020902 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /f-0-0 def
+/FontBBox {-174 -285 1022 953 }readonly def
+                     
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+ /version (1.06) readonly def
+ /Notice (Copyright \050URW\051++,Copyright 1999 by \050URW\051++ Design & Development; Cyrillic glyphs added by Valek Filippov \050C\051 2001-2005) readonly def
+ /FullName (Nimbus Sans L Regular) readonly def
+ /FamilyName (Nimbus Sans L) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -151 def
+ /UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 19 /space put
+dup 15 /one put
+dup 16 /two put
+dup 17 /three put
+dup 14 /four put
+dup 10 /a put
+dup 5 /b put
+dup 7 /c put
+dup 2 /e put
+dup 6 /j put
+dup 18 /l put
+dup 13 /m put
+dup 1 /n put
+dup 4 /o put
+dup 11 /p put
+dup 20 /r put
+dup 9 /s put
+dup 8 /t put
+dup 12 /u put
+dup 3 /w put
+readonly def
+currentdict end
+currentfile eexec
+f983ef0097ece61cf3a79690d73bfb4b0027b850f3158905fdac1bc024d7276e0a12b7ddcede59
+e3601ab4509dfe0977ed5bf624ebc1f818c45f1350d41b052a72743accb053eb06ed043568d319
+6a30bed220227e2a15bacef508449221cf338a8666e92410a9aa91d5a31900a93c01ec21742cd1
+4dc46bffa111ce10b78ae01abaeba7f36cdf79a4733245c63f6d36234d6b0961f1ac295d617793
+1b9ed554bb5fc6741a63c493daabf03d753c7d2b8e8c01e3e280898f810da5985212c8c0bbdee4
+e8ab9b22bea83671c0460443ede9be044168f8ab50be5874d46660f1f8241cb261280a68ae2cd6
+0e1648cff45c0ba9b15cb42f86217172a5b855265c214d4b954937d11b94b7b98738393ce09ce4
+0802e512bea7714fe6f163d1b27c8ec87419fa91767418abc44c94a3a22f97f856b0a4729be697
+3455a7f7ae72c671542e9e74258c2b8b2ad440a1b69bc7de2e54ed6a96d0bfde08b35f6fbf739a
+e18676c03800ff3e63c6fc20927b3158e8d2cb6644eaf7831c6bf0e9b39aa14145e721dc46e792
+da9be78696808fadf24136f9da0c8003cb34ecb8af2b7de9e033545fbca53d881eaea40c638396
+c8d3b08b6e2b8f7d6188d055d6924bafb0cf7ef8bf2719495988b0efe373dd1aea97b0f486d055
+5e3a62cc1b36024ec3ada21bfe1629acf431928facb4ead9c41e3d4cb50ed2f651d2cb6ca8d0b1
+ef49d9e214e06cb029bc1a40b2052938f6bcd05f013d9ed1edc90bdea459c4483ed0d1470e30ee
+0a77ecfb585268a94a8bc6be7d28e5746525107c0a3f05fb5e34e0a2157214be2d95a46fdec2e3
+6afd180688fc710c92b27d69b2ff8b1fc7f73cd5526270e5bb585d7674a351d9bda5dcbc17b40d
+465923103f1d02e7446d949002657763c82c8fe0372afe94104d148679b4e5be01def615b295d7
+c25e24660b2a10dfb0b5b96fc02bdfdadc10afddd821fff6caf17f11d6a7cf157d3d7f1aa25a00
+cea41207c8e160663d23b16d2934ffe6a6c178d456facef20fd46c4b33f6d1ebf103b7cde86d7a
+ff74174d2d3f5820186c696b9245f97554b7f62411429f1dabebf1ce4abebcdd2a4ccc1c06d6ff
+8dd9d7f935ba5218765a81eb3c727a40dae317df89cb3234b1a4f1a0b16f88ed1684d3106c2a6c
+c18aedd3b052df1a2ea7ccb8c6c6111abed60277aaa2b91f1da4a83c0b2d4fae8cfbe2873b7f9e
+c2e9ad05045abd1133b95f70185dea97f1081565ac65139ff102004b00e1e77023782a68a75208
+8f8d8cd2393eb3f649553f0be59b83687f4425290ff1e334794e59ab4dc73b26f1beac4c5d6d4d
+507dd7d13b8721144d28b82eba624965e3d8cf9334083a6a461277026b05583f96e489be17dcfa
+ad73cc5b9c6021527879f2c194a5bb18699cbef3ea4e14950e1aa56abbd38bf509629e8a4f0edf
+0946a47aea100a088151a9e296d1b5d7688aa0b3b121fb93bd52789d22fc32d645230419d1df1d
+106a9a90948fd443eb64a212b3595a133a4a30434b5074ff14f69368de4e0452515257aad6332e
+d29556152c71240df8a6746486d28c6a1315bc5c5ed08a5192c2fd7ba4ddcd7496139ae2e6e47a
+c4971edc88a81e2056ff81081b72cec34df2e6bf1720bc5c6753ae32e31ce0db86b3aba65f2633
+5a57f2f12827f7495183427d3e861b6ba27f7157003a92a9405c8755f71dca78e6cf0730fe5950
+4cbe903beec22765da1f35eabc756bf32e9980eed40c0d1a201e12a71b63171df7ca971e36c03e
+8137e0213fe675b392ad8b3232752dd3864c82f9ff85f814becb6fc7510a1e9917bcf12a90c4ee
+29e036db54278f2413731df21833d1f8149344b46e4c3fc2fa9647e76b3cfd81b4fe88643e427e
+7f6d9b01f99659e531df0c43b4f44ed236f117bb00830dc10a5b1896cbee06fde9b4fd9b0b1384
+05a0bb83d78ca5546a2b41490f5322405f0ea6276d9a13a63b98c59cc9a0428472759009cda518
+c4dfce2449e27df9caac365a6ee3a8ac451167c806889760c404164f941d035b6a1df55c44ebdd
+a9484f4da9b07c059ae59617c0e86ffa71b9a70322acb3b6007112879946f950e04e6b634439b0
+6e05a9781a9ca6b9cbfaf508a835e2daaec957d95fa0031f9ae42c17cfd5adfb81766af25ac523
+7818909e284ae4a439b8b2a5050ddebe0dbde491d135155e98ab579904d045797ea516dbaa4529
+675a381372fd437e53f9372dae38f0eeece282771fe7c3d1e68061cc242e4640131ebfcf340b45
+3e4868ce4825067dfcc88c7d84aee3f06eb202a89979aa520e501288e93f742fc86b6f43e3bba4
+430be40b099cb0535504f966cf50fd9ba9fd358fa184a39eccfd4d8e5c4ec35b448bad9cf5bdf1
+5b729a4137a9618a5a44db7d9740a15e0da9c802b428d40ed5401ed76095c73512cb626630608c
+74143afaa7be85562aac8d8148a5e603e3b69b89706b0c1cf5c85bdeb32611221c13325835238f
+ee492e4a08bce9741094c4cdc3edd691e82d224c7866590510e2c7cccc07e11484f62d79303fd5
+59e4e511eb67bab756f30acecc560f5def3902bfb52abfb7aa48e72f2732b7eb73c0123f6dfe97
+cb69897c1db3d57ff05466c3cce4730e04e921a5e56e8add31933536393bc00b3ab3435ab95096
+5a752b913bfdff22a8e7df7bc441e5bb3a3192bea8a17829faa529e56ac69e5a25a6797615d545
+5e4b430627f9c219a364bf0c55669cb872e403ed1cdffc63cf9223ab581bb9d7967892dfef80da
+723f18e199e0b57f12ef0210326aae328882d982392dfcd40e029ad3f53dcd820b4a61b580bc3f
+1b492453f5c752e05c705bf8bc05485c5499f804a6ed2a28bb63bc7e80759003cc7ef0a1d9d51d
+ab1f785d14eb86bd9a4f4221951da58fe7263e23e58a2414dcedb6ce1943f62a65699080bf568c
+c0c67134d8728963466de6713327129138d203ab8db0079f63349ac8ea689ac7615d866b7f600b
+2e91333b61d73c98401b1cb0432e90fa7bd87d9f4fdfecbc2dd5e5eee5daa7d7bd959e41817e17
+525a472ac035c391b918d549c38bf2b2426798fc27af235a725ddff5dc79afb59198c94528a36b
+8c7cd5683f8af50107b45e02fda4c787b4f14ea4e663bbd615be5b30d6979456f6191b5051f458
+bf19c91ac99a9a8505a03abedc243ba2872c3305b81288a79f5ed8452e2a2caf3fa51208946c72
+b97e6d59ef74bd8b96ced9de45d7cf76a6891c7c0691298855a366737da9be57d98c25c7415122
+c898a1564a052036a3aa550c2bc83478c4e15933de6e4aad64b2e97c640a2e8a14933abaf85907
+f09588cb05432f716f05efe4a669d16c881dadc0faf5a704dc91f5006e512a61372579eeea5f60
+76cb8048d71a1e4a3097bc27433bc3613ebd8291e427bd9cf83c0969562d5363662f74f2ecd570
+71c4d331a26559bf3e307d0e2d1c9a90a3fc92254d2656555dbc0c8c3502985a00e705213e4522
+d5eecccc5f94af0f196501250a4200b04b491f64388f7c3aa37970a8a5bf78a072bcbac61cdbf0
+f95dbd13b8defacae1a53277fea4f19f829fced3b4cc6e209bc2616b9bd7312c87d78cda5c9f6b
+ca02595086adb6dac9b7bc6c9fca577169940fb58c818a37575de491222128989965657ea8b5db
+d96a697ef71778109a1781bd7ddb9b2132da71b3bac95f6f69fc615b7733d709402bc7fa0812d1
+8aa22fab627f91baf4a346d8f103362c0161a3b57d83856c63cc7150fa2ec1ba537a4c608bc28c
+85d388bcf4105158f0c9d40a573bab28148104e2db167ff009d34134008cd1ab4cea4091c04dd6
+eb2353686278cb190506778602b0a642d3997caa982a2b3c84f8bc97e83a177fbe6c69512014cb
+f7ab75d5a35a0521a2d1204d7877f75a8b0816da0bc058c0ccf411b939931bcbbcd1d3d92b0fee
+9e58012677b1db645c14ae63b7c4c3e4b18b890802aaa72c0d8cb771ee4e46ddb6d714894aed78
+16d7164799b70d7b64e0a50b979c3616590b871cbae60b9449d02fab57655abd48843da96359d6
+087ce297a26e192491d1cb8420d7cbf1dc66b68ab4299ed1c500ebb26de35f956348d497c3c085
+8e812fd3d43cd76a41e24f19752bbc8a4a69510c9381cdb8a23031f8c0a914db40a659a5b51e19
+fc9024471cce4e65cbab05a3562a292939887967cbe49331cb58e936a2b6873d3dedfbb3784149
+14a2b78db4daa180a4b40a972fec68f931b75f2109fcf824cc7439ea693c8c080abed27376461d
+d5f86617d1a931cf1caf206e872adf0d8b6e35499fe3df6d3833dca2daee3805fd76f7cc5ef2ac
+6f05134e8da55b15204896002803ad497e67c2ea83b2646bc13a72f73d642ebe4b1d5b00a44474
+4160f3341a84335643e58ee6c64acdfcec21bf506a6a30b70b1fce06b97b23c767e7e429892085
+fbff2996aa68e4776b76de0f66edfd89b015cc3a3e4d70cdf3bcad9d48b4e17b97f568b0f3b155
+7d003cd6f087aab912a15e88e51f6e33c8c8b2ab69fa8e81f09a75e0059723f1de598a20c567e6
+81b60e954bd6d80c7515870bd6158eb93e8af8ae71542d681895e2b32489694f090ebc5b560515
+048626f803b996baa342815b5adfc437dace01d549a6319eff57096c537c9aea7c3f8dd978d426
+24304a68ef2427dbc0acd85a26960f10e348a30cdc46e46dc16700f62108fe6c35059759fe69c7
+29edd6c91e83cd49535e16746b6dff037927de39b77eeb86fadd9ac5c89268c3c529fa1747650c
+f9e16c7626aec25817ea46c1ab2b0a7a9c7ba33087db199adf7594c297a938ddd7ad595c694255
+2ae76711f444b5b833a92cdfea0462b6766685359cd4c2afe4114d884b230fdc86d680a9b10a43
+33d68db6ebc595f86806392857b55452e44288a42f924754c22778c6d7bfc3d4337bb3a8f68055
+d0d6f5053700b784c480509caf63336c687c5bd339757008be54c289a10e62d5c83eee133f3216
+8a68aa259e8247d6afcb25243df6ca8c238ea64082265560188e73a47db7603a1802e7ed3693a9
+b7e5ed7b0332171196792cd5272b640c8a5363978a87f58b9d1022d5e7af38d1e45dbabd89b095
+eb9e581ce8e9c314a8152465a4663fd4a7ad1996c08afe96d3975d67fde3aef4fdbad38c739d0f
+1bb4584f919b4b5b8a06aa94bc3a4162aaaf01cf607fd24e90dd4889795aa0fd42e4cce9b0c432
+3963e288dab83c1d1187c1251d77da1c6602311cf8a73e16699d6646bf62cf68b3da3855648508
+edb97cf3614ed1141d158ce8f86e055e9034fcc9c77fe4f592251dca7e61952859567c6ff4fa83
+15b554ff50b48bec4d99ad1221b7caa1d47a8f430a07d49f561296a74277adb9c21c8b4ca1d3bf
+3b671506f71d8f88d37ec1b03432c2bcaa337659c35747b0eb1721073e4e60e93646c719bc4e27
+c5b5fed52f456f43158ad6ba09e9db6d0c17fa75bd7a80746258f7725116c37770e261c9bcf7f5
+78f3f12ec7037c125fd86e4d38ef23886e18f4e206397006c8c4ba0105e10fcc254a718e3c8ba6
+dd71218c4768fe0d8efe2e01454dd52ef33080a1313911ce3e0afa57f5b74d7caef2440ff148f3
+c8bbe0cb2418a0367dddb217ffb47fd5766ab6db331bd9d2779ceac6e8e3e6562b79d947e687ce
+271f8f024c5cfe61e3453cc7ca45efc6b682d2da8acedda708fc65b668e285e6f542b9fdc07108
+2076c4ec2312de40214f8616ac615a2669bd490e89d5c125d6c0d6378113f4d37f1d6a06c225c7
+b0e879746f13607c0a4b98b7d77ca29572495f4edd58f292ca28417808c8e60c3dd8b1a9d185cc
+805784e9a1ec1f290197637cb2f1ef65d1b114bc0e99a9d3070be7199f3d30db85cb3b65eb8cdd
+60b44567730017f4f851d4b15a15bf4312f79c05d5ea03b1da801149fef5ad43eded70f470e622
+81fda1df9ef72f180630b3b1509eb5fd9c73e7f02fe23f554e5b74007d6384f6255ea4bdd2a6eb
+a0310eda07327884d26c59d53d38f02b11815e8adde0804c621d6cbda143ff30856063abcd0059
+183828625bc486f27c475059855c9dcdb5831ce58532e3e6984b63b690a27373d7d5e613be666e
+d52d9f743fd3c373984fbfb8ac8040dcc222ddff4a2e1f6d93f64aabad9a286e3e07679adc8538
+85c8658e37b0efdb68fe51c09ec2b6b69735b84d2aa481793f0e5982e006d985c0c2b8d394b709
+3a210168e58688ab1c07b99b857e90523f90ea3f4f4202f7751dc55dd7cc187f4afacced589cce
+0189545f2a26c9d283b14ab2aae2e5393d416e014ad99e27f8814c0b1bccd6f798865e243bdc94
+08dff7e6fca3b515e5edd3af9ac11e4bf0a7b7a736959a4f48d4e519d069263b0af143dbf431ce
+df2ab7d4df2cacb62627ea46e77e20233ede4166f291a3a19f62271ea68be133a61b6342782ab5
+8310c4e2b08782800f48d311a7c15d1a6d3f7c6b5bf2d91cf23b931793adab17d9f085a9aecb9d
+4df2c4c50c5329503c4a8ad83fdf446b306c56a2ca97bd50f359280415f8cd4bf01817da0f01a0
+e48bfa4c7a1e85f052a03369b0ad7eb0122585bd4445dd53912b2d1ee8cbd9b7e2716166790c32
+f4e068134102aeedc6ade4d5db39ac29f424b0d5e327d081990adcfad18f6ab64c7f199cddebf0
+490b10847d158b2151a8e79b707af40ba4a38c8c02fc49dcffa7e2813ad7741ab7bb29c93e146d
+81be2a2494791582618f49aa9f904f8faa1ec63adb809cd473ea6743509617fdbf260d4024b410
+1d962f66f361d7257804e354e050004155cf050ffc6adfc28c4f742a3231c5fa37c7c826985c50
+99698eda86f0a2baefff000a4e74597e5bda20f8c36f22ddd94ff45e16ac91fd250eb9d8d0971b
+c4bfda5b6c0c14d850822031fcc8f231023a579c09493ff2ac9f72e81b4c0eaa64fc3401b7e128
+b2642aa708ef990878091956a777d908fa0c4e1f2da3363e098a28b6f141ef68258e2f6ae3ac08
+9b3b89de4379a0da96cfaa81a7fdfae2fe9dbdaa3b21435793e464baaa346a722c385e71398949
+d32b76c6cdef0b05c752130d43ebc45a1738f06281097150423f885470928cc1153cb01b2295df
+e17cb19d3b4d576209425a806b98d83e80158b67120d6ea0a65d94582e248d3dd8ad826bbbc00b
+9b9dd0f4d606a65b1a0ba8eea83cff745e222e6f4645055a9cbdf1d99160e0e4854d989f07cc3f
+393f72af97c3575d6f1d8d4312848bc72bef988cc436c23f4c6a2a5569a79d04a0667611a3b0f2
+e2b8ca0a6ce0536b0e459e21dd3d74d8a94be16cdb3d65a6534be608688944c0d68c62e3989910
+4ad6e587ec0f3fc097ce54d3e25c9f081dec3be6c71b714b9f92c15517dfd763b9bf0496d601fe
+4690a9a815e803221e007a7ca74743f679daf6a626af5a6525b394731febbe7cadb5de910c2163
+e640acb041736fe4e508dcb5c7d87d38e12ff80fc903c26c480b567f057b193f5d4ba352697b94
+81d780d94b815a7d96ba6dcc34e39f43caf780d101bd73488a88d213063432f8e6bea7e7248d85
+ab48b576ee702af9364c81f7d5c74ddad8315ed4345444e0cd92ea23b4394073178807892d2925
+a6a43a75c68881385a78d9d5582d3f3f8bae87ae177ea46dcba9af17217906204f751a358cd8a4
+d8c95ca76651271963b6d2ffdf282b653c85ede30f9c8bb5f113528e221aa1a6507364f74ecae9
+22bc09e6c3f42166b2118a819638a85560c6e1eb7bf2893357a81571201a2bc31a91ab89489fa2
+050d353039a7085aacb83609825ae7392a84b6325bbf17af46a9a3eb63ad14bb387987f6d756ff
+c59a2a08937538a0efa89ca08f9785952d2e8bbba0e6023ebb8fceb5abcc3c0c3c1b980255861d
+991fbf27e70686fa238e92ca9bffbad61bfd48c5b8e8aa8fde96fd9acb2d946b69a51137c90595
+5ceafeafea0acb8a0c561808ec2e0d4fbacdb7ef9f9abfafee72f759e8208559c232ffe5bf6cd3
+e7cbe88ea579e795455f7c25f434345506d98be333bffa7f7cf1f83bc00e38d2503ceb483519e3
+b1e5cb7751c00bd2a13c385e2f88ee5df92086b57fadc621a1a539ff102d4fc4c075ab1d800eb1
+efc6fabdc04f81065f0ef3aa5b947d904410962f6533c1aa49b86178ad45e35d44b866c938876f
+2bdf1dfb28d793bb5d049df0cc3e21b8ae8f9b75ac06f00759d48bf39c61125641612bc6032f5b
+6046d85ae9c7102b99b93f7674e80f96a1d74c1368d2fdfca6e8535a9d80fbaae20d681e1918b4
+af227270f40ee97fbaad4a4216908272cd9767fce64130744d0ac38825384bd51bfe19a150b55d
+d390020ae35929d4026d4d8798cf2fcabc5ffeb88f20129ff22baa1bf3fc412b4042345545075f
+c332a91a87c3ccaaba8c201ac784fab723c1371991d5a4c5d865727dc7170d876a83dd01b10c29
+4e651e39a2d3a7c7de70817b0508f612856ddff87bf404f4c750437a96608c130bbdb8dc140510
+61957ec0976ac3b58e117b85cc17f7be4dd59a34a81ecfea08529704d8cb73176ea03c1d873f0a
+7acb41d533c8d68dbb3d9b879448ed2e52a98957c41682fc30a002015af634229c4d5d6b900586
+a0a0b06b1fedaf188610cc3bfd97eb4261460ce68154b3a5a19a218bbf3035fbc6477889c2be39
+7cad1e44c4fbbf3260bf85eaea01ca97d02b4c366a44fd08be6f197df8243ca699c2b75b54756a
+b361115fcc5828dec91dff364db969960569e59a1c3fd2b76b4f88fd9309f8c9962d02ac778dca
+69f07609b0b9961ffac6d942943cbc2e3682879841df4f1d05350302cefc029100f934704dcec7
+e3f153871533258ad2b5b5ad89d153f53be6390ca66461b84fb405b4722d3e3a205ce3bf339018
+b339f240c4956edd92e16ed988b46813e5e39533804efbc6e426304523b82073d9f296b3f8283f
+12dbb66157440222a888acde1eef4dc861f9e8d0e20c5876f74e99c1dbb0b5fe81eae326545e84
+285864f90353f9c1c21c166deafc24ffcbe1a19522ac8cbabf3bb73c36bda0238a19da380a6ba2
+63cb28f99d3643ca4f4b21ebdb9e19f1d53947c8f43a22320f8eb83f152580d83dd6cf230e30b7
+4d2f0bf26d6b621865797b989714ddc45136974dccdc37baa1a52d021544aab74521e9e2ef0607
+d951b1e4cbe230a9a1095df65774af0c2a0c0f1770dad9e054dc06c81d30801a927e525afce8cb
+8d753bfb1fc2b5d967b9e25c7cfa39bf6fb86dd482da0d871d5c8725cac7b44dcd5c3059f39a4c
+b216177100c0f99572ddadf8d7d53733db55286717ce9ee2a12357b901b675c566909a0b4c71bc
+bc7bbb7d36aa72a7018895b617ed93853602a5fd52daa01da6d6e3b713b7fd9d6f75e05f218572
+11d6ed29349ff0e628c26df07d1c079e556ffc60585ec8e91f38c9b4ef0a708559b4cc4155ff42
+c48c18731bd231b2dcb32399943e3fd64fb66d3011cc85e9fa20e28c741303d5b1f3b7178753cf
+97364716e6bea337a89ee47eaf9b93f938d9d10d82d4c0e3927af3c34927fdd5fab439d303d997
+637e2d21725bca942bad146e4df93b37e5a38e4da57cb1d6e6e278b17a82644c800e6104eb2518
+c03ea9b8e3f9b7611066ef9afc58b893e3fadc53835440a47d93c7052ca4b617c1d958c693ceb6
+0f9a2814cfc1b4a24b32783b389678bdd14fc3ea2124f124afc5ed977097af7a1d3a4d825c55f0
+842b2ac566e43458495b6f51c011d7e78818f6d934203a74a961618625a380923926544b7c13c1
+4b2180f3576cdcd4f2140bc90b2ec84f1aca97f147781866d711448c1dc8df1fcc1a1769ece2ed
+5cea053795c0cbfb7204dc61065c87be00d9c0527d5df881708fdbfb7fbe01a933775548eefb73
+6d014a560cdb4313678581a3b1aa73d546869301f309f189c2df29f3d4bebb3b5a72046354c2ed
+d273c9794c3659bc72fe7fb7442e75b04fc197a49efc2ea39ae0b5d1dce9bb509b5085445a66b6
+a59979c26412f1d6f5ebae84175ff08a90c9be4406797389c439693e2fd2f2c26d2e9dea41c505
+c32477ca50fc01dcd53d388e27cdfd4d73c2ac2fa03b9eb934479f0419ef50036b682c9ad8bfda
+a3adf80a03de9f29b7021cf0441deec0f002fab57da0f5be89f5da4597a2523a2e7886589002e5
+cbbde0356b391148b5502eaa3b3689871a1cebe9b8214992f5349ede7d799a57b85d1e2ae706f8
+567efcf24081165f53810a2dc9568a263f69c40eb55cf31782da10dd970dc79f6593f1cdd9ce55
+2de6c7c9fd3ab21169a2e487d5fa959d659afddd071a0d756b5c7debd602cf9ad3e6b3dc3f29d9
+54cad22ff28cf333ac67b8793f01c6f13c4ae2b6732d60633b59c2d9296ec77b6ee630906adf73
+ef86033317cf59b6ffcf42fd7a68133f0673a5c91b8e0ec7b88872e9ac8d0aa904af6000799d57
+e1dccb74496e345dfea868ad7498f3ec7b85558a1fefb6f03c7d5365cef02b044b220c162c530b
+8cc899887f8846084c7b4fa1dcc631ba3a3773fa22443097b47852b119b42df9d58ef3d55ca10f
+38b04f378562b3bf03140e25544a77e66cb9589e6f9dc0a11b6c2a35fac32ce9bac552dc54270b
+fc025baf639b8aa5e3dfda4908b869969bd633a9b171ed6a04a2ee6e3744d7a348cdf09dacda62
+5269181d8d0fb84b468d2eea50fdf69324bf64ab1db3ad0fb2fb9583937f0be8b41f14a751d711
+5adf2d329db753cd14534cc282f2b4a4bf497a4c7b69cd25a1fb33c5e91796b885176284c77a11
+9b50b077001b566328fd23170e4ae611e3426fc26443587e3982cea97c79fd63a4dfa95efee48d
+d81f90d67e40f283c27947d0f0823d2d2d26210e5243d2029b2ff059336b57b9b1334b0b615bf3
+57c6a732c8d5165f2c9a6f310e48a2e4d7dc965887b45c14c9b744bd98de8f33071f0dea693ad6
+4a55d03b2891660d09775030eb5c0e6e868ab1b90028c373d3448851e225dc9eb442aebb5912ab
+0f3b1107a7d96f9d23983d8a6cfedd589e59fd355ea0aec2a448fd9d254d39331cd80dbfd653ff
+fdb2702cb848144c33c28d207adc51097c28f754521e715be8b7b14c4f86aff04fddb0bd52247d
+814192a884e5af3a8f675cdf0c9dcdee0668773c3a3673af8f51a71bdfea19d0bde8a2a2345316
+4edbf01c932db93128b686cc6fd9a1dbd506b6c52664c5aaa01901c5ac0a8275e0ff4ec66ae332
+6dbc1b3b60c4488b6af86fbf30ddc1e3e3a8d63d7682c222e74605c95af3327e694f3b3c160008
+3f9cc241f97c5013c9a0588c715eb4dd00944e824e43a7a1c1fd144d1098628139034731eb1cbf
+633184cb857a17855f277bbc18751799ae28f48130cbc1ed559ab1a5abfa2576d59fa35772557a
+6fb3d15b4ade8bd38b763be0f8d8166613cc37dbcec1d65aa06c7b9f171028fddf8b55093a2fa5
+09ce882054682fcfe32d510012ef5ddcf39f0ae5ade25af279829f8d47b65b89a40a71ab70c2cd
+961aefb7004d3910c190bf32137e4d9733b971db4616ba789c741efc39c26540d3228884b4bb49
+0bea1ab957682d250cf95e1d41c116623925e7778755c11c654d42dfff1db2a49c5b57c3df98d9
+42373519cb02f367598997028e11c513a99b4abf115c61e2daedebb709068ce06692303cd0be48
+228918a12dc126af0e4f81766acf9a84526add4d2fa145cb5452c09547de307b352e141233cd8a
+ea9f965070a2e6321a795f896c0cebc01ce3a15a81f14c14d74aaca4ab090125fecc310410da79
+bab5dbe07e9eeb2189788f491c457a82abf7f79f427932c8ad38466431e28659056c3d5a4be02c
+8d0d054bcd4f9170aa7b7b0d2e9a4564af66eb7372fe981bf441b68cf8247d11fcf0bfeb6453f9
+d2210dc880b9b9af2bca1dad558c1be18eab687f453d4aac976fb9466a6602ffca1dc852a56c50
+556d777258a7bc26489789fb4fbe2f70034eef6174244ebdcf514c5ff72391d097750ac8a9fcfe
+6c94af17b3a5f2667ca2a02e7f32424ad5a7d902751f7c41c9a7fa5fae2d8d7396f8e586be8ba8
+f960ff3fbcbe783e5ece80def85cdf792e33459d996a28775979b335a8448523c0a187dd8f3c08
+31231231f2a158a7b7642593932c9e0dce8892ae708b9458993d580656e1614f2d076f256a680c
+cd3d370e37cde46dbaf38f096b032170759ec0619cfa0389b17568017f8d2811727965c75eacb1
+bf1b179b69567b0ed8bdce2ce95e98ec7a9a573a79ccd5b4990e46d517324a06ba418b34110fee
+abfb71c1e43cfc1650179fc1e5f65fef017498b83a1eb5fb5e340a1b19ef7f10fd0422f6e7f640
+db9a46762fbbaf33e2eed637ee9d93cad018e33c4fc821212bb0f38f2251827a46f38c38c128df
+a891f0b8ed14054c651b735837a0f862967c3d39912e288dc3939816e015e8be9ba798f68c5e89
+a4184aa18392352bdb53119115b1a100e0941b80fb8017dd198c7d0629e72f27da2d8ebb59de72
+ee46daa03e57b12513988f2023484d9f0480126a378ac134a75c2bfdc4df5b8d8fa77ba3fe2da9
+a01ec9427a00487b3a81b50a118c528b77c22b57265e5f915a063fa3e8bac0ff7cbea9ddb19ab8
+390775df6049cb85921457cfae8a868bc6584a60223fa19a363f98876ea3d1e8a69337a58ffd75
+c9b296ea5485e343c04c72a53945e21fb479495d4686302f39188c01b036253ba0a18fc87aae33
+5fa522a435094c3608cf6e2e37fdf5fa3f59048fdbdbe6c58dabafe941a7af5aa4ee7b44d64df3
+74780e9e2d691b4639e2aaef8c52de72b51f2bb6506e5e98f8ae236d183c9cf250dee46d102d96
+4aefb7b82ef32d19a03aa88ef2ab975f04a6cb5208f570af43f73d804843404eb835e5efe3e348
+87a37816ed3cb02b13e91be5bda75a112d1d27e92e462ec516100ab117b2882993af81dfbb58eb
+b2f5bc5d5eb98e48f73e88144889677b31d3c660839854a5c611a52bb493b644553e6948d71f94
+f04eea57f7d458d7d78bb278d83065bdd9097f252d39a9ecfb408f2229ad5edaf4afd518c80421
+4dd2458b085d7bd382c7a1e697b5e0c1a47c25e2cf084d63bf186635783b56e6b36e7da64e3f9e
+3e7135d74381d957c0c62a6d2c4dda1c21a8e49979dc4946c3bb84680e4386750d4b19c4011759
+d84f90cf31b268f0af056d8566e84939388ff4cda569118ed71a2cd82d28b44e17c84389795a43
+57f70f976891292e15448c74ce895be53e4212079fba23793f3c247827b44f0e39066964e75671
+9c628e6bf4a5f080de8402d5d1c154785564e019f13ca5b45b525b325e29f193557770f88ef82f
+8d7704631969d4ad624206665ee1d38d7ef7a7979aa05d39528beb6b7764d88da381eb63f0cca2
+f797dcac11011445da21da35e051c1db3da576e698451a0675944f5749e465faadfa4bfb09eba5
+177ce8cecbe67fa06b74d75278d7f28c236a596a17fea5467785f345197a43ec5f2e1b7e7e2151
+f287ad9181ac39c9771a1713f45b5ddbb402bf674e3eef369647bbc37b3afb327576831021a1a3
+8fc4840cc4716da8026d16fae600d543a3c4dc4d7cd5baf19f1db2a24a0757ef6c3bd8047288c1
+436eda2bd3f9289e6f8b003dead7b0cf49f3aa8a56adcc26ae300976e1c84bfa04d9a1887682d1
+9ef68f52b76fdd0e03f64cc92dbb3ebeafbcc56f8a2a99af870bf7f0153dde4202ca45c530a056
+2dfae59234f4e3287b93bf427fcaa8d236606aa43aff3862063c0bd73dde6bdd3ab4a8c4d6ad9c
+24da288dacffd02aca90dfdc72444c9bcbd331755876f649e4b665d69921097c364eb8b0562090
+e10f4d719b2b5afc9312ed39c77e91ece761c6c940133f940a74e5ce3c05d9703556d28a583972
+7c54800ad0e496885aa4052f65813ae552e8dce8d6f73949d0fcf5059e85ca8a1c137d751c6b8a
+87a52b198254d01258074227501dbe50de2b82bd2510e5788c46ac997c65bf44dd6928ca9f7a90
+2bb957e277e7380123cdd93cf75dd6c7e5a56f93f114b6e46e0407d3ed544d781ef6fbfc704a03
+5b7b737eb332457977f223d87ba6e3dbe827b4fae9e687f6975731d42a8977cfa67f94e90df98c
+a790e89713dcbc07cf27ea8c4584cc933fc342e5c5e740ee920ac3403d4deee426d35e1062a2cc
+7d5e23f568b49495c8b4556a8bbb0480ade618566f537b440ce52ff7d2cd89fc806fc388e9d7fc
+8bf15882a38ae0e11915ab03c272c8a312094938b9b4282ef3a321e3bd82701a50f8a4380fb325
+33cf4a100b0f96475a0f12fe9ce7e6a41784fe7c83f05869d42b70febe4f60bf749429bfc4721a
+cc4e17a961bd7da411471edb7a32f4479f2f079239c9bedcceaf35119982d686545cbb1eb0e9f4
+29e9dbac1b743d28d12c6ffaf8f98a3bbd60518803d997a56bb515602dd3a75f7ace8adf16a6ee
+79233fee1d21bf40914f29521638aef27eb796b06b5fe274444e0833ab9a79bddcb334435b815d
+0af72964e8cc297d246c6bd6d78e0e8394d8359084963b01416db54a3e3a6d9784320814c4fa99
+aab6c4934b76a26c5e014d3fd202935f2f9399dda83b4d652ab89936578ac2c70daec483f69422
+b25472458417b87f2861ff90aa37e45c07ac19fe09a4c2d37c917941f01682e650fce1785d114a
+bd5949ae733bdaaad98a802437f465bb7d2d1e0d4118d6ddc9aee8e08e606d9703c319001725da
+095dc1e3a421f0c5315e28765e9571982039d5313efe20de55e7b614184c4a1e4eaf4a89c62331
+c6f2511d706c2c4248c626e6474c450db1838f1d8b264e406d6f85dc63e78936a3f7d84baaf49b
+bd3ba15c58fc4734fdeb13d1f1557f29ee53fdbcca5d008c60f868ab756608ce889de583309a30
+3cebdeed91e7c4922526f12558d2e751ec11b3c0bea88065ab0241f9d1e4c6144150f92f917b62
+9295da2e8433a66b4a6e6c8571b684a675af7e77cfa6723f82dc6ac13a8a568ed06a519ea0a272
+5cdc99096ac0ce941b93207ed3f5991241f709ef7f9e8b2acb77100cf293452a1917d32c2f2a79
+8af506a827be2d3f3ce87e3d920a0d8cf8e98a4bd3bd99e12f4374e0f6ad25af32793c5f85b77e
+213c7805156d53eba08d9a84ba43abbba8202d43091436113d930a138dfdd15774397f496aea91
+72ff0302555658d3b4f6926fc115bf3de066f2d3bdac9738ecb824713de70361c91374fbac965e
+d71ee2aaf3a27a9cc5564dd26a4bf30dad76ec5f955915b1363ddc6bfb706b559fbee46f6b6338
+dd6a07ccdb23b33b0237c8f0a428fcbf6db62fe6906e4a593b4dfaff151b2cd167951a70f53539
+4d84b7ad727bca8403cfd661abf9a72ca0634822f0ebf66ed148fd7b29513eb151c8d76ea7b749
+02d76ef7a88d5c571873bd219a9f7e60b5d6b77bbc1afe19165f88bbcf45cffa773fa9379259c6
+1a930395ce89109c5e3a14066dcf9dc8387209c84273ecac6a6cb033d54cbe4451036b0b5335bc
+4b3a2c6f6a4395fdecf9c1b88d3b8840e0a94b0516c5821cdb3b15aa06ef3fe3a2c4729e258156
+fb7ade7c1b8f673dc87a8c87d6229df03d88fdb8d7e122cbdb3c8e9eed4ddd03ef86bf2b6fb140
+187441e7d3ad4bff4bb61e57dacbb792e9f4263770c169933f99eaa94f686169ac46803bf6324b
+8498c154ca78482224ad28253607ce99680a755c573b8cc5bd9840b2c8a2518cfeec51a396ec8e
+3b6c3f980a3896feedde1a0605ab8d7891736e2c9502b5e2b3de8d76da62afee99a77e1b079bf6
+f92363e8a5b6e605245952f9cb351206b65eddff62ab5730b81d85311489f9b4f4eb4690844b47
+a8a2cc0881180d3b5bb8f6bd73afcef9300002c1680503cab52a1c6c10b038c312a0c5e59c6007
+2d4405937a8776bffb1c07d0a8761bb4aab03dedb634ce0192bb51b07dfc815073beb441be59d2
+a5b29a64e559a0d0f33022188ca9e9ee43530036e15604ac28bb7349b1f6b57ffea79982da0f9f
+ef3b0447ce31ab3bbfc0c03b7a421a836b8bf793fccbe963059de30c4ec0ea18bd7f3d00ceadc9
+e611bf4c1376a64087008b5941734d404646b9f698dcae3c906f2208158f670d807d7ac8509a38
+a95d16679d11cc23115fd80301e84f4b200ee160fe96e54346be77e24998e679a0e1c0579135af
+c37c68c5163028b2c026f5d22035539795135e468f192814b49c4967e4873799ae4fccd31cdf23
+f754ec82068c2448ee44a452a0b4bf877a7c420006ce3e9e032d830e2bcb814e447b01473cf593
+3f6d82cb74e6d1d5d6211484ff1ab6add9a46397b42fe3c7b7cf6357ccabffeda61f6aeab2ef6a
+84ba261f837fc8bffdbfb3ca6901c2b4b29834e08d4d45a2dd4e8a51c229d30915ec1bcb1c5486
+a57eb7490c70c0dbfa01fd1c53c99832c7e26e50265f54b8197a0316d30a5646f6e4a71d475e03
+460d81e8b658327db8a1b1437334d3a907947b2c899e4a53ffe9e8227b2d5420ad4109b2b136ad
+0292b5ccaa83556e85b2018e629113c3e0d4d484bff995a484643f661975737cb0eb80f2b1ab31
+9b1ec6251c49ebe855e2d6ea533398f9b3148316210b46ed555ef68a949b73f31a4457f4558865
+4bf21d554b39eb23850e3a10c2ae0e7369c685641f6d8f43936c9250768af2829cc655bc027fa6
+40aa14b18a70aa3a7552491145e6a7df0d81e0b7e1f3587ff086712368c48351d661add7e96a25
+b33f9f1f777cbd3ad42b6786c8b0ae23f5e61421a0b660b7381809f13664aea3067bad45ad8451
+c40e07f38f9b6185867caa2a9ddc8c37647c6b6a77d281185db7a56c39cdab0ace10890f5c0d78
+07fc420a2d0948c3880dd22e0b6aada2580f9a635d12a305a89415a24ee12b834a6d01e9f1a756
+b492f4aab442368cc18c700e1016014b12e2ca27f141ac3084ce37b42a4c41d41a3ae37aa2e400
+28aa8f3dd3f0b80df124f33e60d97ee975dc98338c7d2290544d8da601fdef3da00db855237a17
+4cd3dda0a9a404c749c849f5592390320053c4de8004c650117289b8f0c44cbef09e2fdae18a59
+3f2c7ae524cee7e3560e3116bba293c02937b0e95fe22687ee328feb89d6738ebd1604031d248c
+eb6a11f9ffa7b2625d3ad21050df6f25d1bb4f3d5d269bbaf8d56d25ac40905ba0adab22ccfc77
+33dcdf3680fa85a94f65445951e960e817427a9126a9c767f263f324dfd34841554bedd86841df
+ba7e43986958d688da35786f0497a6d04fcbb6eef0d1e8d9575af1fdbeece6cfe66c574e615834
+6774b185fb5c4e3bc71b45b5202f79210579b4bc35b21f60843b811df3515cc0d81d665e7eb018
+619a243e72c29636b8d9366166797292ac7023cccacc9401999bedc5920fe7f51458d13eb772d6
+500f471416f079bee7c9bfc25a0858b10dc043cc9a219ab9a71ad62d68ba22432e1dfa7d7930f8
+73a9af0ceca0cc4a4667d1102a8a685adfdbc5a1b4cea2e9a94d1766ccc8f9e74213876f3d7bfb
+e0950006b11f656a37641f9cfbd0b23c19dcac6d9c2b5cf0e38d8a58ed42c7d37d88bb9a96ad28
+64fcbc6033bd464ca519c9e8b24e1033ae844ce27b866f2fe38b09d4a262867f4782f15a5a0e76
+2f76e1dae8062ba108e759c6d8f00ec4da4b4bff0e3b22b22fdc733b708e0c8ed1acc316d8677e
+488adff3fd5d912fbee47a55e583d814d6a77044767539c2a1b964f5a2522b482186ec9f957684
+f090862afac4707e5b48722a97df0d272c713ba3b611aacdbaa0ed665ce873979c55cd6a9dac4f
+b8aeca0b0cb0f6fe85e7c97088ac6f4ed2bce9a0d16527d001507702138709bcabdb694a61da95
+692e67999aa628b73837f53ca6892788ac702cd6eb52f8c79b92c866213a6126049797a48454b5
+3318cfdebcbe1c50fd139abe01c30feec51f0cb7e9d9a863250021dfe7c27786e88b6baedd48d9
+49dc481684e3faf67ca81ee76cfbd63b547d7a43f3ec9ad09b1bc9e31462a43245f40ee9f0cbe0
+70805a1abf940f2ed8300be39fecb86120ec4b0e680d890903458cb93153fd2ed736b87307aec4
+beb473ec4935bfb0b8c01ad84dac20d13b997a884930e3c6abdaabb083f6f66c5b936ec4624fd1
+d1ca39011688ef21faff4f69b93f7fe73a7ae036c3d15f6f5da6838536f3fe0f7543f3f9460b19
+7a7892d6424ba822cdcb26e2b3dd7ca75ad2710b9ab49c6d5810f68d1a0426987f1e462034ddb4
+aea10e8e04be42ea10cd8552670f9251994dd8e844245e97a5902b65d08fd41013de3f3cf0cd6d
+fec75852ec385747f789cb0d846d0d8f4f0c823fe8a6202101f2cdb1811cac9e719f54bffb04d6
+46ebf824a17db7d78137f4e962f3fe6a19fec02697503d1f5c1a467799d2c347e8f85395eb9bd6
+3f4e6a52fa05d4a3e25700b4de22c41d97c719cd5a7576a3dc797c96bf68c5ce7922a8fc928d6a
+a344fb67d4115cafa38e82f75f621c9153f7f2f9e5ab5817e000d5eba9a789eae7831e1a75a382
+c6181a130b0ae6aac0e5cec25c567f1c3eb72caeba74fcd4ab5da3b73412e76399a56533ca6044
+f2c2df96153ea47213cdc057e3cdfc8923b80543e5c5b226628dc0bece91e30fafeb8d4a860c90
+021c1a996d178c6c85e9be45f28edd3fba26d6ef2e486c477670a17494c453ff09074c083aa8b7
+4de9493f207b555c56e72fdb8867ccac10f060675e0393d1e5c6b2f44f08458dfa45cd4bdddc3c
+e3aeb5c7afaa73086cc7399ec8874f529e4af63bcb4df147edda137e552ca22f45ff9fa03ac41f
+724b870d8656fd9bb93690eeb0e7df81e6957e602a0159ebf6692fadbc46c9ded8ec229d9bb5cb
+617518127e557671723dd8768b1ee594ec29c4a096ec4fe6192ec5038eea033d0894c70de3920d
+1deac65b4fb001ed0c851779ed7154ef5a848257c973c7f02aa72c1067dd09b13575a33d313796
+9d683ebd38e8b61cf62fd3f4e3ce98c266e088aef330d9acb450ebbf96bf63600e83f13152eb03
+53801d2fca3e18eef4f1fd438afe54026028dfd703cfce0bca12b0d2fdba236918d27517393dc2
+ebd744f78e3dec0ce74805418f1a93252abef1ad71acc1809460a8dc42380086a593b8167212ad
+7ee18288d203244dd3a2025b8449c47021ff7620fb89d3ed41f8547bd5328e7ac7cf5f0ebfc314
+bd4afa8323d0cba57e98058af91ff4002edb452461e95eb2bff94e464bed868dc3014915a91070
+4c5740a1ffe4eb3caffe27c199f573a2b8310ef7dca5dd1baaee4eb5add21887d9b65246d93e36
+a72766e664b83245aea45114ca3c11b50d51d218eddd1fdade2aeabd385ce371734446745552c5
+322e029c892e227dcb3fd626cccdbb1731d4cd23057686833fc20906fb3640b2481fdadf09ee20
+e487556f5dafb429d648d74f57c8f6aa04f2ef121df2fd850667df1668f97d7216472070848408
+61f2627f31e8858bfe5851c35fdbb4a81e41645ceac4873fd2447ff94ebe8b83636578eaed2be0
+3bd8f283fb6832c10a917d9ad056ac7ce149186b5664cc52cab3939ef44f35b43bf33cf06416fd
+ff848179580a7c39732e7eeffce44f7b24cfb288534f47163a273f2a5d9f30ae802af8ca1dd90b
+b7149e3c3a3082fa471257bff78019380b1ac8238b735666c2df052ea0b436789bee7ad5dd407e
+9c20774d5ff3e0af9187e24065dc9a119cb8842c5f37421d005f27d787a611a8f52ce76aa34ee0
+ac7236905c28d6d9841415387be7eca5c533ef618397c89f3df4cb86ea2e38ec497e380efd1274
+3f6bc297629e86fd88cc269eaadd0dd63984e253caa270ac816df54077f7981cf1f1d5a77aa46b
+7538794d9d414db7f7eda8831fd123f843b4b6a963648b2f31696932926626e040cda63af93f25
+d4a6e304d3b05c171c7186f5ba239f9e2156a0e9d30fd016aafff969eecff0111120c07706f095
+05359f63199c3e19e8142bc84b7efccaa61b1f13828755bf18cab9eb638f17c3f20342f60c1e18
+50332c16c8d21c2640dbb93652c7cc6469486584f2e036160ed2334c5cbf3b343c9c20fb460fe0
+492ac14315bbe89139796ad76f219f2f78aa252aba529db54863fba815857b4369dbf510ecf4db
+2255912af8fb0a1d7c1a2d176fbfbbff0182b969c8b02780868d2267b49d78b449702c46d12673
+19d79a101cabf6afef50a912b2fcb8482539e49e919f3b1270599e8ccd1becd4fc4b973bf1d412
+764dcc3013c707039fc5db85b8c4759f7fb9be1fd2fc5d972e117af55ef2586b4441a440f35084
+0210186a5ed1e4019761f7b460cebf431c6d564322cc22362d93433f843166133fdcd079db0f03
+591ae83885345c227b918e762e71db2b5e86653898d20f80c18c7f811797cd7f4a0b3c6c5d3289
+c5fe808a7068f3d19e8c4ae145fb822d59d2344bd47dd56fc4f2c7237119a44710846bae73c9d1
+3db5f08114ae8fbf644831e81dec6206d933c007f15c0c0ca65091a451a3f4268529df3d047f8c
+04bfbd7d7bc02b76fd3aaf76991f6f0b2b4b6a4fb87dfb7281a260920f79aa6c0cd16bd15de94e
+8681fc684280948d6279ca994a078a261860c868d0a029c70f80903265db27ed97912c5a80e648
+aa078a321e5cb431c0bb2a9d21e9929a4ff4b1f9dbe980bf7ae713f76ba86fd6dfc798d7488b11
+5e7c30d1068322010037fc6c9bcc6182df29c66b2477dc0197f1ec7f48a7473b80a284d917378e
+89b79c9aef1e975fc3edc7c60ba3afdace73264dd561ad9478a3cbbf9858978620c79c09d660b1
+048d3ff8044dc2bf02d1282e396f5c6298c30f3116285c16d3262630330c4fea515f629d480bcb
+aaaeba211aabcb932c2c8c9cbb2d48092f69f11c221d9ca068c529213b4303e7db0af9ea0ecefa
+45fdcfa5478312aeee4e7ab6d393b8b578cc181bde18d1386eee5ecb8aa46d9c62eb8dac91fc33
+75f93917170a43c2fb48ec5bf00d15c5fcf1d55710b6801ba04b406ad183dff76e19ee9526e6c3
+8d5c2b084e8f36b7a9b168ff8d2027c20b0d79d120a0785a35f93ac1f2a7319c65e68a4abbfd0e
+e8a3e9b14b3c5f230482032323b501a82424aa3256af1f7b5de145b16848b9bdb70bccc4f83c23
+1aae58de03afd4b7d0c7cadadff17b2dbe285300606de214cef1c6241d2f2969f0b9741dc34d8d
+fdd30331d8fb2b12d3bffc004ad1e9bccaf126e96a5e340a89e8a91a9eb19ea03d4886f768ce06
+3c702f25f5ccc8f473f3a4b85fad95d7a92d2e3318f635bbd79a8a4eee3f1208e9e69a7d63de37
+3262d38eb8ac6121f3df1bba843a961b5d3e7f8735ff641ea99fefd347df900b678758080fe745
+538c9d5ad428839bb6840d084a49b2cc475319a99b33a178a4b4f24e56a9c2519e8c010f81de92
+5cb895a446c87b63ecea312c8b230151adf735c6b7b158a1d655e44e2f5c77c2b461b97e494dd0
+98fdea07d1940427d2a3f2585abf264bc4edefada3790a85e0889e90e45c38482909b802b8c4c6
+78e1129af4382e479e49a9e406e7120b85955936ffd8a40f41e91238e4d11c7e660b902897e974
+6f9948ec29ed59c91597ab7d2137149edc67bc432e470a404bb9e6b1f98bcfdf1d49389f828e3f
+35c203a3aededd8d4d3e6617c959d5c401fae6756223f2ff5b52134cc2804d20bb08498b8d00b0
+660fd27b4511a9a099a8487b7622184d781b47453611484da293aaa6b7e8124785991f755bbf68
+9c4cd86e573f40e4f9cce9ffb6c5a84a419e32002acd3392e677cdc2883bddc975bf0550a41e7d
+5623d745f389fab05918c7cdfc9f49327eb8c4a59fad6ba52b0f075fe0a2851fde85910cf5cc95
+90b7d7bea3a1a8a251e37f6a20205b946b01da9adba76d14506850b6e634ddfdb3c853739461d4
+28ac3349438634bc2c4577fa2a337990eb7bec05a6d9b90cfe70856680d5e822480f77f580c3a1
+e82b87dc2c2c554235da6133e79ad708786a8fbfc34d813f4e4330afbd5e03f7ef0875a7a07aa2
+01c7e71ab6a818afb9399ebfd88e1d438e5d4634172f2f7000c10112692c4e9f0273a8db1c559b
+2e8d66fe93521514d2896b7321372d441e1e7c63edc272b30b6735ae53ac1b08c352aced8e8e56
+9d3d3dc4e7b79c9a58310d03ac8d2760522cce13bb95bddbb22a13b13cfb78bbbf43cbee6adfb3
+33ea66621a5616442fb9eb4d5855eafb1573075650d05b9b36e80e8ee6e5a4115aa1234ef0898c
+52ba94d85072c4da759dc246ae56ea526be02430ffa280c4052cf73d6eb4b62c3282d829291772
+63931d89f27b1e1dc8de5ecabd3e348ae919c983913e6ea48b21bc0827807fba233c132aaf170f
+20b33ba72160f184a3df9b130e3bd09301e12d0b22dbf56ce6fc87ce156de4377498cad735a6f5
+e57840ebd7706ee44c6b44a9bc0120cd4f50720ba4b4f4002e11db98d7db9a31a5c300d81546ef
+990481b7f9c278f0853c05b0fe5ef2586b4441a4218a64a07ed2bd6c547de31987297af9e99f16
+ecc361ec2650cbfc0ca9b55cb8f5b11408d58fe29e46eb31a0537fe757800abd0f34398cef4e77
+362a140d3ef6b00e83e143656b00cd218db158d44f5df1c5976fe708f15e32642e629645f1dc1a
+3d22742637a809f2197ff9a60d1f58e74d0937f8d8cbf0b0de616809d91cfe77675bc90ebd5cd4
+4fc09ca0625e8cd6144b620bea2183744d33c42e535b4879ee3fc032610eab99688a6e80081516
+4ce529eab33e85cb2a84ca3cea8074039a5b0b9e2065fd72389d02c6608660adcdd7ddeb2c4feb
+5a32e3276025f5c3ff65bf4b01473897164745b05a4c1e1dbaeeb2506bd306e266e613b16b93ac
+0f869aecf140786a639f9856d2f47dfd448564cd6067590cd7c75bbe8b58eef67d2ea38c965e69
+c090c242e29f12dee8b4335b8ecf7ef341de3a30892c09ef87913cf5147ae0cc255e05eb602420
+ae22e8c2754976dc6ce94fc477f330dba72728449d459b2ecfecec62d0be91a9397b312a7d46b0
+cb7cfa2fc664397dbf9a50bcfbc63ed6fd6a7941d36a37a815cc9290c79fe24f19d1a5c1cf0671
+a73c6c22abb9525618c9a3a9909f1850a9f470d2fde679c254bf516641ef96f46574633a94bd7e
+c9890023100e55c6a51f1124b3dec6a7fd42f63499a1066d8d27a25819a7ca1a979e04a8f1fa55
+d4aaa3eb05d8205cf93fe5d372778e809ba05dfb1e0a1e60ab6d1140d4c0bd8e2db88e7d68eca8
+e3f3e2248cb6fcd2919c12d60bf4549cad356000877d0241f7f19487e8c2b17a522bac5a91f864
+630e2ea4d2f5b7bef4d091064ed22d2f597d18c9f04e2e2e1be2ed884cafd31231da6133e79ad7
+08400c02fa56a3f3f5eb56a713fe068d4cf564e7e20dec5cd4696759cc35d34fc0efce5bdda7c0
+2eaad828006036386ca3432c6c005aee97bc884afccd3b642c0a17f418e3f2e436dd02237531cf
+86ae391102b2023ae0913471b6797a8e71031412ac87b96a7173d5a56332ddc5811f8672b37795
+5fb5e39f90d787ed2b0cdb81866f79165c8353c9cc1f0924b5f4ab6bd5197ea6273aed03c838f6
+a78bd9c40eb8b71b436c0803bd569c3ae55ffac24dac9de63cf6f851c5e2199c11d9da77009e55
+3109e47298f63c44644470d768725db00743efd4b012665664b3f663da65c6329da22e64b466f5
+6bb45e7afa47e1d2e8680a49fb4948a8c424c175ebb3f221a458d75f3f84929ba4716c503c81e9
+baf81999337a0e74d9c386e2b46aa7ecaa0689e5b00465cc49f96f7003d7d0bd1463372602a5a1
+8bdf3e924493566ee07b37df97814292f85845f2cdae528cf8e6d40b1b4c7ab83c276f3d9712e7
+cd00e96f8139dee7bc8d17b48a57a39210ae727a8563319091fb1944279c1e670a24093b0d03ac
+8d4a479d2eead32e98af57251eaef7a6a110493471c97c04cb50fed0461db5d0f89df4f461b67b
+f479fac30463af0eb0a5c40b3ada200bda798ca929d04caca634d46b3fcfc12980c2ece9439363
+ee588b4cfbfe1adf3520a28209e59572148f5dd6e4891d9bdfb2525b5d4e16fb79c13a65e1d687
+2b1e2ef1c761d1ba66ea1ca508c2a3bb27a32515269ed4377d1ee7ddc8c94c4078bc4b352211ce
+a13495326faf27554edfc3a8854cdd4ed995df19dedd2beaa478a9409a77f75fc1f4d57ac4352a
+faface9ad01b0b621cd8572b3c65878ea89e3f43269e8a0c3854c1454418f7b0b385044a15ccc1
+823961ceac3f500a09579e605f92f0bbc9f2d8168c50cd9e61b84e0fc17ad73c36227e22447b9e
+f1296f2fe302f23663deef0fc1eb759acc9dd1909f369fca5564adb3f0b2ed33428c75fcea4caa
+c27e7e2ebcb3f50fe19f3a3904eb94baf40c40bfdf8a787e622563a2cbf6c32de0eb309ebbc440
+2e31bcdce135d63f42f314928df9816b69e19f732539bd00b5950b5aa8fc6cb3bec0f14e60c3b9
+7423680fd8158fae9b076f3d25aa3fd81bb5132f9b1f150acaf2cbc0744e0d4f42b186af0591f1
+6f51eca0ab48aa2525dbbf629b4754f23549f1f9a88d2ec444c26f28ad54c9c388ed9c00c9b2f5
+a19a32fb8880c47ebb8016ceb36d0cc17489b3e4e552984ff17ec5388f14541759ec95282eaeb4
+a2d6e3192cebedc3526f99363024cdebb040b3da29dc93b58f6090f2f5bac6c67c8ea488b3f0ef
+f0d6228e20a5b865bb2d1870e9e76c9663fb32e899c3f1f03507e174af0e77433fb35748aba9dc
+78f419fab7c9e508f73824460a7fe6ee23fca964a2839043a19ecb24b15b6406769b703a3b831b
+d6c4c82ee4af7aad7e5295f85353c7d3476119fc664568089a3350ca986913f16002e2889a7f09
+1e02e3a400cf8b83ece85176f96fc41efa93d5d658f45ac91e6e566184cc0376ebc6c8491f09c5
+e6b12eeea7e4e445a8821e03a381c468bdef4f7074b631a3146675b53f7539b211e0b3b1885eb1
+73883c4cacf1223ef4f6dcaed8054c8738fc3dd1abf1566be3b4d8e99bc538504742ab18cb9e5c
+f97c9e5284aba6f591e2d87f00952d0388baee7c3ba1182073481edc7b9c0e761a85a1643941fc
+9a0bb39252d59c5b0abad385ca9296546fdb9faf2bd384db91bd96c59da8250df2b5d125d0b254
+6bc7e2c50ed4dc568d8f1b65b6f327842bed0e7e910e44ddfa302f5b30ec127aef3f02f11dc0ce
+8a94bd9a77c33c8e366ad06f6675806d7f4e77282f88376fcc8e1772e41ee7f1e9cde177b826f9
+069ed5c3d3d0b4bd54bd60e01d4c768cb47b27624853fd9e3760387debdb46d9dfb6da0f7afc1e
+1ca352f141b9039c6d2f3ee7ba88dbd5f1a0db0753962fad600b9245a3a6bdb0bc0dae1e65c3b2
+7bf95a52353bff9d34d860a5d9de8ea0547b9100c160b7b631ef5d8e2bdae77d7a915788bef9eb
+9111d4d7f60f0329462d2ea14a7da9289922a575fd88a52c1aa98cf1f4f34b705464336e3ab7cb
+09d81e427e3bf24e87bf7147dfc0c52e6c67205181ad234ca1ff0dedd467d4a13bf9afdc6167bb
+6f33a47f1ab1477ab32752c256286b25438259a143a6d95b2c6e5dd38dca03fd6c803782dd7dab
+0c7c0647f48a84a163cfec2ce098a2ee99d2b0d46e0afc85091c8402b36b41cc096e733d3e7252
+c2a4b58f54369f049d0924a6903f8ad3e1bbea39e25bfa05815f79eef03e1748b2d581fe117ab2
+e3c7a8f520c194b3c5e98fdea58f19b4e79d677ad54a7fa485a7a9712896618b0c33694a3c3467
+a245c52cd39fe9730e7c2634d298c1638a0c7109692cf258f8a6d0bdf578cd28f72e48176a9599
+93014e050a7d060918fde0a223eab19396cca9c895a0d5bb26eeeb9190df3f07e2d6243d7a8454
+04be35983125b133d37bf15f8c7cffc8ecf514969e23fabd262facea11fee56fa69682307719c2
+16b7881b733d24403eb703c288cbf898749f3e81fe24451e063b3c02cb2ef8dcfc36179a525662
+d47e0e6325b93d885973935c91cc6c52749a939d32fa1f5a74b689d06d161914dffba8335c544a
+d8c4e83522f403157b7aa2ab15593a7583c684e472df545d24a4894038195781caa9f0f49a66fc
+62fbd0a5155743b7c17c9e6ffae86076684c20a77b1e74abf75aab577b93dcde8c3ff60aed1a87
+ec006d276725215681e444c21acbb6318f41d175894c303738994c15099f4021950a8b389dc2ab
+91b74ed57317f7faf10f00bda6be25467f05676ac4192c369ce03bb374617ad5bebcc56ffc07cb
+5d8e7da3e17b7ab3d9d5dba4b8354c03a64f02be62ef5df14b9b9376e79a803423bc55c5cee397
+2f75faf61dc41d1e8415ca55d3cf7036121cfe771be80b697389c047c601dbb8548f0d58ed841d
+25531a41d8664730f34e2b187bbeb8d9c16ae7591ca61fb2ab36ff3b6782c7e97833827a1ff866
+44ae56f463956635883b55891a08fa707e90c392ae4721fdb0b2311f8cf00a4703faad8114b615
+eef9737684a3c53ca307abd11558ce0810db4d94a444fc6babbbe40f3fca201d7f66ed5f834d33
+eeb1189648d68efefb7af5a080f1b6297b75e7815b4680e3c4b2676f3c763fd9d28fd00374c2ff
+2697bb8b96ea13cebdf68eb17001c041d24e19c97d33d448f4d6aa3d50d8720b0377135f30b479
+d973ebebb93031aa1faee6c275b21cd88852d903f08e2629066e18bfcdfe736b208429a99f7420
+7fe3f156e82b16cbe3d401aaf8ea2a417a7ded77fc22d8f047685fb642b7e25a50c5141c1f1f38
+a14ce3c0b8b3447d8f48de07c687e4c4cf69204e85c6489a3cadf29ca7f2363308621dfd1f48ef
+e47d7fcb3f67441ce965f04f42b78d23500d25890201f30d13dc767cebd955da0ce6f6411001fa
+c35b8ff9762eeafda44864cf1fd2f8c5c006ae8afaea913ae1c75765e4d6d77b7e21a6d16daac8
+1366f23778d2c5b9a64872015bbad846c77d4a9b93353935d2b6e57b39ebbb02993c18f5228d99
+a76250b85311629162556dd299f7eb2479c705c6e477167faec90ace944145a22a5cdca376cd2f
+809ee685329d8ae45f3d29b2187bd4077b1e7c5889aad999a67759f2b649e82031f198bc592bff
+385a196f4b9943300e1c9557ccad85497b9f2c5ac963b85527302a1d7c42d5d5c8c58328318a64
+10df0437225eb017494c3aa09f129275a02d0f0d2d5e24fa35a6b0112435d63cc0706491cdb6e7
+5dd957789831d30481e3b8e52d678d0990202a4310255adefea4a4b48abf4b835d35c66f7f279e
+1d7cd4887798ef065d2218056e2374c03c99fc2e17a24a9e70b49440f5e20c8806dc23e1b1b545
+716dcea57adc5e40d7df2a7a259b559cd37c2d8fb1eeb6731601ccb46af23de0ba8c1628f4b88a
+9b2d468c96730bff946e66a5d200ae32702e6fa6c907ca03518731f60b1252a5cc2dd1f9bd9042
+8c2e0f0a7c54d92afc89333da6a83c324af0629a26996457d6374437d9cef97bb99eff0e98a22c
+6b0deba1062f3c48226dbc9a5899cc864b975bd1f082d7e511a5b4cf9c0d7f30d371f689da42f1
+1df7c18389941337b9c07e1cf5f5cbf33e400feb6f4aaee60a026da25d51a3bc14d427d37fbc1e
+64e938a4de50f52578768bc70ce533272db34369f898761aec2c8dda5931f895d28872ec6f209d
+78be4f4ab8da35f65697c57405ce7ae5541c9ff509d5762aa6297e7a0194059eef3a2ae5d59dfa
+d4e9807cba47217ba163742c83f8205052cd729ed6f8c452af9712dee557d4bf8a303209d36bdd
+db790812c4e532165f955c981339226c4ccdb89f78666953c02eb2f38c4cacff62da858e16feb7
+bd379b92d9420a26fe2a0aa0c71e0640001644137c538d2da78a5403cae324705be07519a4c612
+4f4e299c41497f23ab3c479ac8e309dc694cb84b693a40ef5fa7d4eaeb84e97643474253f982e3
+8060a81ef3deb08144992e048e8fe2e9719ee6c840e5be01142f4a62ff3f2f1b1d70997f1fcd18
+3c5cdc04d67e5f46f946eefd6abbcf0170141516c7bffc2a07efb440dce1ce888a5acbe4c407c8
+fa46e28d20e7774d2e374e224b991242df5a20cf3be574c410a1a88badb054b812e7f3ea575682
+e6a86792ff4ea12bb43245bfdf588df7ceae590954e88607c4201efb34b2a9cffaaa392ab52f72
+ec08de1424d2420bf7b82f2a0dc2aa083310b4a6f2a68ab5ee8384bbbf4ed9f932308c2836d6de
+8da231dee2b4f08790d1653490b71ad5d0bed41b06f659f8c3a771b82c8e58ec4e0a0c5a9f7f98
+74bc6a1479b918050f06e4d1b49232d8b44f312a5f6666b49e54389c18e7d89a399fac13ea6ea5
+84dd48ac68c0ee40d26e4f2ac32951a3aef14c503c7ca2d05701b756990b9809e25384b0815fe2
+bf5084ed21d8cdab1fe3cbe15c41e8a94336359df9ed3a43c529529a9e7f63d8de36720e108d1a
+9feb0b9ec91379b57d2ac8a6799176ca5d5956ab877d87050d86ab917689c93652b729d4746f6f
+34de32680d8ab5c5a4565512d6ec950a60f5b0b141f348d1934b4f3689640592f22d1c1cbcdd51
+16b204061afc1b8f15afcb06f4c44905d17b8e44ec96ca2888b34eb85465ed2b2620756ed963fb
+b9312883c8aaf4870c52eb032bb5cb7458b2fbd796b670e972f576dd3941c76cbed5c40b669f0d
+cb34b31d295010975536989bd2a479acfcf324fd549b3e41bdefd06f42492c36d8c0201d2526e5
+3ad34e552b2384e39836743766e384e5858f33ac842cfedc28022ee8dbefb2a2c3a408a6be8482
+6023124f7eec8295a2e1079480f30eb64479f2673da8f051267142dc54e88dc8dc4ef41036f1de
+1b9a198e5006f8336b29720288c9f2e545ec8663171a280273b1626f882c6894be2fa2532c2f20
+e4e24f1406c0627f9cc4021cac67c83a60b39f1849b483757f18ca956ec3bbaea96cb0e2a10477
+e69a6040dc3b5321391af5478fdded8730e825818d960c6f4a305d653a732f1c51c2ca3e3adc4a
+3722958d50a78359cabcffaae1d75ce79e72e09a354c5e805967e30ae708c109ee75ef233df667
+82bebc4c5dd9ed6ef0a50eb2693787576a19b42e70e3d0c073fdfe1b3562083bc01d9b38868e64
+b8ae90b9f3164e2a29fbb1f1bdfd8ffc2a842ac2f9801d4839c97f4bdaf1466038eb4b6975e777
+acbdd875beb59268f0eae6d3a03c2bb60bda0ffaaf77c4f33d4671ee85f301521557a6f323f1b0
+d060326fd87c60f65e4220b7fdf85de8f0ed64661fddba2efd3374fc45a507437a1ad2ab4938e4
+ccbe2411ffb70718397e156d24ab018436fecd39af252f3f9527397cdab675b261045194cb3d3b
+5aca47c98f1177ca1322775aa8c29216fb7f8ce0fbe698479abd173b9541fdebbc3cde6ad12be8
+16108a049d5462572544912ecac19e6e9fc6dc06160904e7bb14796e5becff4df3a8f645825c9f
+59fb419bfb5ced8e5b449a2e57adc9693e9d34e6bb5a600d16189bf146f3dbaf4f75d16b303a32
+2048ddc0de4a91156aa427f1b137a714f7ec2a4aaf612de4819dede79b78c90a86c901278125bf
+2999c9acfd90a866830d00a0f1c83a87cec69cb2f382c935bc571ea3b53fb22664be95d8e95d22
+9b9985d992dbc6439f0ca52762b3cd7a4a50973c17de473f987151687da95caf1457c524a4406c
+98bd025f353124da7e6389a921e56de4d1ca7901cb37f051b9d3b78709640530cd549c9907ee6d
+ef35aeb2eecd1c9a1a4ae7686da61b848371dcacd9f02cc320f29ef144a10803df5dc462188709
+a85504074b8439c1a3a7c253581597d6f94289e7113c678fae406b6586ec40fe51769903be7225
+9817704579212bbe802679ef21f7578fae78d1f8c29a5438b656f13d14ac4b10d1b48d83dd1ec6
+e569358f9dce2093f319f9d3663e331744bca142ec6b901acb9b5594ea7423072d96a61e523336
+059c1091823b03dc675671cfc688bd2062830e0edf7a5d400c680784691ff46bf4d8853a42c573
+20414a0c7b838bf2bc33726d8a61d11dc42005b909b241b553c37462ba057c30e7bdeeb3ec5513
+ddca5046dbf783c780ffccdc188b5890daf03c94c8bbeadd2e33e95a8bad7cf8c890753d607e1e
+74dda3963d32cd37ad2d0eb722498718df3827236d7f073eed7fc3c0ce0fb5629f08d4a71d1825
+c4d158ef364c8d69e8767acbaa92e1751a266718d67fb61b4a07c485cb887f04bd30468bd6ff51
+63e5e35c7b4bf6ead5db27d8690d7c54b2be107d8180396ba6046e8b1ec7f51a624a52ad2f9e25
+96df52d886aa0f5f0316fb0a6ff881ef3cf2a11debba86921f94b6ab18088a61ccb125c7732c36
+81373e4151094543ad56ba6b5b915ca303a753a65aa189f6d71bcd8ab565ab5696b9b0a2fb5b7f
+eef3dcd6ef83f859fa4be52c24c31ec711534577aba733b4f0ec2ca742f8bd658d7646e6af057d
+09b504f072b85e8ce75c51cdb3b17d34c06c1ca57b88e7ae944d289bcbc1f7ad27898a703c0b2b
+9e0dfc9f87a6b2c1d9ea2cc05fef8bffb8cffd8d8246ddc86e135a8361d36748680881d25daeef
+be63d60e449d50acc1718f1b6df6297849d31eecb6c990304d5e37d6bcd83c17c4ebded22db524
+66af31cdd0b576d69ed50ef359cb44507a79462b282504a48a4b8bbe2ef617837ae266e3ab90e5
+f45647ed6b99c6d8b6121f1f7771f75b76362f01bbe8a8b4268d4755c7b613b2faed3f108c29bd
+a855012eea6c22210f618b416e25534efec4c0f6d0feaa4ce7517802f2ccf54c96c4b5b9227bb5
+9f8c8a49fb435d4134dce397f41f3b6d295f6453b9483c3c1d2ffd47a3199b370f2f31b3772afd
+59d0135ee2970b66acc4a1a0d3a18be2b3cc0a8a261e9dfe32b1a63ebc7fd99af94cabd34eeafc
+a393ab83b5ced9b4e60f868e0b7aad2c2f21b0d84919f1c1598e6143440481e3c4a97750300f7e
+0660eb65416215d13d8f546f74c4700693327ae762ef61db4463f3644d534a3b4127c06741f0f3
+394f395ed384c4139b7ffc5b02185dd9e9fc4a9a790d91eda97f8262e6327779701f7440a27120
+c75242cb2e3c5570399c648b21da288d2a9d610dd11d5f9cfae9aa1caf9f05437bc137d8cf0e83
+272ecdec1c574ee6880505f03fb673c5ef5e31a674d1fa390de77900b9dc1fe4d73311032af31f
+6985bf38005fd3498d569de012062aa9c4e5baee3ee651230cf8f06f9562482e56aef639b4e9b1
+4fe104d7a4e59d9f59ed573a530fead02933ab576a225e00d4681821a6bd294b96c9f73ead9eba
+509ae5d9008007ece9e52dbe377e161c5b5e1fe556db12e167595ca9024a24c72e65527e3f4b94
+353bc5fd302dcd2343dfc038950bbc4c1249776e2561a90c9a5ca9c045f6812d9491a77d5f775c
+caf51b81f299e1f9122c50712fcd660bf649f6282aee3c072d41bfb68cc3aec648f2201fd414d5
+0e1375dc1fa058a80f54ef48522715a66f46b0da8861864fdf8e22f6e47cb32837b34ffdc5b578
+717a1119c6e7ef7566c58b373d111eb6c2bf1e9853d13c6223fac9ad3123765163c06dfc0637c6
+92af835e89ebecf5b37620104cb8f17851abfa357e02703a059d960d9df6f7fdbb168337708e7f
+919c04c802ea2e2b3a3babf74eb86e63de9b8644627d8985a1ad3b8adcca509f7a7debdd4634cb
+f42715063265b57d40eb7475423c3838359cb5a1fccfcc7874c782cd859ba71d5f114991e6fe5e
+557fd360943786fa161075b6783140ef30382f184be07a3b0bb616442a4a4007af227492a99485
+4b40298b9e9b4e4483dd252b2230f1f615a122918f32c3ea0a68805fcc73bca40be7f3fd94e698
+d0a65005a64dcbb7d97f60cab183acc86762873f18b673dc194cfce103f07cad09c8fd6b1f532d
+72cc86ea99ea24a21a41a2e09837093d5e1f1e3d74342cc4466d9ed9c1722d8665b00a9f254950
+c286426737b8690914d856ac20f1bf27180e6f9b00981bc8b3b165c5cc7e02a689dccfd58c1b59
+39186c590a97d04d5710fb5506bcfff05f8c6241c125e300235afcd2311d997a1369783a83ee1f
+040b8fe44804dd62ff7e5e77dbfd66177a934eaee33737d643092a0cf65e51b131a7ce8e502102
+aba1a8a68b8d95c5b0651c83214017ea2bd5e5a52d7e9d8afbba7cd22bbcaae087ead54739401b
+0d8acda7766d94d640feecca18f1829ae75da4aba8485bc9dfc9c67409c7d465f54d740ccc8ed6
+452872082bea2773fd5d646a809f5d382b69955db3a56e61849017f103bec6de80850132002216
+dfd301110250985d8241933cab0ceac16e90d929dda1d3169a8de16ca98aeec1bf59b9b4e0ec46
+0a2631f6d3ad4f84fde5b5dcd29d53afbc6c8a3adf15d234b13de3fce52689a74f49cdf2d9affd
+89a098d6fa7c0f93724a08324ed1ce7db85034bf4a67e7d0573db8e2fbd09e123156b2d066bccd
+9db05b87cf61545a6e219009452b7541aba3802cade07019910ced99eccd026725d0853f9f1597
+03f449d1e1d33902148421d34f132378dd12d9e79168bcd8dec5bfe47c862adbf7883e46dcf0c2
+41e068ca77b72ce9a73a3ac40f568481f62d9f36ede5f0264c4d8f9b2ce03e19e70a94d0e467a9
+832efbacffcff9efbcbd405432914bc36fcbd16c4c2aba631f8213239b69f183482bd292247042
+7fbab78cc598a57819dae5e3321efef1fdb44e084a4402b8cee480242e42dc09bbf208042dea79
+68a643851cac21aebc1ba2740ac999d965b43feaedc8c76a32ff8d4fa30e2c8444b01716af4878
+ecf291309cbdb70c5bfbd4134ad5d044a04a057405a91e1a1ef15980383cd4aadd4190904d5528
+e55138635714ec3f9d8e0fe1bd1e8ed4b742ea90572f1ac8d01e711c074a4125ea595fbce07461
+21a5d022d16b2125a1577850f6d1010279a5dbbf135eb8edcdcfc459b7b554192149c29327f86e
+477dd3d13fa5ae3a78cfb714c9a750067ba154407ef22158670059820c8041941f7ff5c27c016b
+20b867f83a9c8955dcd282dbb6f72bd2067dfc1e91373a3021be2be6aec5f90c8001878077eabc
+92639f5beb892bfded1d04136bb3140dafaeeeb31c21d8baf03715fc56ecc16e7dd11c12df0bb6
+8240772f2c59829482cf97f6a922c8c7deccd1a395e7ba2a1a855206c27630ae1f236606a3a9db
+a1404326b8b484d5d2564b480ee7422365234cef2609605ad9e24294ce5f5bdd61a479c33fe53e
+e8bf857e2d2a25dbbc9a1cfad3a5d7b2f1155d29367e318c8a82e1e0aa236b8442838e3deeb9f7
+455923cd769d28c1f780c0d3bffc275e0242ec975d2beb7f6bb5222b2cdd196e4ec94452050a76
+a4aa6352633cd58f461fd646f23758e343b5a386927b66ac6ef1acc84839f8bcca9f9f93f18cb4
+c6bbc663a951dd5211acd684ef945c10f156b5b6e1c182a7a580b3966716c334ddd9f78a404873
+a738ab6ccf8a335f1f6dc830d7d74e021bbca95d260b34d1933177e5ead9c2793d264c94e8bb27
+4b9712afb7862bbd8f74b4cce27cac9f29c086bb30162820a229e6d5c83410a8b876fad5b8a028
+abc067885b5cec60995550d35f60afd1da93e3dc14c42decd2b0800706a222e9e4b7d7bba9646f
+6a3ef9489dfb011045a6444cb599c62dcae4b11de7d8d98f8e58a9a4feba0e5f7301b795f4085b
+aa4a7085c5a438d0b784b21186787abf88b455f1e2ef19fbbb4501d5c69c22b219737aa5ceca0d
+0475bb6916685534448816d2791a31544769ff1152c2f2cf4c7cd3f64c6830522219349254d11e
+6ff2056a341648e9caf2fc5c6f48a8713448b4a0a7bf4f250df1f9ab9db798e0c5d2cad0116608
+a0a6190d8fa4f8e67f705d8dfc7cd8be652b13ec24beb159f97d22997094e38e90fe6e9f3d2a07
+ac92f1648c78e6ca7452481fb78dfefdb4399c62986b652e08ca4a9a4966cbbb572c4b2c8bedb9
+285372904836abcea90e91ee6fe8dbe8fcf718f4e0ce97b29be634db1f19b541e003409442a59e
+320cd38789b76eb79e35acb1e09f5ac2eee068664a0f505c61c07da5bbf439acd52feb4caac79f
+f05756472aada68f6aad5a1b760468859d9297e3ac4ceaf7830c09d3562c012d48cf7da5f93d79
+42a15fd76be4e90cb1a966503d32dd2fc39c1cd01c629b600ba6463288466ebf44a4df63fe2040
+67d6a39719ab32b5073d4bdd022933b5bb5652510919af2f90863be9f08dc507609487ebd7b796
+a3f0b029e13492cd0a1dc002d85b8da0d2ddf319f7e732ed40a87c984340976292119ab947b5f5
+b9e5e31e6023e22e6ef0d04bb9d9cbb7de56a1626c5925847300a6dbeed495b18deeb815807010
+52e4b37d9e0b346aa8a55621bf5dfe3bd1cbf2051e62ab1e1da21387b5f38c119934ffab0e8158
+107bc33f36a537996faf01870b85d5da02977ba62fb8e5d4878e1be660a6414c9084a3a5f05a4a
+2c3c1f311a589ba7afc5418e3b480c92f91033ea61d0a6a1f9e209226f2cab2d9c10e2b54f22e9
+a730ab8d48548cd28c3dab415b03a59345bdfa9656cbdf48363eb233dead8ed309268a629bbc3c
+6e2d85eab15f3b769afef377e4602fee3efe33401eba124aa4d4593c5356214c59db31702f44d3
+3f89196e09e6e2215687c448c9615c69d7163b2867252de9771c9ee8a39587bb374d1b705d61c4
+2da4a8a7ed8ebd24d1062d377fb37fd84d5ec3eac25d5d39bdc91f7c820b9fe806984bcfd3c375
+3a607650a6ee4460a24906f75b38f2c442a65909bb70e7383f9e90a06f13fa2acf0a37e59a3118
+5b6f9437e741571dbefb518dd564140aab4c91d37e6435ab9b2b376bf6522f90b5660ccd1d7e8b
+82dc3a41d34e2c39cdfa05f1e4a7ebdd3586e69c6ccc4847e086052dc7d6cd4d8302c34f4f0402
+daf9549bdd83c24c44a68cc2e0c2635686c6e49ed8bd5675749650a79e40588f4315fdb9c187fa
+7b4956151b7123f36937b06fd147eb8d51a8eeac5461441d24afbadc7922cfc237823efff1a3e7
+42b336e84702189c648ab7078d6097d8fd5f3baec947d63912156478662aeda72a501c747a325d
+1227cd4093ffe9a931367dde46d65857290ade9dc3d8eb73e7149dacc34c08faa51f9fa39e0c13
+d14be58999496dfde61566e68f83135a0e43cab3cc6395217a0845423210cb032c63d56bae6877
+3991e91f186b198105f165723e08f6db39e889ef3f944d339886c0c6ed8e41c20c0743864a50d3
+7c281abf47fba6d08728aa21a833f22aead0bc38d211caf58d44d01e10c2da4065a3082e562e82
+e3f1def28b5fbab1e93cc3716256b98ce87e4dde9e93622e5ddce60981e89ad0d70d0fa8b1638f
+4c12ee82a601073f84ccd47b631781ef34da22b5cd35023f23c6fff02973f993d7457efe579da6
+4d7110867d6fabe6b41b97e9e711369232f98cac9975d56d69cfc98530e76ecfa380311854170f
+98cc43596a3d4019d08c25e59dbc3eb850e026cd484644353c125e38f199b22ccf0a502d675d5e
+0be2a4df28ea88c3ca6b939b4b19e81ab728d3e44648830f0ccaac81f705d098c127f07f56ca85
+50ceb827722d046ce419a2504d8d6740cf9ccb5d079f1086dff76bcef4bd20e854eed00bce0858
+522818c8ebae755857d51961a9c61ab5367445b621562c645664f6df9f63a21246ca26d21aeb97
+ab2b271003d5734719358b16d2af5cbc1799c88b899e3c964c453e53de23d02bd3137cc0c1f074
+70d8ffea99d6a27e835ac56c977c149dfd13de3c0c328f8edd67c1f95953b9892e0147a245ee0d
+4e5912c7eba0b810c0667b17b545543b0662d53be35c26192356522fd7db85df65e5db4d6573b6
+c0c0f5da3747e6fd6c4a041525f7e48b56ae420995938a2229c967e98c8256c28f3a99b0739f75
+f0f1d250db34ecd7abcf25b86e6b94de40d033d99710fa654fafc2adf0118f750a07aea2c94f20
+5cbd091eb2a3bbbff77253122f179395e088c6b7a9f06ad421055622a1cc0538e8b3f03c4dec14
+746a49b2a19bb161ef7d5da64a4562e3a0ad91e4ad5a052d74c1473febc4f186cd6b73d48a895e
+8bbba44657d00663d5e76686f65a7ddc45ab8194be9fcd289e170994d8f17d4847080ec3f0fc36
+f811035bde3970e330f1b654034faf87b01b9981330b3513c2f32e13a280b52c92449525bd879f
+684edc107a40c02da468ede54c9bf7ae72d4c314563e55d9d19496d0f80472b2f3c8398700bee6
+42314f87fcee7e0fb9e4500fc980e0a9f755c71cd9afe4b3946aa06d2ae458ea77080c3308f65b
+fa253674be7182dea45a8d2c029a570cb3914f7c7cd0cf31f9b537b4f2f7cf918c5e82c6ab36f6
+5ac444ce935e1d14f413c2c005ce388ef8175d7c8e7bfd68640c650385b646fd00dbdfbb9e0ec8
+3d93f7ddd486a358a8493a4327d11568d3145b52cfbd0bd5b4d7def679906fe1297a16908e16b9
+de0a13986d5ebf4f829c4de8eeab729480c1372c0b85c462d02d8e6bb0c45fb26e4d82f0152eea
+9b745e1c20e478ea50110efdc5bf0164a678ecf71278fb2bf0c8a53a99ec0f46029eaff9229108
+234fa1624b5e33f9272a232f64acd955839b942f8f8cd3f3e3871a443f685149bc5ad0083f6baf
+20c14025309173788aab5568160b31e7f7ab6f10f4033345656fe958613d626e8ab7091aae62e2
+150d7f854d5740f601c0756b4d04a2f4ced1f833042b4ea609a051defe8aed847795cacc657c5d
+de3331323d5f21b24154b3b2c991e3da5de77d00a4577ccc862f035c10f2c073f85b97fb489a5d
+5a17d84d9ca133a018a22788ef86afd7c1c8952eadc6cf5139605b19df95546e90a839440d56ea
+29625d57eba80472486cae74bd099198ab8619cbb6fcd652774b0a97806f5f83f6e8a109eeca85
+cc7bfd19ae0cf27336e00d98d130f932be9752cbb97a14a44fc6407b286744ff893a26ede2d28c
+6d5a2c2369388cd6a23bf8e102d7014b3944afea96cbe03735db0e6e4922d4c5b2b6add56d317f
+3532fc50a410cf19be859075abe70ed195996f9b9afc7b1f3b1a5d1602fc6d55d5171ccc345e28
+040625e4fabb286990116ff9dfdbbbd193d503d5ff027b0f4a3b124f2e0a1e428379ac6fecfa31
+3fd135a6f38da32b37b3d6b877e5148b55aa40567b78d69bfc59681acf8c871507eb03518650ee
+ac7270883e7003ab9ca8a2e531516c309c31f67a059349b0f603f584c6d91770ded8a825c6f759
+cb3128bb928cb1e671c1684cfa153a41e6e775ebdf54f25d11865ad5972e8bf3193fa4044fa618
+bfb88b621420c86a5a30b4716feaa63197c6081bb1f324605d018e8c63753fab6f972670cbaa9a
+4946b9c20fa42c6e52c9751654a3cd885fd9efe11600771861ae0d026fe0dbe642b073c91036ae
+eecfaa08a7d85983eb13828c3903c532c0829802ff8b45e64e39079f65a5b84ff91b65688eb31e
+6d5fc58cadc44319885bda8d78db2aab9fc4a268e3397d12d51ca0ffc79929344f97a6201c01a1
+83d2c0c2702049048205649b91a784c7095b8630b00c1ee0af742945873049981540863fe38a4e
+57cfc8647c85c069296284599f169506c9df019471e0ca8fbc9abf7d1af1dcec4802e72bfb1d16
+138585e451918e0c421966a52ac29c21aa3822870959543691460c52ee43517b8588c365888921
+e4560d3e28f72358325197f09baea07fccf9d10b238659be645e0bcdd5e76534b21b52941a1e48
+267faae6abd43149987eb5385b44a422c0d6eb37c818542c3553452c97e016c26d38a4c0b53ae8
+b156167a5e11b861b44bc488bb2bb0cc652e3a1d12e616a502d1fcf31bfdcead55e2fdffc121ce
+85f525ba491feb547a3d16d85f65ad30e430dca5c603685abe8484d4c4144f91c5595a3fda9351
+e17f00eeccfcdb2e0465566192b23a9a78c14d62fdb3b1963c780f6855dd73382089094e921ce0
+9784e1f5408c620f6481d300d9fa6f8c23876a49281b0d425090497b767614696424dcecad04f0
+767bb7601b99dd3bc5cc14d2dd77c09101fbd3b6e725e5c68ba66a5a371fd6f3ca6351ef075645
+a3c03492f7fbfa225a5f3e01b962177026d94e845953d5781064633edc41fcfed874e011304723
+a52fe8ebe5d6efc5e69b9edf735067ba2d3ef221ee6244034df2469afb6056dba877ca9850d4e2
+0ce756a79a38e74b356019de03ca6651e54d1523e12ba9d9dd8e44dae7a920eba8784607fd0eae
+b0b456bad6e739e264aa0a3f4d5cc5584e072cfc8e0a2b949b4102d14fe3bbcd7ded2405718b0a
+7cd41deff91bd415340d6de94797c53cd734d14a11be9fd9de57cc35175f24913e96f95315ad3c
+66ee102176e59a3b669c0b992d1b6c3cc131b33119eca4fae72f7553cb977dcffbd5ea29728ac5
+a645eaab33042a0ad86e8b28fbdf79325e28c3801cd0f9d8a2b563aaebcebfc6540a3ea351caa6
+01ba8e5c5bfed770d61d7366f96d6bcde2db981b51e38ba35237ead55fa9c1cc2b3381131c1dbb
+39ddd7229d06e4b9d203d066666c8ad6aaa1a6df0d346f843205c41a95f72df3027c9e6486a008
+8f8f8e7c9ef820e2e80766fc706c4df71ba5801863b29a917a16abcd824d9a94c9081208685f8a
+4398004d8afa25087ba3fc81dceed46b7d6fc92d3b9557514899c5c97114ed722616b477ccfe4f
+4e1faba32e6a24a091a7a1067628ecc8c421f8a967c6e0136a9c23ef642100eb91c300975d6dc2
+c09da077e24fed0aeaf2876b91d0db63c4e347afd558f61344eafd38df995bd98fcb720ce19023
+c26e0b1157e299e18d13fc7715bc1141d449f05fc6bf234ab5af157696a354495e45a818f41a00
+7e601b49500e7554695a4c21c8f6fb67d7b81379f6d3abff7b059f277e48c0291852c6af3e9d41
+2526e6b23653e0283af4ff8f06503ef135f552270f04d735cc21fbaa059025e7e32cc7f03bdc40
+6a167be87ce1442f285aba9aab9f4ff91daed0f04eadcc8e98a6ef670263a76e5b77baf65f979e
+202658c06d0deaa83aeb577e4872a916a87b8aad9e9c9b22630d3b3b95b790f11f83bc6a52497a
+7c03264d70f55b6ee2ecf4f5af13d45df4bcefc85437ad3d9b78e565e3dadc353e972fc21ba6f8
+ce701cb9c1aae65b2ffd89d65075bd6a5ae8f195d13165969e08c20a6143efa43a31963e81805b
+584f93e1957713065d371abeef4ade6c3c024f37bcb2cc00895252332325359e6f7425665f46bf
+49ed14cbdd14a659876670d962d36aab38e75c47db93978cc7c30e5e33185c437cfc260caa8c3a
+f8a0fe39d955fe41a89344db01f0f33632b571832eff64ed70de8b5dcf90e73e908b274441d7e3
+4e14381c6a88bf71db27038b3037bcd5eb5a4a1c9b6067d2874b898c95dee5b114c10528dd3cd0
+4d4127190405f89ad7461b66eac5bb976c6eb433a43db8847ab105a9d6e004c1d08e17ecc40286
+2aeba56fa63297c5dab64a0f3dba016a5af5c761de36c9bdf0b375c0bd6fd3c0fa3787e362103c
+3f96d6d1bca0fe0b3fa33c034f472204cef2949742fa5b973d21b8af8e7c1ede70cb40860f7a58
+ac12a7709be24ba724166770215440b0dd64dbe6af369ec9fc0d82e3c7a597884e4330109ab763
+1b8f8a62f0ce7dc17c9919d55bd997497b66e4089b640ada46e454b4cd90a45a5805eda36ec5db
+69ca53cd3380d2f59c9cc4c6d52139cc33324161adabcf2eb44cfce47ba893bd4a53d4480118c1
+ba64436d3771ded3182b2de8306237012aea5d5a2995abcbc097e7535e259053c58c8de2a6c7c8
+d21ad6feec5907c2f6783541c68d00be43776a8e766d72a8fa8123d819d38f1f53f36bd48adcc6
+f7a1455cc87453f96e550903df9b819196a27061facc772b773dbd1444c37d3136a0d3158d79e9
+8a70e8e030dbaa42c202db2c0f8b03687f3d48b0f1783124024a5ebc0433990b1591459766cbea
+adebafa313226d839697f97e14cad664856368583b3e2e79609cac4c81afe602dd4200cfa43fda
+4f1e48d68b13f27533ab9f3fd05a0143378b81d7e5bc77eb8829d3d4e896af1c31ae42d39bc60f
+687306a10107727c8fc2fb98ad61af9b7808b6afccd125519cc4f98828e53ac23388ffa188e885
+c64a97439cabfeeaca48453cf4c6ac118ff667c21300d1c1ed5fef10e03f22e69e36248e476519
+a677fd224e37ac95fa3d9aeea5b2482da91aec2f5e7a2b57a84ec7ec8699fc6581757cfc8ed6ba
+b56242725f615304b3cc39c20e8dd67136f864ad32605b0ea9ab0d3662bb1ec7e317684a5a6afd
+8c3e83358db1392bdfb53dcb2d1624ba8772f701a3626967c0a543a4b01d70aadea4d1c2c86383
+c6eb9a722a6c833c0c5f7e92efd67ff6bb9fc72a9933a446ac965c26c72ab279c5755890d21a9d
+d9f3862582bdb1d9ccd1963a21bacd4be17d03819ab523f4473b20a87f120dcef914c72144e350
+ac33a94859de19fc1c45816ba504646b8b53410dedf6f2b1dd9b2f0b2749013aeba319bc7d2e1a
+dc99cbcff5d5ca41baf982ab06c3741fdde91b5ae8601be0a690a8848d30eb1727351734daa8ec
+8fc416bb425309b1232d290ad42ab8d97062812696531e1a5f6f87844f9ad9fe0cc660a7c4bb1f
+7c2d37ac95214fe2cb4537f763691698dfc6cb42aee39ca3e37910a5caa4bbc93b20d756593622
+3f79d777d14971397338d791989bdd842a25eb4747a45fb3d0d853000205301a799d0f1a597a34
+fad9c47ba0c27a82251b4d460f1de01fd0066bef08e4e6139412f5f7b46ca9c6fc7b5e1bff8f5a
+24498699cc168b419278a41f5eb1845b41a298cda7e237d3b149ebc1ebb02c33433c0cc8043bee
+875475cc389dfdb141fa31a67c9b97f2bd9afcdcbd16b0682b3da7c3fe91ce83fa0eee07e155db
+bafa26ff706798c07bc149d963c31bd8b3d9736a21d45d5d7761f6d93111a10b978b32a00b6593
+4ad2e4df3c2979ce6179aaa50a28348d3fd1743d482c16a2538eaaa17f6894fea19a21411ac73f
+f779f355ae9fca182a55d43f1080a60721ec087738c87987c4699e24c19172afdf0461ef5d7582
+0f2957bf75b1b396bf2a5462c7be537e67d28ddeb130863434670c75b36878888a430846e1f656
+5c9f0f529ad4e5d2386dc61f9fb0f4782a802c853cf5830763f5b9df5d77c5c3fef77c14fa64b9
+66573237b911aa353738e3ce2683d5a4612ddce6c8f50cd2c0b11912b7b09cb60590ea9b25dad4
+1363a82751aff5a9da8e1fb9643a84f3701b518b059e935a3199685c4bf2afa07980ad93fcc6e7
+733a7c1cdb6d9ea9756eb985041297452d74381a609bb8c3f9cc4c7b9ad09e57753602e856b551
+1cda7b0c9a5e0fbab6c9ef7d7e8d6751760312ba04d771974ce5b6c18d9de0d4bf76d5e5b6cd7c
+3706f94693215165881bf682231eb90cb99794177468d89877475bd1510e117d5f845f26fa3037
+62c92c2ced4c73a82afeedb275f48fb2cbbee350511004a58efd38e7002e91260e40f0792b73db
+c2158d542146aac2b860479bf6046c7e0e4edc26090205846fc8e333cc60a4aa3990290508b400
+fb02f09560be4f200d272c713ba3b615e2b40b9552cd70a67a098edf6f1bc4ea86732f1fcc762f
+513a1a004d39c1dd6d8d065024ad72b147c850945b7bfb29e830d4ef2e84d694422f1c89bc34ee
+502aca300df3c5a3e0ff8359668b11ea33ce14ef62cca8e2dfb8e5ab68d96a9a2552bf53af81e7
+8c84d96f3b1eda14e19ac07e75e3d3e5454200592a259bc950ccb398dc20862141083a5190c1b2
+cb0aa0d8d3e8a5a3b21004fd002040c4b3ea35de14ccc1ccd679d99308409a138c1ec129a71a1b
+b1443d1754f4763765b6409e8280e25b5965f444cbb2a6b78bf8541250b992e39d0a4c14ed92c7
+b9ca642ec4002946f593ae24cc194f41357a86b418c8451b342860441b9d2e33c7f8a81ecfc0e5
+630d23ee1fe752b2536ca59253c97aa18712f73f2b0335eeb0c2a26cbd98eedc669e9388314277
+18070324999284196cdbae8f16946b2bbf2b9f2a8e0a59284473831de3315a2dc0ae872b1036a8
+040d9c2a0c77a6c0c473c293ab7e19837fd227b352e8bf1bc817c76412f1d6abd47d809e989b3b
+2f89285d2693824df3191a6d1bc8c9853f2bf81b8c96607a02b31d23d7495a590cf3f96d7328c4
+fd74452dc16c2818512abf981c423d146e9d7a46bf2ef32a98dda4f6695f42532fabb8abba65de
+15bf69090b724a247fcdfefd6f1a83cc35a049d3324bd39816f4ee13a5a38da73a3c3fb031daf9
+bf78fde0f8f6bdd0e897a3b24e090b54a955b232b2258e5f2bfbfbe13db81f6abd243d73e3ff7d
+5d21527541ce6258732e85baddc7e56dc1ae4b2bdead6d8de14b406a7234ab0c0fb1b6f129a787
+7adb864cfe9abef498ea89232ee6639c0cea4dbd515a7a09aafbe65d04ec923e1200fcce3a2f68
+4c07f202273eb6a93f7ae0771e7115385296132be25b258f67273c5a0f28f98627abf77751b786
+0e123e4a4e70422114eafe03c2606f854588ef418312650f11393ea15bfa6337b955355a183573
+948398e4438b3e13fc83a36f2d86cca04e6787f6a0b29bfbb9aba924f37f5174e3ee892d16102d
+37b14d7743d9725ac7367217425cf6263f30097ef995d81458db1357305c6044d6e490d9631e9e
+e456db83af1d454176174c786a03a7771b02c10daa800cfa6819f878c871f0b3230e5aeb87d8e9
+b5d0e701fc2dd78a2ef5f9e3f0e060eeafc7ebeb813d13d4d77f1130256ceda94dd73b6e7b423d
+7f4c0c55f3491bbf6153b106b1316b9eb2ce72b263f05fda150b748d74b05f238982702f9564fb
+43259e9fd1f77d753f7a9bee8d81b2ea2d5babfa686d76582857a1a2338a5f8c2733728fdd4adf
+fcc90331d2670c260111b76369299e8f79a9570d277107c81fbd22faf23d821471f8359f13980f
+282516b7800ba8ecbac26e646e401a4d7a644fc3851749c5d19a915fb046bc40de6256a24184d6
+66de6f54e6855060071896eea3338fbea7771f129a449e5bbb498f5edf7dfb723d4838d670b76a
+e2842b726e757d534c24ebc471588ea38760f07b59c9af9649132871a23ce328acfee7f583f7ff
+0486e07187a3d4942aaa9e6a38c61543299873ae9c902dc5777ef58d396b5feb718509da30302c
+a268a9fe75e8343ea5f4da3a39445369280cfca5442939a61f82f24b15bfc71d2e1b2880df0117
+3232527227875329ab6069618cde196f153e7ec3b1dc5fa627ed4f49a43550d02cdd80cfc131d8
+6dfd6ef64530f16be3c08b2fe804ba2c8b8ef512bac05420f7809507cdc6aedbfa690c85a1bee6
+f424799dd0407f40e90051ce3d6b1020719e059187a78047533060ed3426bb7c314b179b608fdb
+19f181e4cf616e0eb850c40885f2e1d9c5afa60dd6480166d7b227b731c8491237112df20561ef
+85e4a3d2074bf8ba61da1e50699e9f9aba612c8a9a536cfaf7c9137b08aeee41148f96118a43a9
+01722f64a6457937eb18f9733fc353987b8e1fb9da5ec6c7229dad8d045654bcf4426f7148ef19
+42cd42954a8e5e5767ddd899f178f6f2443b93be25d5d61b9c06e68d653ba56f1506a88f9439a8
+96b3f604880099548ab0dbc39b26237dd1bbf9c1858716d858b94377708b44d800b95f77ba4f63
+577d1758719e208c1d4757e53eec9ad4e1919e197b4507d1d43355c142e91c3d4d80064fa7fd5a
+85d7c08f43cdb63e507726b4378853d6ad68ecc29592eef5a8b72869a2164552ae622f3f02dfa6
+cc2b5452898943fb90521daee4b1679df0d385b9ff15c9ac6c120b30626415ed3415d06608b8b1
+82f3efd579a539771a2af421119c43a5444f187b55fb3b8668eafbcb63b919a2e2152aaa0d6261
+3c37ca5002c6daea891411cb46d58d815d7f231678185a0ea2b59ceb1030a8a9959f3426a66635
+2ce86ddb34220f43b9f0695747f65b5c7d0c0bdaf97f76a67c396f24f5c3d277a375744310a9f0
+9dbe9f4501739523f301d94e6519029352ff5c1cced0d6dd89af38c49d8fdfadbfc0baf374d259
+404ce7bfd2bf94a09a02e3463ab9c6d975190944acde85894ca4537a35ae86e26af1bd5e5bb7c7
+d24e671bd182153a5022047bd8c138016aa85f3b7b62bfdbc06ae4dbe5e37528d6c6432b3db333
+a1347a09838c17b5de1b2f9570c33e7580978d48effc18fa8e0fec834076990e0d4b8abaa2c336
+40801153c5ffc858524015d49008574cf40c060b751c67395e8d39952b5514463241e8aca46f92
+701b889780db90362ca74b5d13c5f9d3362a0b53d2dbaac2c54836e4e42422aa713a20a5124ee3
+6b353631a3933a5bbe368b0c4fd93aac08fdbdd55759778a0b7ff59a185e2f9162c0ab4ce98bd3
+7fdc7a85dddcddc3d5eba60201668eda23e041e6920b10912d251171fd3fa5bdbeae378e996d03
+9c7b07bc4aca72e81625f6f816a2bb469d2458518988aaddceb796926d796673c030554e704ff2
+6a134f1ca36bb88b0ad4b229fa59662064dff370c0cb6ec361327a9faf09f93d97e8002d4e93f4
+06f5b7ac4c823081ff2bf77e20f159ba1f91e1d11d5f5b52221cca89cfb8cca13502716df8352a
+88e941027fecba9041f503953c0a4df439e212a56af4bbf445d3e334716b0020113c6bcd8ce189
+c2aeabe3253220c9b027b07b1a92b31ee5842e31da8d1def2b7f4d9c9cbfad69e25ccc1c337a5d
+e90b8ef56bc380a19d68a998797a80bf9d8e68ca73af55fde9f461c0f38be9e396b0c5f77751b1
+263400088de53cd3138f4393370364c05662d96915ab7c0c4316fbd98a47851862e6d2d728294f
+1426bb098197cada4647cd3d8ea31d0bd099319009cb1ab7c27cf35f340ef4085c03fe7b8a18c7
+b36ac429dfa36e70e9a0d442f1bdc8d4e7769022d0e22d7e5d2b1b7f64ae651f28cbfa5d88ac64
+7b13b1ed008437c3a2a9e2b43ef41682aa329bb43aea0c510a3d210ec9b2b77f8ed1ed75b39870
+ddd29d46cb6c749cfd266b31b42649ff297943007036344ab551166ab1481205834db71b4c458d
+77c7281b24ce54f160ffa21d4601aca5e15304cb77b9f9eb0f2575feddddc92489f481237a76af
+4c543f7ed8b1e73388ff0221c9693b311b2c6b3db45e2880ce0d907266679c9fa804a32fab6d5c
+9747d27470b5bc3e388b327f397fe30789ad87072fc917f24d927a009e55310619c76fe7484773
+585ded0c69489294af61d36f77fbb0caa75467eab711b91701578abb70dcdbdc70049cd2699070
+d1d80ad1e7008432f2e833a52bbccff7e352739e3582637ee0c35c37ba4a5aa2fcb032da6fca75
+15f49cf3db2d45b3136842cb0b55f369053d894ca695dfc3f3382434a8eef782f9449a8994da5f
+09a7fa9ba740949486e06d174c131124ee53342301e5c6447b5ea5692f731cd054faeb36e2491a
+e0d34665b73a5525134cfd8e655d4a186df17f130746371e6824a2448aca6dd1d2d72dfb6cbf39
+c24d93668db60b958731f23a1f72daa840194a392cde18507d0f232860fabd9ea83f9e943e23b4
+d3f2b7c88cdcded2136c82ef5bc2b745f8beca763ba14055506b1001fbecdc75169a33e74b08d2
+dc5e26a4ca55c42bc3db41bfd959a758fcbfd0dc200dfb0d2eac41aeb7d8257cf1934c58d122c1
+8fe92f1f94c3097b5081a18e963bcd2d78aa3a418fb2af5c57432f77ea5120fe44fbc9fc4288ae
+40fbd4ae63f87fd1af3aa5ff2397a32238567b0b23f031deb140829cc2ce0f0fdac0d1e0144155
+3e1698f089129ba25da5b11c0849ec820c3e18cdd0c0750174a426ce91a2805d3d50f7b2419a17
+a6af399c09407ecbb7323d8ab6e363515e2aa7b66eb8de8082306400cca47eb8838f0a3b228162
+fd45397999d9c047b1306164e63cec5b6de93a1b4895b1d075a8e79e2f987c6f8b70159905fff1
+59d52f2b0a7c53bacdb8ac7d592ef9b2073f90a20979fc1e307c445f7d08837df15a9cb87f436d
+7024a32cbcf5328e4e7f82297baac4eef2d2ca1388cc364dc774f339748d0cd9894fda0a481bde
+5288fdf06de5f225ea3b46b2151735738c4ec5599d85d62e36d3d30f8d75eb5d1ea29369f1a847
+4ea012234234b0dabc64f1177debbc6c568fbc49e5d49027058c6bd8c4fcfc491909822919e094
+b2cfc61f5056bf641fe88fcd7080951733203963a7d9f826e45cc552ef8bf0d3bef39482cb8a3d
+ae77225e71703b6175e0432c6c5b160d27ed3613831b708d8a1f4050bd83c6cece7cec3d956886
+54cfc1a3d8d44fa69997cc57fba92c42dfa67f90765c6ed704f2028c089a60f80f9fbfa165ddfe
+27bf4ac36ee8b9fd4d5120afc826b997e4273a67f07618b23ed6bc836953733e0f3331ff24c8e7
+3ceebd14805a01e2
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+
+%%Page: 1 1
+%%BeginPageSetup
+%%PageBoundingBox: 0 -1 212 484
+%%EndPageSetup
+q 0 -1 212 485 rectclip q
+0 483.095 212 -484 re W n
+1 g
+0 483.095 211.566 -483.094 re f
+0.980392 g
+28.098 266.716 158.008 -185.887 re f
+0 g
+1.175918 w
+0 J
+0 j
+[] 0.0 d
+4 M q 1 0 0 -1 0 483.095367 cm
+28.098 216.379 158.008 185.887 re S Q
+0.588235 g
+0.8 w
+q 1 0 0 -1 0 483.095367 cm
+137.109 239.227 m 137.109 285.289 l S Q
+BT
+11.2 0 0 11.2 125.794472 245.486571 Tm
+/f-0-0 1 Tf
+[<01>-1<0203>]TJ
+ET
+q 1 0 0 -1 0 483.095367 cm
+167.461 360.426 m 167.461 471.82 l S Q
+BT
+11.2 0 0 11.2 156.14778 124.28452 Tm
+/f-0-0 1 Tf
+[<01>-1<0203>]TJ
+ET
+q 1 0 0 -1 0 483.095367 cm
+53.273 256.988 m 53.273 326.484 l S Q
+BT
+11.2 0 0 11.2 41.960955 227.724144 Tm
+/f-0-0 1 Tf
+[<01>-1<0203>]TJ
+ET
+q 1 0 0 -1 0 483.095367 cm
+116.309 344.516 m 116.309 432.195 l S Q
+BT
+11.2 0 0 11.2 104.994472 140.195922 Tm
+/f-0-0 1 Tf
+[<01>-1<0203>]TJ
+ET
+q 1 0 0 -1 0 483.095367 cm
+110.387 438.07 m 122.203 426.238 l S Q
+q 1 0 0 -1 0 483.095367 cm
+110.387 426.25 m 122.191 438.043 l S Q
+q 1 0 0 -1 0 483.095367 cm
+84.879 275.988 m 84.879 363.668 l S Q
+BT
+11.2 0 0 11.2 73.563314 208.723241 Tm
+/f-0-0 1 Tf
+[<01>-1<0203>]TJ
+ET
+q 1 0 0 -1 0 483.095367 cm
+78.953 369.543 m 90.773 357.711 l S Q
+q 1 0 0 -1 0 483.095367 cm
+78.953 357.723 m 90.762 369.516 l S Q
+BT
+11.2 0 0 11.2 69.331636 103.965722 Tm
+/f-0-0 1 Tf
+[<04>-1<0506>-1<02>-1<0708>]TJ
+ET
+BT
+11.2 0 0 11.2 63.414449 92.765722 Tm
+/f-0-0 1 Tf
+[<02>-1<09070a0b>-1<02>-1<09>]TJ
+ET
+BT
+11.2 0 0 11.2 30.283202 83.907836 Tm
+/f-0-0 1 Tf
+[<06>-1<0c0d>-1<0b>]TJ
+ET
+0.941176 g
+28.098 452.615 158.008 -185.887 re f
+0 g
+1.175918 w
+q 1 0 0 -1 0 483.095367 cm
+28.098 30.48 158.008 185.887 re S Q
+0.8 w
+q 1 0 0 -1 0 483.095367 cm
+137.109 53.324 m 137.109 99.387 l S Q
+BT
+11.2 0 0 11.2 125.794472 431.386577 Tm
+/f-0-0 1 Tf
+[<01>-1<0203>]TJ
+ET
+0.666667 g
+114.16 318.041 m 114.16 314.806 111.539 312.185 108.305 312.185 c 
+105.066 312.185 102.445 314.806 102.445 318.041 c 102.445 321.275 
+105.066 323.9 108.305 323.9 c 111.539 323.9 114.16 321.275 114.16 
+318.041 c h
+114.16 318.041 m f
+0 g
+q 1 0 0 -1 0 483.095367 cm
+114.16 165.055 m 114.16 168.289 111.539 170.91 108.305 170.91 c 105.066 
+170.91 102.445 168.289 102.445 165.055 c 102.445 161.82 105.066 159.195 
+108.305 159.195 c 111.539 159.195 114.16 161.82 114.16 165.055 c h
+114.16 165.055 m S Q
+BT
+11.2 0 0 11.2 105.115627 314.328197 Tm
+/f-0-0 1 Tf
+<0e>Tj
+ET
+q 1 0 0 -1 0 483.095367 cm
+167.461 174.527 m 167.461 285.922 l S Q
+BT
+11.2 0 0 11.2 156.14778 310.184508 Tm
+/f-0-0 1 Tf
+[<01>-1<0203>]TJ
+ET
+q 1 0 0 -1 0 483.095367 cm
+53.273 71.086 m 53.273 140.586 l S Q
+BT
+11.2 0 0 11.2 41.960955 413.624138 Tm
+/f-0-0 1 Tf
+[<01>-1<0203>]TJ
+ET
+q 1 0 0 -1 0 483.095367 cm
+116.309 158.617 m 116.309 246.297 l S Q
+BT
+11.2 0 0 11.2 104.994472 326.095922 Tm
+/f-0-0 1 Tf
+[<01>-1<0203>]TJ
+ET
+q 1 0 0 -1 0 483.095367 cm
+110.387 252.168 m 122.203 240.336 l S Q
+q 1 0 0 -1 0 483.095367 cm
+110.387 240.352 m 122.191 252.145 l S Q
+q 1 0 0 -1 0 483.095367 cm
+84.879 90.09 m 84.879 177.77 l S Q
+BT
+11.2 0 0 11.2 73.563314 394.623247 Tm
+/f-0-0 1 Tf
+[<01>-1<0203>]TJ
+ET
+q 1 0 0 -1 0 483.095367 cm
+78.953 183.641 m 90.773 171.809 l S Q
+q 1 0 0 -1 0 483.095367 cm
+78.953 171.824 m 90.762 183.617 l S Q
+BT
+11.2 0 0 11.2 69.331636 289.865709 Tm
+/f-0-0 1 Tf
+[<04>-1<0506>-1<02>-1<0708>]TJ
+ET
+BT
+11.2 0 0 11.2 63.414449 278.665709 Tm
+/f-0-0 1 Tf
+[<02>-1<09070a0b>-1<02>-1<09>]TJ
+ET
+0.666667 g
+49.816 405.685 m 49.816 402.451 47.195 399.826 43.961 399.826 c 40.727 
+399.826 38.102 402.451 38.102 405.685 c 38.102 408.92 40.727 411.541 
+43.961 411.541 c 47.195 411.541 49.816 408.92 49.816 405.685 c h
+49.816 405.685 m f
+0 g
+q 1 0 0 -1 0 483.095367 cm
+49.816 77.41 m 49.816 80.645 47.195 83.27 43.961 83.27 c 40.727 83.27 
+38.102 80.645 38.102 77.41 c 38.102 74.176 40.727 71.555 43.961 71.555 
+c 47.195 71.555 49.816 74.176 49.816 77.41 c h
+49.816 77.41 m S Q
+BT
+11.2 0 0 11.2 40.772768 401.97105 Tm
+/f-0-0 1 Tf
+<0f>Tj
+ET
+0.666667 g
+134.945 423.4 m 134.945 420.162 132.324 417.541 129.09 417.541 c 
+125.855 417.541 123.23 420.162 123.23 423.4 c 123.23 426.634 125.855 
+429.256 129.09 429.256 c 132.324 429.256 134.945 426.634 134.945 423.4 
+c h
+134.945 423.4 m f
+0 g
+q 1 0 0 -1 0 483.095367 cm
+134.945 59.695 m 134.945 62.934 132.324 65.555 129.09 65.555 c 125.855 
+65.555 123.23 62.934 123.23 59.695 c 123.23 56.461 125.855 53.84 129.09 
+53.84 c 132.324 53.84 134.945 56.461 134.945 59.695 c h
+134.945 59.695 m S Q
+BT
+11.2 0 0 11.2 125.901332 419.685344 Tm
+/f-0-0 1 Tf
+<0f>Tj
+ET
+0.666667 g
+82.09 386.541 m 82.09 383.306 79.465 380.685 76.23 380.685 c 72.996 
+380.685 70.375 383.306 70.375 386.541 c 70.375 389.775 72.996 392.4 
+76.23 392.4 c 79.465 392.4 82.09 389.775 82.09 386.541 c h
+82.09 386.541 m f
+0 g
+q 1 0 0 -1 0 483.095367 cm
+82.09 96.555 m 82.09 99.789 79.465 102.41 76.23 102.41 c 72.996 102.41 
+70.375 99.789 70.375 96.555 c 70.375 93.32 72.996 90.695 76.23 90.695 c 
+79.465 90.695 82.09 93.32 82.09 96.555 c h
+82.09 96.555 m S Q
+BT
+11.2 0 0 11.2 73.044197 382.828197 Tm
+/f-0-0 1 Tf
+<10>Tj
+ET
+0.666667 g
+165.305 302.185 m 165.305 298.951 162.68 296.326 159.445 296.326 c 
+156.211 296.326 153.59 298.951 153.59 302.185 c 153.59 305.42 156.211 
+308.041 159.445 308.041 c 162.68 308.041 165.305 305.42 165.305 302.185 
+c h
+165.305 302.185 m f
+0 g
+q 1 0 0 -1 0 483.095367 cm
+165.305 180.91 m 165.305 184.145 162.68 186.77 159.445 186.77 c 156.211 
+186.77 153.59 184.145 153.59 180.91 c 153.59 177.676 156.211 175.055 
+159.445 175.055 c 162.68 175.055 165.305 177.676 165.305 180.91 c h
+165.305 180.91 m S Q
+BT
+11.2 0 0 11.2 156.258486 298.471056 Tm
+/f-0-0 1 Tf
+<11>Tj
+ET
+BT
+11.2 0 0 11.2 26.997481 455.580001 Tm
+/f-0-0 1 Tf
+[<12>-1<0404>-1<0b>-1<13>1<0908>1<0a>-1<14>-1<08>]TJ
+ET
+BT
+11.2 0 0 11.2 30.283202 269.790648 Tm
+/f-0-0 1 Tf
+[<06>-1<0c0d>-1<0b>]TJ
+ET
+q 1 0 0 -1 0 483.095367 cm
+11.531 34.758 m 11.598 116.398 l S Q
+11.59 374.697 m 8.387 377.896 l 11.598 366.697 l 14.789 377.9 l h
+11.59 374.697 m f*
+0.8 w
+q -0.00080459 1 1 0.00080459 0 483.095367 cm
+-108.408 11.503 m -105.206 8.302 l -116.408 11.504 l -105.207 14.704 l 
+h
+-108.408 11.503 m S Q
+Q Q
+showpage
+%%Trailer
+count op_count sub {pop} repeat
+countdictstack dict_count sub {end} repeat
+cairo_eps_state restore
+%%EOF
+
+%%EndDocument
+ @endspecial -2000 33588 26568 37 v 3674 34717 a Fs(Figur)-18
+b(e)249 b(3.)499 b FC(Object)250 b(Lifetimes)e(in)h(a)h(T)-35
+b(race)p Black -2000 37832 a(the)400 b(interpreter)-40
+b(,)401 b(should)e(the)i(guard)f(f)-10 b(ail.)400 b(This)f(means)h
+(that)g(too)g(man)-15 b(y)-2000 38939 y(guard)250 b(operations)f(also)g
+(consume)h(a)f(lot)g(of)g(memory)-65 b(.)-672 40046 y(In)471
+b(the)g(rest)f(of)h(the)g(paper)h(we)f(will)g(see)g(ho)-25
+b(w)471 b(this)g(trace)g(can)h(be)-2000 41153 y(optimized)250
+b(using)f(partial)g(e)-25 b(v)g(aluation.)-2000 43714
+y FA(3.)1218 b(Object)305 b(Lifetimes)h(in)f(a)f(T)-90
+b(racing)304 b(JIT)-2000 45264 y FC(T)-80 b(o)197 b(understand)h(the)g
+(problems)f(that)g(this)g(paper)h(is)f(trying)g(to)g(solv)-15
+b(e)197 b(in)h(more)-2000 46371 y(detail,)261 b(we)g(\002rst)e(need)j
+(to)e(understand)h(v)-25 b(arious)260 b(cases)h(of)f(object)h
+(lifetimes)-2000 47478 y(that)249 b(can)h(occur)g(in)f(a)h(tracing)f
+(JIT)f(compiler)-55 b(.)-672 48585 y(Figure)357 b(3)g(sho)-25
+b(ws)357 b(a)g(trace)h(before)f(optimization,)h(together)f(with)h(the)
+-2000 49692 y(lifetime)326 b(of)f(v)-25 b(arious)326
+b(kinds)g(of)f(objects)h(created)h(in)f(the)g(trace.)g(It)f(is)g(e)-15
+b(x)g(e-)-2000 50799 y(cuted)254 b(from)g(top)g(to)f(bottom.)h(At)g
+(the)g(bottom,)g(a)g(jump)g(is)f(used)h(to)f(e)-15 b(x)g(ecute)-2000
+51906 y(the)269 b(same)g(loop)g(another)g(time)g(\(for)f(clarity)-65
+b(,)270 b(the)f(\002gure)g(sho)-25 b(ws)268 b(tw)-10
+b(o)269 b(itera-)-2000 53013 y(tions)198 b(of)g(the)g(loop\).)g(The)h
+(loop)f(is)f(e)-15 b(x)g(ecuted)200 b(until)e(one)h(of)f(the)g(guards)h
+(in)f(the)-2000 54120 y(trace)246 b(f)-10 b(ails,)244
+b(and)i(the)f(e)-15 b(x)g(ecution)247 b(is)d(aborted)i(and)g
+(interpretation)f(resumes.)-672 55227 y(Some)405 b(of)e(the)i
+(operations)f(within)g(this)g(trace)g(are)g Fr(new)p
+Black Black 405 w FC(operations,)-2000 56334 y(which)345
+b(each)f(create)h(a)f(ne)-25 b(w)345 b(instance)f(of)g(some)g(class.)f
+(These)h(instances)-2000 57441 y(are)338 b(used)f(for)h(some)f(time,)h
+(e.g.,)g(by)g(calling)g(methods)g(on)f(them)h(\(which)-2000
+58548 y(are)242 b(inlined)h(into)f(the)g(trace\),)h(reading)f(and)h
+(writing)f(their)g(\002elds.)g(Some)g(of)-2000 59655
+y(these)321 b(instances)f Fx(escape)p FC(,)h(which)g(means)g(that)g
+(the)-15 b(y)321 b(are)f(stored)h(in)f(some)-2000 60762
+y(globally)284 b(accessible)g(place)h(or)e(are)h(passed)g(into)f(a)h
+(non-inlined)h(function)-2000 61869 y(via)249 b(a)h(residual)f(call.)
+-672 62976 y(T)-80 b(ogether)226 b(with)f(the)g Fr(new)p
+Black Black 225 w FC(operations,)g(the)h(\002gure)f(sho)-25
+b(ws)224 b(the)h(lifetimes)-2000 64082 y(of)335 b(the)h(created)h
+(objects.)e(The)h(objects)g(that)f(are)h(created)h(within)f(a)f(trace)
+-2000 65189 y(using)249 b Fr(new)p Black Black 249 w
+FC(f)-10 b(all)249 b(into)h(one)f(of)g(se)-25 b(v)-15
+b(eral)250 b(cate)-15 b(gories:)p Black -1696 67082 a(1.)p
+Black 388 w(Objects)294 b(that)f(li)-25 b(v)-15 b(e)294
+b(for)f(some)g(time,)g(and)h(are)f(then)h(just)f(not)g(used)g(an)-15
+b(y)-561 68189 y(more)249 b(afterw)-10 b(ards.)p Black
+-1696 69738 a(2.)p Black 388 w(Objects)250 b(that)f(li)-25
+b(v)-15 b(e)250 b(for)e(some)i(time)f(and)h(then)f(escape.)p
+Black -1696 71288 a(3.)p Black 388 w(Objects)292 b(that)g(li)-25
+b(v)-15 b(e)293 b(for)e(some)h(time,)g(survi)-25 b(v)-15
+b(e)292 b(across)g(the)g(jump)g(to)g(the)-561 72395 y(be)-15
+b(ginning)250 b(of)f(the)h(loop,)f(and)h(are)f(then)h(not)f(used)g(an)
+-15 b(y)250 b(more.)p Black Black Black 27528 886 a(4.)p
+Black 388 w(Objects)352 b(that)g(li)-25 b(v)-15 b(e)352
+b(for)f(some)g(time,)h(survi)-25 b(v)-15 b(e)351 b(across)h(the)f
+(jump,)h(and)28663 1993 y(then)271 b(escape.)g(T)-80
+b(o)271 b(these)g(we)g(also)f(count)i(the)e(objects)h(that)g(li)-25
+b(v)-15 b(e)271 b(across)28663 3099 y(se)-25 b(v)-15
+b(eral)249 b(jumps)g(and)h(then)g(either)f(escape)h(or)f(stop)g(being)h
+(used.)28552 4945 y(The)309 b(objects)g(that)g(are)h(allocated)g(in)f
+(the)g(e)-15 b(xample)310 b(trace)g(in)f(Figure)g(2)27224
+6052 y(f)-10 b(all)378 b(into)g(cate)-15 b(gories)379
+b(1)g(and)f(3.)h(Objects)g(stored)f(in)g Fo(p)46971 6163
+y Fn(5)47432 6052 y FC(,)g Fo(p)48573 6163 y Fn(6)49035
+6052 y FC(,)g Fo(p)50176 6163 y Fn(11)51421 6052 y FC(are)h(in)27224
+7159 y(cate)-15 b(gory)250 b(1,)f(objects)h(in)f Fo(p)36494
+7270 y Fn(10)37361 7159 y FC(,)g Fo(p)38373 7270 y Fn(15)39489
+7159 y FC(are)h(in)f(cate)-15 b(gory)250 b(3.)28552 8266
+y(The)357 b(creation)h(of)e(objects)h(in)g(cate)-15 b(gory)358
+b(1)f(is)f(remo)-15 b(v)g(ed)358 b(by)f(the)g(opti-)27224
+9373 y(mization)310 b(described)h(in)f(Sections)g(4)g(and)g(5.)g
+(Objects)h(in)f(the)g(other)g(cate-)27224 10518 y(gories)249
+b(are)g(partially)h(optimized)g(by)f(this)g(approach)h(as)f(well.)49054
+10095 y Fz(6)27224 13016 y FA(4.)1218 b(Allocation)305
+b(Remo)-12 b(v)g(al)304 b(in)h(T)-90 b(races)27224 14566
+y FC(The)284 b(main)g(insight)f(to)h(impro)-15 b(v)g(e)284
+b(the)g(code)h(sho)-25 b(wn)284 b(in)g(Section)g(2.3)g(is)f(that)27224
+15673 y(objects)258 b(in)g(cate)-15 b(gory)259 b(1)g(do)f(not)g(survi)
+-25 b(v)-15 b(e)258 b(v)-15 b(ery)259 b(long)f(\226)g(the)-15
+b(y)259 b(are)f(used)g(only)27224 16780 y(inside)405
+b(the)h(loop)g(and)g(there)g(is)f(no)h(other)f(outside)h(reference)h
+(to)e(them.)27224 17887 y(The)448 b(optimizer)h(identi\002es)f(objects)
+h(in)f(cate)-15 b(gory)450 b(1)e(and)h(remo)-15 b(v)g(es)448
+b(the)27224 18993 y(allocation)250 b(of)f(these)g(objects,)h(and)f(all)
+h(operations)f(manipulating)i(them.)28552 20100 y(This)407
+b(is)f(a)i(process)f(that)g(is)g(usually)g(called)h Fx(escape)g
+(analysis)f FC([18].)27224 21207 y(In)460 b(this)f(paper)h(we)h(will)f
+(perform)g(escape)h(analysis)e(by)i(using)e(partial)27224
+22314 y(e)-25 b(v)g(aluation.)386 b(The)e(use)g(of)h(partial)f(e)-25
+b(v)g(aluation)386 b(is)e(a)h(bit)f(peculiar)h(in)f(that)27224
+23421 y(it)221 b(recei)-25 b(v)-15 b(es)222 b(no)g(static)f(input)g(ar)
+-18 b(guments)222 b(for)f(the)h(trace,)g(b)-20 b(ut)221
+b(it)g(is)g(only)h(used)27224 24528 y(to)344 b(optimize)i(operations)f
+(within)g(the)g(trace.)g(This)f(section)h(will)g(gi)-25
+b(v)-15 b(e)345 b(an)27224 25635 y(informal)230 b(account)i(of)e(this)g
+(process)h(by)f(e)-15 b(xamining)232 b(the)f(e)-15 b(xample)232
+b(trace)f(in)27224 26742 y(Figure)261 b(2.)g(The)g(\002nal)h(trace)f
+(after)h(optimization)g(can)f(be)h(seen)f(in)g(Figure)h(4)27224
+27849 y(\(the)287 b(line)h(numbers)g(are)f(the)h(lines)f(of)h(the)f
+(unoptimized)i(trace)f(where)g(the)27224 28956 y(operation)250
+b(originates\).)28552 30063 y(T)-80 b(o)266 b(optimize)i(the)e(trace,)h
+(it)f(is)g(tra)-20 b(v)-15 b(ersed)267 b(from)f(be)-15
+b(ginning)267 b(to)f(end)h(and)27224 31170 y(an)342 b(output)g(trace)g
+(is)f(produced.)h(Ev)-15 b(ery)342 b(operation)g(in)g(the)f(input)h
+(trace)g(is)27224 32277 y(either)422 b(remo)-15 b(v)g(ed)422
+b(or)g(copied)h(into)e(the)i(output)f(trace.)g(Sometimes)g(ne)-25
+b(w)27224 33384 y(operations)380 b(need)g(to)g(be)g(produced)h(as)f
+(well.)g(The)g(optimizer)g(can)g(only)27224 34491 y(remo)-15
+b(v)g(e)238 b(operations)f(that)h(manipulate)g(objects)g(that)f(ha)-20
+b(v)-15 b(e)238 b(been)g(allocated)27224 35598 y(within)255
+b(the)g(trace,)g(while)g(all)g(other)g(operations)f(are)h(copied)h(to)e
+(the)h(output)27224 36705 y(trace)250 b(unchanged.)28552
+37812 y(Looking)221 b(at)g(the)g(e)-15 b(xample)222 b(trace)f(of)g
+(Figure)f(2,)h(the)g(operations)g(in)g(lines)27224 38919
+y(1\2269)378 b(are)f(manipulating)i(objects)f(which)g(e)-15
+b(xisted)378 b(before)g(the)g(trace)g(and)27224 40026
+y(that)257 b(are)g(passed)g(in)g(as)g(ar)-18 b(guments:)258
+b(therefore)f(the)g(optimizer)h(just)e(copies)27224 41133
+y(them)249 b(into)h(the)f(output)h(trace.)28552 42240
+y(The)f(follo)-25 b(wing)250 b(operations)f(\(lines)g(10\22617\))h(are)
+f(more)g(interesting:)51577 43786 y Fl(10)-22693 b Fj(p)29894
+43897 y Fi(5)30790 43786 y Fp(=)464 b(n)o(e)o(w)o(\()n(B)o(o)o(x)o(e)o
+(d)o(I)o(n)o(t)o(e)o(g)o(e)o(r)o(\))51577 44716 y Fl(12)-22694
+b Fp(s)o(e)o(t)o(\()o Fj(p)31753 44827 y Fi(5)32185 44716
+y Fp(,)463 b(i)o(n)o(t)o(v)o(a)o(l)o(,)i Fj(i)37148 44827
+y Fi(4)37579 44716 y Fp(\))51577 45645 y Fl(15)-22693
+b Fj(p)29894 45756 y Fi(6)30790 45645 y Fp(=)464 b(n)o(e)o(w)o(\()n(B)o
+(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o(e)o(r)o(\))51577
+46575 y Fl(17)-22694 b Fp(s)o(e)o(t)o(\()o Fj(p)31753
+46686 y Fi(6)32185 46575 y Fp(,)463 b(i)o(n)o(t)o(v)o(a)o(l)o(,)g(-)o
+(1)o(0)o(0)o(\))p Black Black 28552 48299 a FC(When)322
+b(the)f(optimizer)h(encounters)g(a)f Fr(new)p Black Black
+FC(,)g(it)g(remo)-15 b(v)g(es)322 b(it)e(optimisti-)27224
+49405 y(cally)-65 b(,)263 b(and)f(assumes)g(that)g(the)g(object)h(is)f
+(in)g(cate)-15 b(gory)263 b(1.)f(If)f(later)i(the)f(opti-)27224
+50512 y(mizer)231 b(\002nds)g(that)g(the)g(object)h(escapes,)f(it)g
+(will)g(be)h(allocated)g(at)f(that)g(point.)27224 51619
+y(The)370 b(optimizer)h(needs)g(to)f(k)-10 b(eep)371
+b(track)g(of)f(the)h(state)f(of)h(the)f(object)h(that)27224
+52726 y(the)385 b(operation)g(w)-10 b(ould)385 b(ha)-20
+b(v)-15 b(e)385 b(created.)h(This)e(is)f(done)j(with)e(the)h(help)g(of)
+27224 53853 y(a)f Fx(static)f(object)33044 53430 y Fz(7)33433
+53853 y FC(.)g(The)h(static)g(object)h(describes)f(the)g(shape)g(of)g
+(the)g(ob-)27224 54960 y(ject)272 b(that)g(w)-10 b(ould)273
+b(ha)-20 b(v)-15 b(e)272 b(been)h(allocated,)g(i.e.,)f(the)h(type)f(of)
+f(the)i(object)f(and)27224 56067 y(where)f(the)h(v)-25
+b(alues)271 b(that)g(w)-10 b(ould)272 b(be)f(stored)g(in)f(the)i
+(\002elds)e(of)h(the)g(allocated)27224 57174 y(object)250
+b(come)g(from.)28552 58281 y(In)315 b(the)h(snippet)f(abo)-15
+b(v)g(e,)317 b(the)e(tw)-10 b(o)316 b Fr(new)p Black
+Black 316 w FC(operations)f(are)h(remo)-15 b(v)g(ed)316
+b(and)27224 59388 y(tw)-10 b(o)297 b(static)f(objects)h(are)g
+(constructed.)h(The)f Fr(set)p Black Black 296 w FC(operations)g
+(manipulate)27224 60495 y(static)251 b(objects,)g(therefore)h(the)-15
+b(y)252 b(can)f(be)h(remo)-15 b(v)g(ed)252 b(as)f(well;)h(their)f(ef)
+-25 b(fect)251 b(is)27224 61602 y(remembered)f(in)f(the)h(static)f
+(objects.)28552 62709 y(After)299 b(the)h(operations)f(the)h(static)f
+(object)h(associated)f(with)h Fo(p)50550 62820 y Fn(5)51310
+62709 y FC(w)-10 b(ould)27224 63816 y(store)418 b(the)i(kno)-25
+b(wledge)420 b(that)f(it)g(is)f(a)i Fr(BoxedInteger)p
+Black Black 420 w FC(whose)f Fr(intval)p Black Black
+27224 64923 a FC(\002eld)255 b(contains)h Fo(i)33176
+65034 y Fn(4)33637 64923 y FC(;)g(the)f(one)h(associated)g(with)f
+Fo(p)44226 65034 y Fn(6)44943 64923 y FC(w)-10 b(ould)255
+b(store)g(that)h(it)f(is)f(a)27224 66030 y Fr(BoxedInteger)p
+Black Black 250 w FC(whose)c Fr(intval)p Black Black
+249 w FC(\002eld)g(contains)f(the)h(constant)f(-100.)p
+Black 27224 67115 13284 37 v 27224 67799 a Fz(6)27722
+68111 y Fw(W)-71 b(e)202 b(also)g(started)h(to)f(w)-9
+b(ork)202 b(on)f(optimizing)h(objects)h(in)e(cate)-13
+b(gory)202 b(3,)g(which)g(will)h(be)27224 69108 y(the)221
+b(subject)h(of)g(a)f(later)h(paper)-49 b(.)27224 70090
+y Fz(7)27722 70403 y Fw(Here)338 b(\223static\224)h(is)g(meant)e(in)h
+(the)g(sense)g(of)f(partial)i(e)-22 b(v)g(aluation,)337
+b(i.e.,)j(kno)-22 b(wn)336 b(at)27224 71399 y(partial)378
+b(e)-22 b(v)g(aluation)378 b(time,)h(not)e(in)h(the)g(sense)h(of)f
+(\223static)h(allocation\224)g(or)e(\223static)27224
+72395 y(method\224.)p Black Black Black eop end
+%%Page: 5 5
+TeXDict begin 5 4 bop Black Black -672 886 a FC(The)287
+b(subsequent)g(operations)f(\(line)h(20\22626\))f(in)h(Figure)f(2,)h
+(which)g(use)-2000 1993 y Fo(p)-1486 2104 y Fn(5)-776
+1993 y FC(and)250 b Fo(p)1426 2104 y Fn(6)1887 1993 y
+FC(,)f(can)h(then)g(be)f(optimized)h(using)f(that)h(kno)-25
+b(wledge:)22353 3438 y Fl(20)-22694 b Fp(g)o(u)o(a)o(r)o(d)2538
+3255 y(_)3003 3438 y(c)o(l)o(a)o(s)o(s)n(\()p Fj(p)6249
+3549 y Fi(5)6680 3438 y Fp(,)464 b(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)o(\))22353 4368 y Fl(22)-22693 b Fj(i)527
+4479 y Fi(7)1423 4368 y Fp(=)464 b(g)o(e)o(t)o(\()p Fj(p)4670
+4479 y Fi(5)5101 4368 y Fp(,)g(i)o(n)o(t)o(v)o(a)o(l)o(\))22353
+5298 y Fl(23)-22694 b Fp(g)o(u)o(a)o(r)o(d)2538 5115
+y(_)3003 5298 y(c)o(l)o(a)o(s)o(s)n(\()p Fj(p)6249 5409
+y Fi(6)6680 5298 y Fp(,)464 b(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o
+(e)o(r)o(\))22353 6227 y Fl(25)-22693 b Fj(i)527 6338
+y Fi(8)1423 6227 y Fp(=)464 b(g)o(e)o(t)o(\()p Fj(p)4670
+6338 y Fi(6)5101 6227 y Fp(,)g(i)o(n)o(t)o(v)o(a)o(l)o(\))22353
+7157 y Fl(26)-22693 b Fj(i)527 7268 y Fi(9)1423 7157
+y Fp(=)464 b(i)o(n)o(t)3748 6974 y(_)4213 7157 y(a)o(d)o(d)o(\()o
+Fj(i)6386 7268 y Fi(7)6818 7157 y Fp(,)g Fj(i)8061 7268
+y Fi(8)8493 7157 y Fp(\))p Black Black -672 8780 a FC(The)336
+b Fr(guard)3878 8571 y(_)4411 8780 y(class)p Black Black
+338 w FC(operations)g(can)h(be)f(remo)-15 b(v)g(ed,)337
+b(since)f(their)g(ar)-20 b(-)-2000 9887 y(guments)249
+b(are)g(static)g(objects)g(with)g(the)h(matching)f(type)h
+Fr(BoxedInteger)p Black Black 1 w FC(.)-2000 10994 y(The)263
+b Fr(get)p Black Black 264 w FC(operations)g(can)h(be)f(remo)-15
+b(v)g(ed)265 b(as)e(well,)g(because)h(each)h(of)e(them)-2000
+12101 y(reads)288 b(a)g(\002eld)g(out)g(of)g(a)g(static)g(object.)g
+(The)g(results)f(of)h(the)g(get)g(operation)-2000 13208
+y(are)227 b(replaced)h(with)e(what)h(the)g(static)g(object)g(stores)f
+(in)g(these)h(\002elds:)f(all)h(the)-2000 14315 y(occurences)213
+b(of)g Fo(i)4030 14426 y Fn(7)4703 14315 y FC(and)g Fo(i)6704
+14426 y Fn(8)7378 14315 y FC(in)f(the)g(trace)h(are)g(just)f(replaced)h
+(by)f Fo(i)20167 14426 y Fn(4)20841 14315 y FC(and)h(-100.)-2000
+15422 y(The)249 b(only)h(operation)g(copied)g(into)f(the)g(optimized)h
+(trace)g(is)f(the)g(addition:)22353 16867 y Fl(26)-22693
+b Fj(i)527 16978 y Fi(9)1423 16867 y Fp(=)464 b(i)o(n)o(t)3748
+16684 y(_)4213 16867 y(a)o(d)o(d)o(\()o Fj(i)6386 16978
+y Fi(4)6818 16867 y Fp(,)e(-)o(1)o(0)o(0)o(\))p Black
+Black -672 18489 a FC(The)204 b(rest)f(of)h(the)g(trace)g(from)g
+(Figure)g(2)g(is)f(optimized)h(in)g(a)g(similar)f(v)-15
+b(ein.)-2000 19596 y(The)262 b(operations)g(in)f(lines)h(27\22635)g
+(produce)g(tw)-10 b(o)262 b(more)g(static)g(objects)f(and)-2000
+20703 y(are)348 b(remo)-15 b(v)g(ed.)349 b(Those)e(in)h(line)g
+(36\22639)h(are)f(just)f(copied)i(into)f(the)g(output)-2000
+21810 y(trace)274 b(because)g(the)-15 b(y)274 b(manipulate)h(objects)e
+(that)h(are)f(allocated)i(before)f(the)-2000 22917 y(trace.)369
+b(Lines)e(40\22642)i(are)f(remo)-15 b(v)g(ed)369 b(because)g(the)-15
+b(y)368 b(operate)h(on)f(a)g(static)-2000 24024 y(object.)213
+b(Line)e(43)h(is)f(copied)i(into)f(the)g(output)g(trace.)g(Lines)g
+(44\22646)g(produce)-2000 25131 y(a)330 b(ne)-25 b(w)331
+b(static)f(object)g(and)g(are)h(remo)-15 b(v)g(ed,)331
+b(lines)e(48\22651)i(manipulate)g(that)-2000 26238 y(static)272
+b(object)i(and)f(are)g(remo)-15 b(v)g(ed)273 b(as)f(well.)h(Lines)f
+(52\22654)i(are)e(copied)i(into)-2000 27345 y(the)249
+b(output)h(trace.)-672 28452 y(The)g(last)f(operation)h(\(line)f(55\))h
+(is)e(an)i(interesting)f(case.)h(It)f(is)g(the)h Fr(jump)p
+Black Black -2000 29559 a FC(operation)387 b(that)h(passes)e(control)h
+(back)g(to)g(the)g(be)-15 b(ginning)388 b(of)e(the)h(trace.)-2000
+30666 y(The)257 b(tw)-10 b(o)257 b(ar)-18 b(guments)258
+b(to)f(this)f(operation)i(at)f(this)f(point)h(are)h(static)f(objects.)
+-2000 31773 y(Ho)-25 b(we)g(v)-15 b(er)-40 b(,)223 b(because)g(the)-15
+b(y)222 b(are)g(passed)g(into)g(the)g(ne)-15 b(xt)222
+b(iteration)g(of)g(the)g(loop)-2000 32880 y(the)-15 b(y)320
+b(li)-25 b(v)-15 b(e)319 b(longer)g(than)h(the)f(trace)h(and)f
+(therefore)h(cannot)f(remain)h(static.)-2000 33987 y(The)-15
+b(y)307 b(need)g(to)g(be)g(turned)g(into)f(dynamic)i(\(runtime\))e
+(objects)h(before)g(the)-2000 35094 y(actual)238 b Fr(jump)p
+Black Black 237 w FC(operation.)g(This)e(process)g(of)h(turning)f(a)i
+(static)e(object)i(into)f(a)-2000 36201 y(dynamic)250
+b(one)g(is)e(called)i Fx(lifting)p FC(.)-672 37308 y(Lifting)427
+b(a)h(static)g(object)g(puts)f Fr(new)p Black Black 428
+w FC(and)h Fr(set)p Black Black 428 w FC(operations)g(into)g(the)-2000
+38415 y(output)373 b(trace.)g(Those)g(operations)g(produce)g(an)g
+(object)h(at)f(runtime)g(that)-2000 39522 y(has)335 b(the)g(shape)g
+(described)h(by)f(the)g(static)f(object.)i(This)e(process)h(is)f(a)h
+(bit)-2000 40629 y(delicate,)350 b(because)f(the)g(static)f(objects)h
+(could)g(form)f(an)g(arbitrary)h(graph)-2000 41736 y(structure.)249
+b(In)g(our)g(e)-15 b(xample)250 b(it)f(is)g(simple,)g(though:)22353
+43181 y Fl(44)-22693 b Fj(p)670 43292 y Fi(15)1943 43181
+y Fp(=)464 b(n)o(e)o(w)o(\()n(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o
+(e)o(r)o(\))22353 44111 y Fl(46)-22694 b Fp(s)o(e)o(t)o(\()p
+Fj(p)2530 44222 y Fi(15)3338 44111 y Fp(,)463 b(i)o(n)o(t)o(v)o(a)o(l)o
+(,)i Fj(i)8301 44222 y Fi(14)9109 44111 y Fp(\))22353
+45041 y Fl(27)-22693 b Fj(p)670 45152 y Fi(10)1943 45041
+y Fp(=)464 b(n)o(e)o(w)o(\()n(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o
+(e)o(r)o(\))22353 45970 y Fl(29)-22694 b Fp(s)o(e)o(t)o(\()p
+Fj(p)2530 46081 y Fi(10)3338 45970 y Fp(,)463 b(i)o(n)o(t)o(v)o(a)o(l)o
+(,)i Fj(i)8301 46081 y Fi(9)8732 45970 y Fp(\))22353
+46900 y Fl(55)-22694 b Fp(j)o(u)o(m)o(p)o(\()p Fj(p)2995
+47011 y Fi(15)3803 46900 y Fp(,)464 b Fj(p)5189 47011
+y Fi(10)5998 46900 y Fp(\))p Black Black -672 48523 a
+FC(Observ)-15 b(e)416 b(ho)-25 b(w)416 b(the)f(operations)h(for)f
+(creating)h(these)f(tw)-10 b(o)416 b(instances)-2000
+49630 y(ha)-20 b(v)-15 b(e)333 b(been)g(mo)-15 b(v)g(ed)332
+b(to)g(a)g(later)g(point)g(in)g(the)g(trace.)h(This)e(is)g(w)-10
+b(orthwhile)-2000 50737 y(e)-25 b(v)-15 b(en)381 b(though)f(the)g
+(objects)g(ha)-20 b(v)-15 b(e)381 b(to)f(be)g(allocated)h(in)f(the)g
+(end)g(because)-2000 51844 y(some)368 b Fr(get)p Black
+Black 368 w FC(operations)h(and)g Fr(guard)11429 51635
+y(_)11962 51844 y(class)p Black Black 369 w FC(operations)f(on)h(the)f
+(lifted)-2000 52951 y(static)249 b(objects)h(could)f(be)h(remo)-15
+b(v)g(ed.)-672 54058 y(More)311 b(generally)-65 b(,)312
+b(lifting)f(needs)g(to)g(occur)g(if)f(a)h(static)g(object)h(is)e(used)
+-2000 55165 y(in)281 b(an)-15 b(y)281 b(operation)h(apart)f(from)g
+Fr(get)p Black Black FC(,)g Fr(set)p Black Black 1 w
+FC(,)f(and)i Fr(guard)p Black Black FC(.)f(It)g(also)g(needs)g(to)-2000
+56272 y(occur)250 b(if)f Fr(set)p Black Black 249 w FC(is)f(used)i(to)f
+(store)g(a)g(static)g(object)h(into)f(a)h(non-static)f(one.)-672
+57378 y(The)198 b(\002nal)g(optimized)h(trace)f(of)g(the)g(e)-15
+b(xample)199 b(can)g(be)f(seen)g(in)g(Figure)g(4.)-2000
+58485 y(The)343 b(optimized)h(trace)f(contains)h(only)f(tw)-10
+b(o)343 b(allocations,)h(instead)f(of)g(the)-2000 59592
+y(original)c(\002)-25 b(v)-15 b(e,)339 b(and)h(only)f(three)g
+Fr(guard)12363 59383 y(_)12896 59592 y(class)p Black
+Black 340 w FC(operations,)g(compared)-2000 60699 y(to)249
+b(the)h(original)f(se)-25 b(v)-15 b(en.)-2000 63097 y
+FA(5.)1218 b(F)-30 b(ormal)304 b(Description)g(of)h(the)g(Algorithm)
+-2000 64646 y FC(In)203 b(this)f(section)h(we)h(w)-10
+b(ant)203 b(to)g(gi)-25 b(v)-15 b(e)204 b(a)f(formal)g(description)g
+(of)g(the)g(semantics)-2000 65753 y(of)404 b(the)g(traces)g(and)g(of)g
+(the)g(optimizer)g(and)h(lik)-10 b(en)404 b(the)g(optimization)h(to)
+-2000 66860 y(partial)429 b(e)-25 b(v)g(aluation.)430
+b(W)-80 b(e)429 b(focus)g(on)f(the)h(operations)g(for)f(manipulating)
+-2000 67967 y(heap)291 b(allocated)g(objects,)g(as)e(those)h(are)h(the)
+f(only)g(ones)g(that)h(are)f(actually)-2000 69074 y(optimized.)197
+b(W)-80 b(e)197 b(also)e(consider)h(only)h(objects)f(with)g(tw)-10
+b(o)196 b(\002elds)g Fo(L)f FC(and)h Fo(R)203 b FC(in)-2000
+70181 y(this)190 b(section,)h(generalizing)h(to)e(arbitrary)h(man)-15
+b(y)191 b(\002elds)f(is)g(straightforw)-10 b(ard.)-2000
+71288 y(T)-35 b(races)328 b(are)g(lists)e(of)i(operations.)g(The)g
+(operations)g(considered)g(here)h(are)-2000 72395 y Fr(new)p
+Black Black FC(,)249 b Fr(get)p Black Black 1 w FC(,)g
+Fr(set)p Black Black 249 w FC(and)h Fr(guard)8396 72186
+y(_)8929 72395 y(class)p Black Black 1 w FC(.)p Black
+Black Black 51577 1315 a Fl(1)p 0.3 0.3 0.3 TeXcolorrgb
+-24631 w Fk(#)p Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3
+TeXcolorrgb 464 w(a)o(r)o(g)o(u)o(m)o(e)o(n)o(t)o(s)p
+Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3 TeXcolorrgb
+463 w(t)o(o)p Black 0.3 0.3 0.3 TeXcolorrgb Black 0.3 0.3 0.3
+TeXcolorrgb 464 w(t)o(h)o(e)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 0.3 0.3 0.3 TeXcolorrgb 463 w(t)o(r)o(a)o(c)o(e)p
+Black 0.3 0.3 0.3 TeXcolorrgb -1 w(:)p Black 0.3 0.3 0.3
+TeXcolorrgb Black 465 w Fj(p)39768 1426 y Fi(0)p 0.3 0.3 0.3
+TeXcolorrgb 40199 1315 a Fk(,)p Black 0.3 0.3 0.3 TeXcolorrgb
+Black 465 w Fj(p)41586 1426 y Fi(1)p 0.3 0.3 0.3 TeXcolorrgb
+Black 51577 2245 a Fl(3)-24631 b Fp(g)o(u)o(a)o(r)o(d)29548
+2062 y(_)30013 2245 y(c)o(l)o(a)o(s)o(s)n(\()p Fj(p)33259
+2356 y Fi(1)33690 2245 y Fp(,)464 b(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)n(\))51577 3175 y Fl(5)-24630 b Fj(i)27537
+3286 y Fi(2)28433 3175 y Fp(=)464 b(g)o(e)o(t)o(\()o
+Fj(p)31679 3286 y Fi(1)32111 3175 y Fp(,)f(i)o(n)o(t)o(v)o(a)o(l)o(\))
+51577 4105 y Fl(6)-24631 b Fp(g)o(u)o(a)o(r)o(d)29548
+3922 y(_)30013 4105 y(c)o(l)o(a)o(s)o(s)n(\()p Fj(p)33259
+4216 y Fi(0)33690 4105 y Fp(,)464 b(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)n(\))51577 5034 y Fl(8)-24630 b Fj(i)27537
+5145 y Fi(3)28433 5034 y Fp(=)464 b(g)o(e)o(t)o(\()o
+Fj(p)31679 5145 y Fi(0)32111 5034 y Fp(,)f(i)o(n)o(t)o(v)o(a)o(l)o(\))
+51577 5964 y Fl(9)-24630 b Fj(i)27537 6075 y Fi(4)28433
+5964 y Fp(=)463 b(i)o(n)o(t)30757 5781 y(_)31222 5964
+y(a)o(d)o(d)o(\()p Fj(i)33396 6075 y Fi(2)33827 5964
+y Fp(,)i Fj(i)35071 6075 y Fi(3)35503 5964 y Fp(\))51577
+6894 y Fl(26)-24907 b Fj(i)27537 7005 y Fi(9)28433 6894
+y Fp(=)463 b(i)o(n)o(t)30757 6711 y(_)31222 6894 y(a)o(d)o(d)o(\()p
+Fj(i)33396 7005 y Fi(4)33827 6894 y Fp(,)g(-)o(1)o(0)o(0)o(\))51577
+8754 y Fl(37)-24908 b Fp(g)o(u)o(a)o(r)o(d)29548 8571
+y(_)30013 8754 y(c)o(l)o(a)o(s)o(s)n(\()p Fj(p)33259
+8865 y Fi(0)33690 8754 y Fp(,)464 b(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o
+(g)o(e)o(r)n(\))51577 9684 y Fl(39)-24907 b Fj(i)27537
+9795 y Fi(12)28810 9684 y Fp(=)463 b(g)o(e)o(t)o(\()p
+Fj(p)32056 9795 y Fi(0)32487 9684 y Fp(,)h(i)o(n)o(t)o(v)o(a)o(l)o(\))
+51577 10614 y Fl(43)-24907 b Fj(i)27537 10725 y Fi(14)28810
+10614 y Fp(=)463 b(i)o(n)o(t)31134 10431 y(_)31599 10614
+y(a)o(d)o(d)o(\()p Fj(i)33773 10725 y Fi(12)34581 10614
+y Fp(,)g(-)o(1)o(\))51577 12473 y Fl(52)-24907 b Fj(i)27537
+12584 y Fi(17)28810 12473 y Fp(=)463 b(i)o(n)o(t)31134
+12290 y(_)31599 12473 y(g)o(t)o(\()p Fj(i)33308 12584
+y Fi(14)34116 12473 y Fp(,)h(0)o(\))51577 13403 y Fl(54)-24908
+b Fp(g)o(u)o(a)o(r)o(d)29548 13220 y(_)30013 13403 y(t)o(r)o(u)o(e)n
+(\()p Fj(i)32651 13514 y Fi(17)33459 13403 y Fp(\))51577
+15263 y Fl(44)h Fj(p)27680 15374 y Fi(15)28953 15263
+y Fp(=)463 b(n)o(e)o(w\()n(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)o(e)o
+(r)o(\))51577 16193 y Fl(46)-24908 b Fp(s)o(e)o(t)o(\()o
+Fj(p)29539 16304 y Fi(15)30347 16193 y Fp(,)464 b(i)o(n)o(t)o(v)o(a)o
+(l)o(,)h Fj(i)35311 16304 y Fi(14)36119 16193 y Fp(\))51577
+17123 y Fl(27)-24907 b Fj(p)27680 17234 y Fi(10)28953
+17123 y Fp(=)463 b(n)o(e)o(w\()n(B)o(o)o(x)o(e)o(d)o(I)o(n)o(t)o(e)o(g)
+o(e)o(r)o(\))51577 18052 y Fl(29)-24908 b Fp(s)o(e)o(t)o(\()o
+Fj(p)29539 18163 y Fi(10)30347 18052 y Fp(,)464 b(i)o(n)o(t)o(v)o(a)o
+(l)o(,)h Fj(i)35311 18163 y Fi(9)35742 18052 y Fp(\))51577
+19912 y Fl(55)-24908 b Fp(j)o(u)o(m)o(p)o(\()o Fj(p)30004
+20023 y Fi(15)30812 19912 y Fp(,)465 b Fj(p)32199 20023
+y Fi(10)33008 19912 y Fp(\))p Black Black 27224 20892
+26568 37 v 29901 22021 a Fs(Figur)-18 b(e)249 b(4.)499
+b FC(Resulting)248 b(T)-35 b(race)250 b(After)f(Allocation)h(Remo)-15
+b(v)-25 b(al)p Black 28552 25493 a(The)437 b(v)-25 b(alues)437
+b(of)g(all)g(v)-25 b(ariables)437 b(are)g(locations)g(\(i.e.,)g
+(pointers\).)f(Lo-)27224 26600 y(cations)422 b(are)g(mapped)i(to)e
+(objects,)g(which)h(are)f(represented)h(by)f(triples)27224
+27706 y Fh(\()p Fo(T)85 b(;)172 b(l)29066 27817 y Fn(1)29526
+27706 y Fo(;)g(l)30288 27817 y Fn(2)30748 27706 y Fh(\))234
+b FC(of)e(a)i(type)f Fo(T)142 b FC(,)234 b(and)f(tw)-10
+b(o)234 b(locations)f(that)g(represent)h(the)f(\002elds)g(of)27224
+28813 y(the)310 b(object.)h(When)f(a)g(ne)-25 b(w)311
+b(object)g(is)e(created,)i(the)f(\002elds)g(are)g(initialized)27224
+29920 y(to)243 b(null,)h(b)-20 b(ut)244 b(we)g(require)g(that)g(the)-15
+b(y)245 b(are)f(initialized)g(to)g(a)g(real)g(location)h(be-)27224
+31027 y(fore)252 b(being)h(read,)g(otherwise)g(the)g(trace)g(is)f
+(malformed)g(\(this)g(condition)h(is)27224 32134 y(guaranteed)d(by)g
+(ho)-25 b(w)249 b(the)h(traces)f(are)h(generated)g(in)f(PyPy\).)28552
+33241 y(W)-80 b(e)234 b(use)f(some)h(abbre)-25 b(viations)234
+b(when)f(dealing)i(with)e(object)h(triples.)f(T)-80 b(o)27224
+34348 y(read)279 b(the)g(type)g(of)f(an)h(object,)g Fh(t)-28
+b(yp)28 b(e)q(\(\()p Fo(T)85 b(;)172 b(l)42199 34459
+y Fn(1)42660 34348 y Fo(;)f(l)43421 34459 y Fn(2)43882
+34348 y Fh(\)\))341 b(=)g Fo(T)421 b FC(is)278 b(used.)g(Reading)27224
+35455 y(a)335 b(\002eld)h Fo(F)477 b FC(from)335 b(an)h(object)g(is)f
+(written)h Fh(\()p Fo(T)85 b(;)172 b(l)43557 35566 y
+Fn(1)44017 35455 y Fo(;)f(l)44778 35566 y Fn(2)45239
+35455 y Fh(\))45637 35566 y FD(F)46650 35455 y FC(which)336
+b(either)g(is)f Fo(l)53330 35566 y Fn(1)27224 36562 y
+FC(if)314 b Fo(F)550 b Fh(=)408 b Fo(L)314 b FC(or)g
+Fo(l)33016 36673 y Fn(2)33791 36562 y FC(if)g Fo(F)550
+b Fh(=)409 b Fo(R)7 b FC(.)314 b(T)-80 b(o)314 b(set)g(\002eld)g
+Fo(F)456 b FC(to)314 b(a)h(ne)-25 b(w)315 b(location)g
+Fo(l)17 b FC(,)313 b(we)27224 37669 y(use)h(the)g(notation)h
+Fh(\()p Fo(T)85 b(;)172 b(l)35819 37780 y Fn(1)36280
+37669 y Fo(;)f(l)37041 37780 y Fn(2)37502 37669 y Fh(\)!)38184
+37780 y FD(F)38862 37669 y Fo(l)17 b FC(,)313 b(which)i(yields)f(a)h
+(ne)-25 b(w)315 b(triple)f Fh(\()p Fo(T)85 b(;)172 b(l)17
+b(;)170 b(l)52932 37780 y Fn(2)53393 37669 y Fh(\))27224
+38776 y FC(if)249 b Fo(F)426 b Fh(=)285 b Fo(L)249 b
+FC(or)g(a)g(ne)-25 b(w)250 b(triple)f Fh(\()p Fo(T)85
+b(;)172 b(l)39037 38887 y Fn(1)39498 38776 y Fo(;)f(l)17
+b Fh(\))248 b FC(if)h Fo(F)426 b Fh(=)285 b Fo(R)7 b
+FC(.)28552 39883 y(Figure)292 b(5)g(sho)-25 b(ws)291
+b(the)h(operational)g(semantics)g(for)f(traces.)h(The)g(inter)-20
+b(-)27224 40990 y(preter)333 b(formalized)h(there)f(e)-15
+b(x)g(ecutes)335 b(one)e(operation)h(at)g(a)f(time.)g(Its)g(state)27224
+42097 y(is)294 b(represented)i(by)f(an)h(en)-40 b(vironment)296
+b Fo(E)352 b FC(and)296 b(a)f(heap)h Fo(H)79 b FC(,)295
+b(which)h(may)f(be)27224 43204 y(changed)377 b(by)f(the)g(e)-15
+b(x)g(ecution)377 b(of)e(an)h(operation.)h(The)f(en)-40
+b(vironment)376 b(is)f(a)27224 44311 y(partial)239 b(function)h(from)f
+(v)-25 b(ariables)240 b(to)f(locations)h(and)f(the)h(heap)g(is)f(a)g
+(partial)27224 45418 y(function)326 b(from)f(locations)g(to)h(objects.)
+f(Note)h(that)g(a)g(v)-25 b(ariable)326 b(can)g(ne)-25
+b(v)-15 b(er)27224 46525 y(be)361 b(null)f(in)h(the)g(en)-40
+b(vironment,)361 b(otherwise)g(the)g(trace)g(w)-10 b(ould)361
+b(ha)-20 b(v)-15 b(e)362 b(been)27224 47632 y(malformed.)351
+b(The)h(en)-40 b(vironment)352 b(could)g(not)f(directly)h(map)f(v)-25
+b(ariables)352 b(to)27224 48739 y(objects,)256 b(because)i(se)-25
+b(v)-15 b(eral)257 b(v)-25 b(ariables)256 b(can)h(point)g(to)f(the)h
+Fx(same)f FC(object,)i(be-)27224 49846 y(cause)249 b(of)g(aliasing.)
+28552 50953 y(W)-80 b(e)388 b(use)f(the)h(follo)-25 b(wing)387
+b(notation)h(for)e(updating)i(partial)g(functions:)27224
+52060 y Fo(E)57 b Fh([)p Fo(v)397 b Fg(7!)361 b Fo(l)17
+b Fh(])288 b FC(denotes)i(the)g(en)-40 b(vironment)290
+b(which)g(is)f(just)f(lik)-10 b(e)290 b Fo(E)57 b FC(,)289
+b(b)-20 b(ut)290 b(maps)27224 53167 y Fo(v)285 b FC(to)249
+b Fo(l)17 b FC(.)28552 54274 y(The)344 b Fr(new)p Black
+Black 343 w FC(operation)h(creates)f(a)f(ne)-25 b(w)345
+b(object)f Fh(\()p Fo(T)85 b(;)172 b Fh(n)-28 b(ull)p
+Fo(;)171 b Fh(n)-28 b(ull\))344 b FC(on)f(the)27224 55380
+y(heap)382 b(under)g(a)g(fresh)f(location)i Fo(l)398
+b FC(and)382 b(adds)g(the)g(result)f(v)-25 b(ariable)383
+b(to)e(the)27224 56487 y(en)-40 b(vironment,)250 b(mapping)g(it)f(to)g
+(the)h(ne)-25 b(w)250 b(location)g Fo(l)17 b FC(.)28552
+57594 y(The)232 b Fr(get)p Black Black 231 w FC(operation)g(reads)f(a)h
+(\002eld)g Fo(F)373 b FC(out)231 b(of)g(an)h(object,)g(and)g(adds)f
+(the)27224 58701 y(result)272 b(v)-25 b(ariable)273 b(to)g(the)g(en)-40
+b(vironment,)274 b(mapping)f(it)f(to)h(the)g(read)g(location.)27224
+59808 y(The)249 b(heap)h(is)f(unchanged.)28552 60915
+y(The)362 b Fr(set)p Black Black 361 w FC(operation)g(changes)h
+(\002eld)e Fo(F)504 b FC(of)361 b(an)h(object)g(stored)f(at)g(the)27224
+62022 y(location)308 b(that)h(v)-25 b(ariable)308 b Fo(v)344
+b FC(maps)308 b(to.)g(The)g(ne)-25 b(w)308 b(v)-25 b(alue)309
+b(of)f(the)g(\002eld)g(is)f(the)27224 63129 y(location)250
+b(in)f(v)-25 b(ariable)250 b Fo(u)p FC(.)f(The)h(en)-40
+b(vironment)250 b(is)e(unchanged.)28552 64236 y(The)302
+b Fr(guard)33068 64027 y(_)33601 64236 y(class)p Black
+Black 304 w FC(operation)h(is)e(used)i(to)f(check)h(whether)g(the)g
+(ob-)27224 65343 y(ject)329 b(stored)f(at)g(the)h(location)g(that)g(v)
+-25 b(ariable)329 b Fo(v)364 b FC(maps)328 b(to)h(is)f(of)g(type)g
+Fo(T)142 b FC(.)329 b(If)27224 66450 y(that)364 b(is)f(the)h(case,)g
+(then)g(e)-15 b(x)g(ecution)365 b(continues)f(without)g(changing)h
+(heap)27224 67557 y(and)249 b(en)-40 b(vironment.)251
+b(Otherwise,)e(e)-15 b(x)g(ecution)251 b(is)e(stopped.)27224
+69738 y Fs(5.1)996 b(Optimizing)249 b(T)-74 b(races)27224
+71288 y FC(T)-80 b(o)397 b(optimize)i(the)f(simple)f(traces)h(of)f(the)
+h(last)g(section,)g(we)g(use)f(online)27224 72395 y(partial)406
+b(e)-25 b(v)g(aluation.)408 b(The)f(partial)g(e)-25 b(v)g(aluator)407
+b(optimizes)g(one)g(operation)p Black Black eop end
+%%Page: 6 6
+TeXDict begin 6 5 bop Black Black Black Black Black 325
+1393 a Fx(ne)-15 b(w)14699 748 y Fo(l)187 b Fh(fresh)p
+4107 1165 23818 43 v 4107 2258 a Fo(v)321 b Fh(=)284
+b Ff(new)q Fh(\()p Fo(T)142 b Fh(\))p Fo(;)172 b(E)57
+b(;)171 b(H)12257 1687 y Fn(run)12041 2258 y Fh(=)-171
+b Fg(\))286 b Fo(E)227 b Fh([)q Fo(v)320 b Fg(7!)285
+b Fo(l)17 b Fh(])170 b Fo(;)h(H)250 b Fh([)p Fo(l)301
+b Fg(7!)284 b Fh(\()p Fo(T)85 b(;)172 b Fh(n)-28 b(ull)p
+Fo(;)171 b Fh(n)-28 b(ull\))q(])32192 1393 y Fx(guar)-37
+b(d)39514 747 y Fh(t)-28 b(yp)28 b(e)q(\()p Fo(H)79 b
+Fh(\()p Fo(E)57 b Fh(\()p Fo(v)36 b Fh(\)\))286 b(=)e
+Fo(T)p 36023 1165 15310 43 v 36023 2258 a Ff(guard)p
+FC(_)q Ff(class)p Fh(\()p Fo(v)36 b(;)171 b(T)142 b Fh(\))p
+Fo(;)172 b(E)57 b(;)171 b(H)47423 1687 y Fn(run)47207
+2258 y Fh(=)-171 b Fg(\))285 b Fo(E)57 b(;)171 b(H)325
+6106 y Fx(g)-10 b(et)p 5307 5878 21419 43 v 5307 6971
+a Fo(u)284 b Fh(=)h Ff(get)p Fh(\()p Fo(v)36 b(;)172
+b(F)142 b Fh(\))p Fo(;)171 b(E)57 b(;)171 b(H)14558 6401
+y Fn(run)14342 6971 y Fh(=)-171 b Fg(\))285 b Fo(E)17257
+6166 y Fe(\002)17683 6971 y Fo(u)g Fg(7!)f Fo(H)250 b
+Fh(\()p Fo(E)228 b Fh(\()q Fo(v)36 b Fh(\)\))24069 7275
+y FD(F)24747 6166 y Fe(\003)25344 6971 y Fo(;)171 b(H)39514
+5461 y Fh(t)-28 b(yp)28 b(e)q(\()p Fo(H)79 b Fh(\()p
+Fo(E)57 b Fh(\()p Fo(v)36 b Fh(\)\))286 b Fg(6)p Fh(=)e
+Fo(T)p 36095 5878 15166 43 v 36095 6971 a Ff(guard)p
+FC(_)p Ff(class)q Fh(\()p Fo(v)36 b(;)171 b(T)142 b Fh(\))p
+Fo(;)172 b(E)57 b(;)171 b(H)47495 6401 y Fn(run)47279
+6971 y Fh(=)-171 b Fg(\))285 b(?)p Fo(;)171 b Fg(?)325
+10202 y Fx(set)p 3377 9974 25279 43 v 3377 11067 a Ff(set)f
+Fh(\()q Fo(v)36 b(;)171 b(F)28 b(;)171 b(u)p Fh(\))g
+Fo(;)g(E)57 b(;)172 b(H)11945 10497 y Fn(run)11729 11067
+y Fh(=)-171 b Fg(\))285 b Fo(E)57 b(;)172 b(H)249 b Fh([)q
+Fo(E)228 b Fh(\()p Fo(v)36 b Fh(\))285 b Fg(7!)f Fh(\()p
+Fo(H)250 b Fh(\()p Fo(E)228 b Fh(\()p Fo(v)36 b Fh(\))q(\)!)25099
+11178 y FD(F)25777 11067 y Fo(E)57 b Fh(\()p Fo(u)p Fh(\)\))q(])-2000
+16080 y Fx(Object)250 b(Domains:)2170 17723 y Fo(u;)171
+b(v)235 b Fg(2)199 b Fo(V)2809 b Fh(v)-57 b(ariables)250
+b(in)g(trace)3008 18830 y Fo(T)341 b Fg(2)199 b Fd(T)2740
+b Fh(run)-28 b(time)249 b(t)-28 b(yp)28 b(es)2951 19937
+y Fo(F)341 b Fg(2)199 b(f)p Fo(L;)171 b(R)7 b Fg(g)448
+b Fh(\014elds)250 b(of)327 b(ob)57 b(jects)3425 21044
+y Fo(l)215 b Fg(2)199 b Fo(L)2709 b Fh(lo)28 b(cations)250
+b(on)f(heap)20296 16272 y Fx(Semantic)i(V)-111 b(alues:)20512
+17723 y Fo(E)256 b Fg(2)199 b Fo(V)512 b(*)285 b(L)13458
+b Fh(En)-28 b(vironmen)g(t)20396 18830 y Fo(H)278 b Fg(2)199
+b Fo(L)284 b(*)h Fd(T)228 b Fg(\002)g Fh(\()p Fo(L)f
+Fg([)g(f)p Fh(n)-28 b(ull)p Fg(g)p Fh(\))228 b Fg(\002)g
+Fh(\()p Fo(L)g Fg([)f(f)p Fh(n)-28 b(ull)p Fg(g)p Fh(\))448
+b(Heap)p -2000 21855 55791 37 v 14148 22984 a Fs(Figur)-18
+b(e)250 b(5.)498 b FC(The)249 b(Operational)i(Semantics)e(of)g
+(Simpli\002ed)h(T)-35 b(races)p Black -2000 26299 a(of)373
+b(a)g(trace)h(at)f(a)h(time.)f(Ev)-15 b(ery)373 b(operation)h(in)f(the)
+h(unoptimized)g(trace)g(is)-2000 27406 y(replaced)313
+b(by)f(a)g(list)f(of)g(operations)h(in)g(the)g(optimized)g(trace.)h
+(This)e(list)g(is)-2000 28513 y(empty)371 b(if)f(the)g(operation)h(can)
+g(be)g(optimized)g(a)-15 b(w)-10 b(ay)-65 b(.)372 b(The)e(optimization)
+-2000 29620 y(rules)481 b(can)g(be)h(seen)f(in)g(Figure)g(6.)g(Lists)f
+(are)h(written)g(using)g(angular)-2000 30727 y(brack)-10
+b(ets)262 b Fo(<)309 b(:::)h(>)p FC(,)263 b(list)e(concatenation)j(is)d
+(e)-15 b(xpressed)262 b(using)g(tw)-10 b(o)262 b(colons:)-2000
+31834 y Fo(l)-1694 31945 y Fn(1)-949 31834 y Fh(::)285
+b Fo(l)210 31945 y Fn(2)671 31834 y FC(.)-672 32941 y(The)358
+b(state)h(of)e(the)i(optimizer)f(is)g(stored)g(in)g(an)g(en)-40
+b(vironment)359 b Fo(E)415 b FC(and)-2000 34048 y(a)309
+b Fx(static)g(heap)g Fo(S)57 b FC(.)308 b(Each)i(step)e(of)h(the)g
+(optimizer)h(tak)-10 b(es)309 b(an)g(operation,)h(an)-2000
+35155 y(en)-40 b(vironment)305 b(and)f(a)g(static)f(heap)i(and)f
+(produces)g(a)g(list)e(of)i(operations,)g(a)-2000 36262
+y(ne)-25 b(w)250 b(en)-40 b(vironment)250 b(and)g(a)f(ne)-25
+b(w)250 b(static)f(heap.)-672 37369 y(The)290 b(en)-40
+b(vironment)290 b(is)f(a)g(partial)h(function)g(from)e(v)-25
+b(ariables)290 b(in)f(the)h(un-)-2000 38476 y(optimized)208
+b(trace)f Fo(V)435 b FC(to)207 b(v)-25 b(ariables)207
+b(in)g(the)g(optimized)h(trace)f Fo(V)19691 38053 y Fc(\003)20377
+38476 y FC(\(which)h(are)-2000 39583 y(themselv)-15 b(es)223
+b(written)g(with)f(a)8560 39160 y Fc(\003)9262 39583
+y FC(for)g(clarity\).)h(The)g(reason)f(for)g(introducing)-2000
+40690 y(ne)-25 b(w)345 b(v)-25 b(ariables)345 b(in)f(the)g(optimized)h
+(trace)g(is)f(that)g(se)-25 b(v)-15 b(eral)345 b(v)-25
+b(ariables)345 b(that)-2000 41797 y(appear)364 b(in)f(the)g
+(unoptimized)h(trace)g(can)f(turn)g(into)g(the)g(same)g(v)-25
+b(ariables)-2000 42904 y(in)308 b(the)g(optimized)g(trace.)h(The)f(en)
+-40 b(vironment)309 b(of)e(the)h(optimizer)g(serv)-15
+b(es)308 b(a)-2000 44011 y(function)267 b(similar)g(to)g(that)g(of)f
+(the)i(en)-40 b(vironment)268 b(in)f(the)g(semantics:)g(to)g(e)-15
+b(x-)-2000 45118 y(press)248 b(sharing.)-672 46225 y(The)207
+b(static)g(heap)g(is)f(a)h(partial)g(function)g(from)f
+Fo(V)16248 45801 y Fc(\003)16934 46225 y FC(into)g(the)h(set)g(of)f
+(static)-2000 47332 y(objects,)331 b(which)h(are)f(triples)f(of)h(a)g
+(type)g(and)h(tw)-10 b(o)331 b(elements)g(of)g Fo(V)21958
+46908 y Fc(\003)22438 47332 y FC(.)g(The)-2000 48439
+y(object)309 b(referenced)h(by)f(a)f(v)-25 b(ariable)310
+b Fo(v)11336 48015 y Fc(\003)12124 48439 y FC(is)e(static,)h(if)f
+Fo(v)17208 48015 y Fc(\003)17996 48439 y FC(is)g(in)g(the)h(domain)
+-2000 49546 y(of)293 b(the)g(static)g(heap)h Fo(S)57
+b FC(.)293 b(The)g(object)h Fo(S)57 b Fh(\()p Fo(v)12612
+49122 y Fc(\003)13091 49546 y Fh(\))293 b FC(describes)g(what)h(is)f
+(statically)-2000 50652 y(kno)-25 b(wn)361 b(about)f(the)g(object,)h
+(i.e.,)f(its)f(type)h(and)g(its)f(\002elds.)h(The)g(\002elds)f(of)-2000
+51759 y(objects)243 b(in)g(the)g(static)g(heap)h(are)f(also)g(elements)
+g(of)g Fo(V)17001 51336 y Fc(\003)17724 51759 y FC(\(or)f(null,)h(for)g
+(short)-2000 52866 y(periods)249 b(of)g(time\).)-672
+53973 y(When)331 b(the)g(optimizer)g(sees)e(a)i Fr(new)p
+Black Black 330 w FC(operation,)g(it)f(optimistically)g(re-)-2000
+55080 y(mo)-15 b(v)g(es)288 b(it)f(and)h(assumes)e(that)i(the)g
+(resulting)f(object)h(can)g(stay)f(static.)h(The)-2000
+56187 y(optimization)309 b(for)g(all)f(further)g(operations)h(is)f
+(split)g(into)h(tw)-10 b(o)309 b(cases.)f(One)-2000 57294
+y(case)233 b(is)f(for)g(when)i(the)f(in)-40 b(v)-20 b(olv)-15
+b(ed)233 b(v)-25 b(ariables)234 b(are)e(in)h(the)g(static)g(heap,)g
+(which)-2000 58401 y(means)211 b(that)g(the)h(operation)f(can)h(be)f
+(performed)g(at)g(optimization)h(time)f(and)-2000 59508
+y(can)353 b(be)h(remo)-15 b(v)g(ed)353 b(from)g(the)g(trace.)g(These)g
+(rules)f(mirror)g(the)h(e)-15 b(x)g(ecution)-2000 60615
+y(semantics)253 b(closely)-65 b(.)253 b(The)g(other)g(case)g(is)f(for)g
+(when)i(not)e(enough)i(is)e(kno)-25 b(wn)-2000 61722
+y(about)250 b(the)f(v)-25 b(ariables,)250 b(and)g(the)f(operation)h
+(has)f(to)g(be)h(residualized.)-672 62829 y(If)336 b(the)h(ar)-18
+b(gument)337 b Fo(v)373 b FC(of)336 b(a)h Fr(get)p Black
+Black 337 w FC(operation)g(is)f(mapped)h(to)g(something)-2000
+63936 y(in)298 b(the)g(static)g(heap,)h(the)f Fr(get)p
+Black Black 298 w FC(can)g(be)h(performed)f(at)g(optimization)h(time.)
+-2000 65043 y(Otherwise,)250 b(the)f Fr(get)p Black Black
+250 w FC(operation)h(needs)f(to)g(be)h(residualized.)-672
+66150 y(If)327 b(the)g(\002rst)f(ar)-18 b(gument)327
+b Fo(v)363 b FC(to)327 b(a)g Fr(set)p Black Black 327
+w FC(operation)h(is)e(mapped)i(to)f(some-)-2000 67257
+y(thing)391 b(in)g(the)g(static)f(heap,)i(then)f(the)g
+Fr(set)p Black Black 391 w FC(can)g(be)g(performed)g(at)g(opti-)-2000
+68364 y(mization)313 b(time)f(\(which)g(updates)g(the)g(static)g
+(heap\).)g(Otherwise)h(the)f Fr(set)p Black Black -2000
+69471 a FC(operation)235 b(needs)f(to)g(be)h(residualized.)g(This)e
+(needs)i(to)f(be)g(done)h(carefully)-65 b(,)-2000 70578
+y(because)222 b(the)f(ne)-25 b(w)221 b(v)-25 b(alue)222
+b(for)e(the)h(\002eld,)g(from)f(the)h(v)-25 b(ariable)221
+b Fo(u)p FC(,)g(could)h(itself)-2000 71685 y(be)250 b(static,)f(in)g
+(which)h(case)f(it)g(needs)h(to)f(be)h(lifted)f(\002rst.)p
+Black Black 28552 26299 a(If)214 b(a)i Fr(guard)32753
+26090 y(_)33286 26299 y(class)p Black Black 216 w FC(is)e(performed)h
+(on)g(a)g(v)-25 b(ariable)216 b(that)f(is)g(in)f(the)i(static)27224
+27406 y(heap,)250 b(the)g(type)h(check)g(can)f(be)g(performed)g(at)g
+(optimization)h(time,)f(which)27224 28513 y(means)255
+b(the)f(operation)i(can)f(be)g(remo)-15 b(v)g(ed)255
+b(if)f(the)h(types)f(match.)i(If)d(the)i(type)27224 29620
+y(check)345 b(f)-10 b(ails)343 b(statically)h(or)g(if)g(the)g(object)g
+(is)g(not)g(in)g(the)g(static)g(heap,)g(the)27224 30727
+y Fr(guard)29889 30518 y(_)30422 30727 y(class)p Black
+Black 333 w FC(is)332 b(residualized.)i(This)d(also)i(needs)f(to)h
+(lift)f(the)h(v)-25 b(ariable)27224 31834 y(on)249 b(which)h(the)f
+Fr(guard)35284 31625 y(_)35817 31834 y(class)p Black
+Black 251 w FC(is)f(performed.)28552 32941 y(Lifting)300
+b(tak)-10 b(es)300 b(a)h(v)-25 b(ariable)301 b(and)g(turns)f(it)g(into)
+g(a)h(dynamic)g(v)-25 b(ariable.)301 b(If)27224 34048
+y(the)316 b(v)-25 b(ariable)317 b(is)f(already)h(dynamic,)g(nothing)g
+(needs)f(to)g(be)h(done.)g(If)e(it)h(is)27224 35155 y(in)346
+b(the)h(static)g(heap,)g(operations)g(are)g(emitted)g(that)f(construct)
+h(an)g(object)27224 36262 y(with)336 b(the)f(shape)h(described)g
+(there,)g(and)g(the)g(v)-25 b(ariable)337 b(is)e(remo)-15
+b(v)g(ed)336 b(from)27224 37369 y(the)249 b(static)g(heap.)28552
+38476 y(Lifting)328 b(a)g(static)g(object)h(needs)f(to)g(recursi)-25
+b(v)-15 b(ely)329 b(lift)e(its)g(\002elds.)h(Some)27224
+39583 y(care)417 b(needs)g(to)g(be)g(tak)-10 b(en)418
+b(when)f(lifting)f(a)h(static)g(object,)h(because)f(the)27224
+40690 y(structures)456 b(described)h(by)g(the)g(static)g(heap)h(can)f
+(be)g(c)-15 b(yclic.)458 b(T)-80 b(o)457 b(mak)-10 b(e)27224
+41797 y(sure)286 b(that)g(the)h(same)f(static)g(object)h(is)f(not)g
+(lifted)g(twice,)h(the)g Fr(liftfield)p Black Black 27224
+42904 a FC(operation)271 b(remo)-15 b(v)g(es)271 b(it)g(from)f(the)h
+(static)g(heap)h Fx(befor)-37 b(e)271 b FC(recursi)-25
+b(v)-15 b(ely)271 b(lifting)27224 44011 y(its)248 b(\002elds.)28552
+45118 y(As)h(an)h(e)-15 b(xample)250 b(for)f(lifting,)g(consider)g(the)
+g(static)h(heap)32088 46777 y Fg(f)p Fo(v)33133 46299
+y Fc(\003)33897 46777 y Fg(7!)284 b Fh(\()p Fo(T)36200
+46888 y Fn(1)36662 46777 y Fo(;)171 b(w)37878 46299 y
+Fc(\003)38358 46777 y Fo(;)g(v)39346 46299 y Fc(\003)39825
+46777 y Fh(\))p Fo(;)h(w)41440 46299 y Fc(\003)42203
+46777 y Fg(7!)285 b Fh(\()p Fo(T)44507 46888 y Fn(2)44969
+46777 y Fo(;)171 b(u)46013 46299 y Fc(\003)46493 46777
+y Fo(;)g(u)47537 46299 y Fc(\003)48017 46777 y Fh(\))p
+Fg(g)27224 48437 y FC(which)448 b(contains)g(tw)-10 b(o)448
+b(static)g(objects.)g(If)f Fo(v)43520 48014 y Fc(\003)44447
+48437 y FC(needs)h(to)g(be)g(lifted,)f(the)27224 49544
+y(follo)-25 b(wing)249 b(residual)h(operations)f(are)g(produced:)29438
+51134 y Fj(v)29909 50800 y Fb(\003)30835 51134 y Fp(=)464
+b(n)o(e)o(w)o(\()p Fj(T)34149 51245 y Fi(1)34580 51134
+y Fp(\))29438 52064 y Fj(w)30099 51730 y Fb(\003)31026
+52064 y Fp(=)f(n)o(e)o(w)o(\()p Fj(T)34339 52175 y Fi(2)34770
+52064 y Fp(\))29437 52994 y(s)o(e)o(t)o(\()o Fj(w)31958
+52660 y Fb(\003)32420 52994 y Fp(,)i Fj(L)p Fp(,)f Fj(u)35411
+52660 y Fb(\003)35874 52994 y Fp(\))29437 53924 y(s)o(e)o(t)o(\()o
+Fj(w)31958 53590 y Fb(\003)32420 53924 y Fp(,)h Fj(R)s
+Fp(,)g Fj(u)35475 53590 y Fb(\003)35937 53924 y Fp(\))29437
+54854 y(s)o(e)o(t)o(\()o Fj(v)31768 54520 y Fb(\003)32230
+54854 y Fp(,)g Fj(L)o Fp(,)g Fj(w)35359 54520 y Fb(\003)35821
+54854 y Fp(\))29437 55784 y(s)o(e)o(t)o(\()o Fj(v)31768
+55449 y Fb(\003)32230 55784 y Fp(,)g Fj(R)r Fp(,)g Fj(v)35232
+55449 y Fb(\003)35694 55784 y Fp(\))p Black Black 28552
+57551 a FC(After)330 b(the)g(lifting)g(the)g(static)g(heap)h(is)f(the)g
+(empty)h(set,)e(because)i(both)27224 58658 y(static)223
+b(objects)g(were)h(lifted.)f(If)g(we)g(had)h(lifted)f
+Fo(w)44349 58235 y Fc(\003)45052 58658 y FC(instead)g(of)g
+Fo(v)49683 58235 y Fc(\003)50163 58658 y FC(,)g(then)g(the)27224
+59765 y(follo)-25 b(wing)249 b(operations)h(w)-10 b(ould)250
+b(ha)-20 b(v)-15 b(e)250 b(been)g(produced:)29438 61356
+y Fj(w)30099 61022 y Fb(\003)31026 61356 y Fp(=)463 b(n)o(e)o(w)o(\()p
+Fj(T)34339 61467 y Fi(2)34770 61356 y Fp(\))29437 62285
+y(s)o(e)o(t)o(\()o Fj(w)31958 61951 y Fb(\003)32420 62285
+y Fp(,)i Fj(L)p Fp(,)f Fj(u)35411 61951 y Fb(\003)35874
+62285 y Fp(\))29437 63215 y(s)o(e)o(t)o(\()o Fj(w)31958
+62881 y Fb(\003)32420 63215 y Fp(,)h Fj(R)s Fp(,)g Fj(u)35475
+62881 y Fb(\003)35937 63215 y Fp(\))p Black Black 28552
+64983 a FC(In)249 b(this)g(case,)g(the)h(static)f(heap)h(afterw)-10
+b(ards)249 b(w)-10 b(ould)250 b(be:)36183 66642 y Fg(f)p
+Fo(v)37228 66164 y Fc(\003)37993 66642 y Fg(7!)284 b
+Fh(\()p Fo(T)40296 66753 y Fn(1)40758 66642 y Fo(;)171
+b(w)41974 66164 y Fc(\003)42453 66642 y Fo(;)g(v)43441
+66164 y Fc(\003)43921 66642 y Fh(\))p Fg(g)27224 68632
+y Fs(5.2)996 b(Analysis)249 b(of)g(the)g(Algorithm)27224
+70181 y FC(While)275 b(we)f(do)h(not)f(of)-25 b(fer)274
+b(a)h(formal)f(proof)g(of)g(it,)g(it)g(can)h(ar)-18 b(gue)275
+b(informally)27224 71288 y(that)309 b(the)g(algorithm)g(presented)g
+(abo)-15 b(v)g(e)310 b(is)e(sound:)h(it)f(w)-10 b(orks)309
+b(by)g(delaying)27224 72395 y(\(and)323 b(often)g(completely)h(remo)-15
+b(ving\))324 b(some)f(operations.)g(The)g(algorithm)p
+Black Black eop end
+%%Page: 7 7
+TeXDict begin 7 6 bop Black Black Black Black Black 7379
+8835 a Fx(ne)-15 b(w)26088 8191 y Fo(v)26621 7767 y Fc(\003)27271
+8191 y Fh(fresh)p 14598 8607 26305 43 v 14598 9863 a
+Fo(v)321 b Fh(=)284 b Ff(new)q Fh(\()p Fo(T)142 b Fh(\))p
+Fo(;)172 b(E)57 b(;)171 b(S)22526 9252 y Fn(opt)22288
+9863 y Fh(=)-171 b Fg(\))286 b(h)170 b(i)h Fo(;)g(E)228
+b Fh([)q Fo(v)320 b Fg(7!)284 b Fo(v)29739 9577 y Fc(\003)30219
+9863 y Fh(])171 b Fo(;)g(S)227 b Fh([)q Fo(v)32800 9577
+y Fc(\003)33564 9863 y Fg(7!)284 b Fh(\()p Fo(T)85 b(;)172
+b Fh(n)-28 b(ull)p Fo(;)171 b Fh(n)-28 b(ull\))q(])7379
+13548 y Fx(g)-10 b(et)24348 12903 y Fo(E)57 b Fh(\()p
+Fo(v)36 b Fh(\))285 b Fg(2)f Fh(dom\()p Fo(S)57 b Fh(\))p
+16923 13320 21654 43 v 16923 14576 a Fo(u)285 b Fh(=)g
+Ff(get)p Fh(\()p Fo(v)36 b(;)171 b(F)142 b Fh(\))p Fo(;)172
+b(E)57 b(;)171 b(S)25952 13966 y Fn(opt)25714 14576 y
+Fh(=)-171 b Fg(\))285 b(h)171 b(i)g Fo(;)g(E)228 b Fh([)q
+Fo(u)284 b Fg(7!)h Fo(S)57 b Fh(\()p Fo(E)g Fh(\()p Fo(v)36
+b Fh(\)\))36307 14687 y FD(F)36985 14576 y Fh(])171 b
+Fo(;)g(S)22174 17616 y(E)57 b Fh(\()p Fo(v)36 b Fh(\))399
+b Fo(=)-626 b Fg(2)284 b Fh(dom\()p Fo(S)57 b Fh(\))p
+Fo(;)683 b(u)30534 17193 y Fc(\003)31185 17616 y Fh(fresh)p
+14527 18034 26447 43 v 14527 19290 a Fo(u)285 b Fh(=)f
+Ff(get)p Fh(\()p Fo(v)36 b(;)172 b(F)142 b Fh(\))p Fo(;)171
+b(E)57 b(;)171 b(S)23556 18679 y Fn(opt)23318 19290 y
+Fh(=)-171 b Fg(\))285 b(h)p Fo(u)26239 19004 y Fc(\003)27004
+19290 y Fh(=)f Ff(get)q Fh(\()p Fo(E)57 b Fh(\()p Fo(v)36
+b Fh(\))p Fo(;)172 b(F)142 b Fh(\))p Fg(i)171 b Fo(;)g(E)228
+b Fh([)p Fo(u)285 b Fg(7!)f Fo(u)38901 19004 y Fc(\003)39381
+19290 y Fh(])171 b Fo(;)g(S)7379 22975 y Fx(set)24348
+22330 y Fo(E)57 b Fh(\()p Fo(v)36 b Fh(\))285 b Fg(2)f
+Fh(dom\()p Fo(S)57 b Fh(\))p 14851 22747 25799 43 v 14851
+24003 a Ff(set)171 b Fh(\()p Fo(v)36 b(;)171 b(F)28 b(;)171
+b(u)p Fh(\))h Fo(;)f(E)57 b(;)171 b(S)23197 23393 y Fn(opt)22960
+24003 y Fh(=)-171 b Fg(\))285 b(h)170 b(i)h Fo(;)g(E)57
+b(;)172 b(S)227 b Fh([)p Fo(E)h Fh(\()p Fo(v)36 b Fh(\))285
+b Fg(7!)f Fh(\()p Fo(S)57 b Fh(\()p Fo(E)g Fh(\()p Fo(v)36
+b Fh(\)\)!)37092 24114 y FD(F)37771 24003 y Fo(E)57 b
+Fh(\()p Fo(u)p Fh(\)\))q(])18860 27438 y Fo(E)g Fh(\()p
+Fo(v)36 b Fh(\))399 b Fo(=)-625 b Fg(2)284 b Fh(dom)170
+b(\()q Fo(S)57 b Fh(\))170 b Fo(;)341 b Fh(\()p Fo(E)57
+b Fh(\()p Fo(v)36 b Fh(\))p Fo(;)172 b(S)57 b Fh(\))31293
+26868 y Fn(lift)30989 27438 y Fh(=)-171 b Fg(\))285 b
+Fh(\(ops)p Fo(;)171 b(S)35944 27015 y Fc(0)36242 27438
+y Fh(\))p 15352 27855 24797 43 v 15352 29112 a Ff(set)f
+Fh(\()q Fo(v)36 b(;)171 b(F)28 b(;)171 b(u)p Fh(\))g
+Fo(;)g(E)57 b(;)172 b(S)23698 28501 y Fn(opt)23460 29112
+y Fh(=)-171 b Fg(\))285 b Fh(ops)f(::)i Fg(h)p Ff(set)171
+b Fh(\()p Fo(E)57 b Fh(\()p Fo(v)36 b Fh(\))p Fo(;)172
+b(F)28 b(;)171 b(E)57 b Fh(\()p Fo(u)p Fh(\)\))q Fg(i)171
+b Fo(;)g(E)57 b(;)171 b(S)39851 28826 y Fc(0)7379 32797
+y Fx(guar)-37 b(d)19794 32152 y Fo(E)57 b Fh(\()p Fo(v)36
+b Fh(\))285 b Fg(2)f Fh(dom\()p Fo(S)57 b Fh(\))p Fo(;)342
+b Fh(t)-28 b(yp)28 b(e)q(\()p Fo(S)57 b Fh(\()p Fo(E)g
+Fh(\()p Fo(v)36 b Fh(\)\)\))285 b(=)g Fo(T)p 19543 32569
+16414 43 v 19543 33825 a Ff(guard)p FC(_)p Ff(class)q
+Fh(\()p Fo(v)36 b(;)171 b(T)142 b Fh(\))p Fo(;)172 b(E)57
+b(;)171 b(S)30720 33214 y Fn(opt)30483 33825 y Fh(=)-171
+b Fg(\))285 b(h)171 b(i)f Fo(;)i(E)57 b(;)171 b(S)14249
+37260 y(E)57 b Fh(\()p Fo(v)36 b Fh(\))399 b Fo(=)-625
+b Fg(2)284 b Fh(dom\()p Fo(S)57 b Fh(\))227 b Fg(_)g
+Fh(t)-28 b(yp)28 b(e)q(\()p Fo(S)57 b Fh(\()p Fo(E)g
+Fh(\()p Fo(v)36 b Fh(\)\)\))285 b Fg(6)p Fh(=)g Fo(T)85
+b(;)342 b Fh(\()p Fo(E)57 b Fh(\()p Fo(v)36 b Fh(\))p
+Fo(;)172 b(S)57 b Fh(\))35904 36690 y Fn(lift)35600 37260
+y Fh(=)-171 b Fg(\))285 b Fh(\(ops)p Fo(;)171 b(S)40555
+36837 y Fc(0)40852 37260 y Fh(\))p 13068 37677 29365
+43 v 13068 38933 a Ff(guard)p FC(_)p Ff(class)p Fh(\()p
+Fo(v)36 b(;)172 b(T)142 b Fh(\))p Fo(;)172 b(E)57 b(;)171
+b(S)24245 38323 y Fn(opt)24007 38933 y Fh(=)-171 b Fg(\))286
+b Fh(ops)e(::)h Fg(h)p Ff(guard)p FC(_)p Ff(class)q Fh(\()p
+Fo(E)228 b Fh(\()p Fo(v)36 b Fh(\))171 b Fo(;)g(T)142
+b Fh(\))p Fg(i)171 b Fo(;)h(E)57 b(;)171 b(S)42135 38647
+y Fc(0)7379 42619 y Fx(lifting)24912 41973 y Fo(v)25445
+41550 y Fc(\003)26323 41973 y Fo(=)-626 b Fg(2)284 b
+Fh(dom\()p Fo(S)57 b Fh(\))p 24428 42391 6644 43 v 24428
+43659 a Fo(v)24961 43373 y Fc(\003)25441 43659 y Fo(;)171
+b(S)27166 43089 y Fn(lift)26863 43659 y Fh(=)-171 b Fg(\))285
+b(h)171 b(i)g Fo(;)g(S)19532 47082 y(v)20065 46658 y
+Fc(\003)20829 47082 y Fg(2)285 b Fh(dom\()p Fo(S)57 b
+Fh(\))p Fo(;)341 b Fh(\()p Fo(v)26766 46658 y Fc(\003)27246
+47082 y Fo(;)171 b(S)57 b Fh(\))29077 46512 y Fn(lift\014elds)29066
+47082 y Fh(=)-171 b(=)g(=)g Fg(\))286 b Fh(\(ops)p Fo(;)171
+b(S)35272 46658 y Fc(0)35570 47082 y Fh(\))p 17885 47499
+19731 43 v 17885 48767 a Fo(v)18418 48481 y Fc(\003)18897
+48767 y Fo(;)g(S)20623 48197 y Fn(lift)20319 48767 y
+Fh(=)-171 b Fg(\))285 b(h)p Fo(v)23184 48481 y Fc(\003)23949
+48767 y Fh(=)f Ff(new)171 b Fh(\(t)-28 b(yp)28 b(e)172
+b(\()p Fo(S)227 b Fh(\()p Fo(v)31483 48481 y Fc(\003)31963
+48767 y Fh(\)\)\))p Fg(i)285 b Fh(::)g Fo(ops;)171 b(S)37318
+48481 y Fc(0)11321 51385 y Fe(\000)11790 52190 y Fo(S)227
+b Fh(\()p Fo(v)13574 51767 y Fc(\003)14054 52190 y Fh(\))14452
+52494 y FD(L)15240 52190 y Fo(;)171 b(S)284 b Fg(n)227
+b(f)p Fo(v)18389 51767 y Fc(\003)19154 52190 y Fg(7!)284
+b Fo(S)227 b Fh(\()p Fo(v)22246 51767 y Fc(\003)22726
+52190 y Fh(\))p Fg(g)23636 51385 y Fe(\001)24693 51620
+y Fn(lift)24390 52190 y Fh(=)-171 b Fg(\))285 b Fh(\(ops)28207
+52439 y FD(L)28824 52190 y Fo(;)171 b(S)29962 51767 y
+Fc(0)30260 52190 y Fh(\))f Fo(;)31454 51385 y Fe(\000)31923
+52190 y Fo(S)227 b Fh(\()p Fo(v)33707 51767 y Fc(\003)34187
+52190 y Fh(\))34585 52494 y FD(R)35426 52190 y Fo(;)171
+b(S)36564 51767 y Fc(0)36862 51385 y Fe(\001)37919 51620
+y Fn(lift)37616 52190 y Fh(=)-171 b Fg(\))285 b Fh(\(ops)41433
+52439 y FD(R)42103 52190 y Fo(;)171 b(S)43241 51767 y
+Fc(00)43781 52190 y Fh(\))p 11221 52707 33058 43 v 11221
+53975 a Fo(v)11754 53689 y Fc(\003)12234 53975 y Fo(;)g(S)13667
+53405 y Fn(lift\014elds)13656 53975 y Fh(=)-171 b(=)g(=)g
+Fg(\))286 b Fh(ops)18326 54224 y FD(L)19228 53975 y Fh(::)f(ops)21566
+54224 y FD(R)22520 53975 y Fh(::)23374 53170 y Fe(\012)23857
+53975 y Ff(set)25597 53170 y Fe(\000)26066 53975 y Fo(v)26599
+53689 y Fc(\003)27079 53975 y Fo(;)171 b(L;)g(S)227 b
+Fh(\()p Fo(v)30470 53689 y Fc(\003)30950 53975 y Fh(\))31348
+54280 y FD(L)31965 53170 y Fe(\001)32605 53975 y Fo(;)342
+b Ff(set)34971 53170 y Fe(\000)35440 53975 y Fo(v)35973
+53689 y Fc(\003)36453 53975 y Fo(;)171 b(R)7 b(;)171
+b(S)227 b Fh(\()p Fo(v)39929 53689 y Fc(\003)40409 53975
+y Fh(\))40807 54280 y FD(R)41477 53170 y Fe(\001\013)42601
+53975 y Fo(;)171 b(S)43739 53689 y Fc(00)-2000 57817
+y Fx(Object)250 b(Domains:)417 59460 y Fo(u;)172 b(v)235
+b Fg(2)199 b Fo(V)2809 b Fh(v)-57 b(ariables)250 b(in)f(trace)-542
+60567 y Fo(u)47 60143 y Fc(\003)527 60567 y Fo(;)171
+b(v)1515 60143 y Fc(\003)2194 60567 y Fg(2)199 b Fo(V)3901
+60143 y Fc(\003)6482 60567 y Fh(v)-57 b(ariables)250
+b(in)f(optimized)i(trace)1255 61674 y Fo(T)342 b Fg(2)199
+b Fd(T)2740 b Fh(run)-28 b(time)249 b(t)-28 b(yp)28 b(es)1199
+62781 y Fo(F)341 b Fg(2)199 b(f)p Fo(L;)171 b(R)7 b Fg(g)448
+b Fh(\014elds)249 b(of)327 b(ob)57 b(jects)20296 58009
+y Fx(Semantic)251 b(V)-111 b(alues:)20396 59460 y Fo(E)256
+b Fg(2)199 b Fo(V)512 b(*)285 b(V)25529 59036 y Fc(\003)40683
+59460 y Fh(En)-28 b(vironmen)g(t)20524 60567 y Fo(S)255
+b Fg(2)199 b Fo(V)23112 60143 y Fc(\003)23876 60567 y
+Fo(*)284 b Fd(T)228 b Fg(\002)g Fh(\()p Fo(V)28325 60143
+y Fc(\003)29033 60567 y Fg([)f(f)p Fh(n)-28 b(ull)p Fg(g)p
+Fh(\))227 b Fg(\002)h Fh(\()p Fo(V)35517 60143 y Fc(\003)36224
+60567 y Fg([)g(f)p Fh(n)-28 b(ull)p Fg(g)p Fh(\))448
+b(Static)250 b(Heap)p -2000 63592 55791 37 v 19858 64721
+a Fs(Figur)-18 b(e)249 b(6.)498 b FC(Optimization)251
+b(Rules)p Black Black Black eop end
+%%Page: 8 8
+TeXDict begin 8 7 bop Black Black -2000 886 a FC(runs)279
+b(in)g(a)h(single)f(pass)f(o)-15 b(v)g(er)280 b(the)g(list)e(of)h
+(operations.)h(W)-80 b(e)280 b(can)g(check)h(that)-2000
+1993 y(although)387 b(recursi)-25 b(v)-15 b(ely)386 b(lifting)g(a)h
+(static)f(object)g(is)g(not)g(a)g(constant-time)-2000
+3099 y(operation,)266 b(the)g(algorithm)g(only)f(tak)-10
+b(es)266 b(a)f(total)h(time)g(linear)f(in)h(the)f(length)-2000
+4206 y(of)337 b(the)g(trace.)g(The)g(algorithm)g(itself)g(is)f(not)h
+(particularly)g(comple)-15 b(x;)338 b(our)-2000 5313
+y(focus)343 b(is)g(rather)h(that)g Fx(in)f(the)h(conte)-20
+b(xt)345 b(of)e(tr)-15 b(acing)344 b(JITs)f FC(it)g(is)g(possible)g(to)
+-2000 6420 y(\002nd)249 b(a)h(simple)f(enough)h(algorithm)f(that)h
+(performs)e(well.)-672 7527 y(Note)302 b(in)f(particular)h(that)g
+(objects)f(in)g(cate)-15 b(gory)303 b(1)e(\(i.e.,)g(those)g(that)h(do)
+-2000 8634 y(not)240 b(escape\))h(are)g(completely)g(remo)-15
+b(v)g(ed;)241 b(moreo)-15 b(v)g(er)-40 b(,)241 b(objects)g(in)f(cate)
+-15 b(gory)-2000 9741 y(2)302 b(\(i.e.,)g(escaping\))h(are)f(still)g
+(partially)g(optimized:)h(all)f(the)h(operations)f(in)-2000
+10848 y(between)329 b(the)f(creation)h(of)e(the)i(object)f(and)g(the)g
+(point)g(where)h(it)e(escapes)-2000 11955 y(that)225
+b(in)-40 b(v)-20 b(olv)-15 b(e)226 b(the)g(object)g(are)f(remo)-15
+b(v)g(ed.)226 b(Objects)g(in)f(cate)-15 b(gory)226 b(3)f(and)h(4)f(are)
+-2000 13062 y(also)330 b(partially)g(optimized,)g(their)g(allocation)h
+(is)e(delayed)i(till)e(the)h(end)g(of)-2000 14169 y(the)249
+b(trace.)-672 15276 y(The)362 b(optimization)h(is)e(particularly)i(ef)
+-25 b(fecti)g(v)-15 b(e)363 b(for)e(chains)h(of)g(opera-)-2000
+16383 y(tions.)355 b(F)-15 b(or)355 b(e)-15 b(xample,)357
+b(it)f(is)e(typical)j(for)e(an)g(interpreter)h(to)g(generate)g(se-)
+-2000 17490 y(quences)196 b(of)e(writes-follo)-25 b(wed-by-reads,)195
+b(where)h(one)f(interpreted)h(opcode)-2000 18597 y(writes)273
+b(to)g(some)h(object')-55 b(s)273 b(\002eld)h(and)f(the)h(ne)-15
+b(xt)274 b(interpreted)g(opcode)g(reads)-2000 19704 y(it)295
+b(back,)g(possibly)f(dispatching)i(on)e(the)i(type)f(of)f(the)h(object)
+h(created)f(just)-2000 20811 y(before.)355 b(A)g(typical)h(e)-15
+b(xample)356 b(w)-10 b(ould)355 b(be)g(a)g(chain)h(of)e(arithmetic)i
+(opera-)-2000 21918 y(tions.)-2000 24492 y FA(6.)1218
+b(Implementation)305 b(and)g(Ev)-12 b(aluation)-2000
+26042 y FC(The)227 b(allocation)g(remo)-15 b(v)-25 b(al)228
+b(techniques)f(described)g(in)g(this)f(paper)h(were)g(im-)-2000
+27149 y(plemented)240 b(in)f(the)h(optimizer)f(of)g(PyPy')-55
+b(s)239 b(tracing)h(JIT)-74 b(.)238 b(The)h(optimization)-2000
+28256 y(is)219 b(independent)i(of)f(which)g(interpreter)g(a)g(JIT)f(is)
+g(generated)i(for)-55 b(.)220 b(There)g(are)-2000 29363
+y(some)202 b(practical)h(issues)e(be)-15 b(yond)203 b(the)g(techniques)
+g(described)f(in)g(this)g(paper)-55 b(.)-2000 30470 y(The)222
+b(actual)h(implementation)g(needs)f(to)g(deal)h(with)f(more)g
+(operations)g(than)-2000 31577 y(described)237 b(in)g(Section)h(5,)f
+(e.g.,)g(to)g(also)g(support)f(static)h(arrays)f(in)h(addition)-2000
+32684 y(to)292 b(static)g(objects.)h(The)f(implementation)i(of)e(this)g
+(optimization)h(is)e(about)-2000 33791 y(400)249 b(lines)g(of)g
+(RPython)g(code.)-672 34898 y(A)423 b(further)f(complication)i(is)e
+(that)h(most)f(interpreters)g(written)h(with)-2000 36005
+y(PyPy)464 b(use)g(heap-allocated)i(frame)e(objects)g(to)g(store)g
+(local)g(v)-25 b(ariables.)-2000 37112 y(Those)306 b(se)-25
+b(v)-15 b(erely)307 b(hinder)f(the)h(ef)-25 b(fecti)g(v)-15
+b(eness)307 b(of)e(allocation)j(remo)-15 b(v)-25 b(al,)307
+b(be-)-2000 38219 y(cause)225 b(e)-25 b(v)-15 b(ery)226
+b(time)f(an)g(object)g(is)f(stored)h(into)g(a)g(local)g(v)-25
+b(ariable,)226 b(it)e(is)g(stored)-2000 39326 y(into)343
+b(the)g(frame-object,)h(which)f(mak)-10 b(es)343 b(it)g(escape.)h(W)-80
+b(e)344 b(implemented)g(a)-2000 40433 y(technique)392
+b(to)e(treat)g(such)h(frames)f(objects)g(in)g(a)h(special)g(w)-10
+b(ay)391 b(to)f(solv)-15 b(e)-2000 41540 y(this)280 b(problem.)g(This)f
+(is)h(a)g(common)h(approach)g(in)f(VM)g(implementations)-2000
+42647 y([13,)449 b(22];)f(the)h(no)-15 b(v)g(elty)449
+b(of)g(our)f(approach)i(is)e(that)h(we)g(generalized)h(it)-2000
+43754 y(enough)250 b(to)f(be)h(usable)f(for)g(dif)-25
+b(ferent)249 b(interpreters.)-672 44860 y(T)-80 b(o)386
+b(e)-25 b(v)g(aluate)387 b(our)e(allocation)h(remo)-15
+b(v)-25 b(al)386 b(algorithm,)g(we)g(look)f(at)h(the)-2000
+45967 y(ef)-25 b(fecti)g(v)-15 b(eness)433 b(when)g(used)f(in)g(the)h
+(generated)h(tracing)e(JIT)f(of)h(PyPy')-55 b(s)-2000
+47074 y(Python)488 b(interpreter)-55 b(.)489 b(This)f(interpreter)g(is)
+f(a)i(full)f(implementation)h(of)-2000 48181 y(Python)579
+b(2.5)f(language)i(semantics)e(and)h(is)f(about)h(30,000)g(lines)f(of)
+-2000 49288 y(RPython)249 b(code.)-672 50395 y(The)476
+b(benchmarks)f(we)h(used)f(are)h(small-to-medium)f(Python)g(pro-)-2000
+51540 y(grams,)249 b(some)g(synthetic)h(benchmarks,)g(some)f(real)g
+(applications.)21601 51117 y Fz(8)-672 52647 y FC(Some)410
+b(of)e(them)i(are)f(from)f(the)h(Computer)g(Language)h(Benchmark)-2000
+53791 y(Game)378 53368 y Fz(9)766 53791 y FC(:)250 b
+Fs(fannkuch)p FC(,)e Fs(nbody)p FC(,)i Fs(meteor)-37
+b(-contest)p FC(,)249 b Fs(spectral-norm)p FC(.)-672
+54898 y(Furthermore)h(there)f(are)h(the)f(follo)-25 b(wing)250
+b(benchmarks:)p Black -1419 56470 a Fm(\017)p Black -561
+56568 a Fs(crypto_pyaes)p FC(:)g(An)f(AES)g(implementation.)p
+Black -1419 58020 a Fm(\017)p Black -561 58118 a Fs(django)p
+FC(:)519 b(The)h(templating)g(engine)h(of)e(the)h(Django)g(web)g
+(frame-)-561 59263 y(w)-10 b(ork)1476 58839 y Fz(10)2196
+59263 y FC(.)p Black -1419 60714 a Fm(\017)p Black -561
+60812 a Fs(go)p FC(:)249 b(A)h(Monte-Carlo)e(Go)i(AI)9843
+60389 y Fz(11)10562 60812 y FC(.)p Black -1419 62264
+a Fm(\017)p Black -561 62362 a Fs(html5lib)p FC(:)f(An)g(HTML5)g
+(parser)-55 b(.)p Black -2000 63529 13284 37 v -2000
+64212 a Fz(8)-1502 64525 y Fw(All)901 b(the)f(source)h(code)f(of)g(the)
+h(benchmarks)f(can)g(be)g(found)g(at)-2000 65521 y Fr
+(http://codespeak.net/svn/pypy/benchmarks/)p Fw(.)2428
+b(There)-2000 66517 y(is)766 b(also)g(a)g(website)h(that)e(monitors)h
+(PyPy')-49 b(s)766 b(performance)g(nightly)f(at)-2000
+67513 y Fr(http://speed.pypy.org/)p Fw(.)-2000 68496
+y Fz(9)-1502 68809 y Fr(http://shootout.alioth.debian.org/)-2000
+69791 y Fz(10)-1170 70104 y Fr(http://www.djangoproject.com/)-2000
+71086 y Fz(11)-1170 71399 y Fr(http://shed-skin.blogspot.com/2009/07/)
+-2000 72395 y(disco-elegant-python-go-player.html)p Black
+Black Black Black 27805 788 a Fm(\017)p Black 28663 886
+a Fs(py\003ate-fast)p FC(:)248 b(A)h(BZ2)g(decoder)-55
+b(.)p Black 27805 2337 a Fm(\017)p Black 28663 2435 a
+Fs(raytrace-simple)p FC(:)250 b(A)f(ray)g(tracer)-55
+b(.)p Black 27805 3887 a Fm(\017)p Black 28663 3985 a
+Fs(richards)p FC(:)249 b(The)h(Richards)e(benchmark.)p
+Black 27805 5437 a Fm(\017)p Black 28663 5535 a Fs(spambay)-10
+b(es)p FC(:)248 b(A)i(Bayesian)f(spam)g(\002lter)42932
+5112 y Fz(12)43652 5535 y FC(.)p Black 27805 7024 a Fm(\017)p
+Black 28663 7122 a Fs(telco)p FC(:)451 b(A)f(Python)h(v)-15
+b(ersion)451 b(of)f(the)h(T)-70 b(elco)451 b(decimal)h(benchmark)52821
+6699 y Fz(13)53542 7122 y FC(,)28663 8229 y(using)249
+b(a)g(pure)h(Python)f(decimal)h(\003oating)g(point)f(implementation.)p
+Black 27805 9681 a Fm(\017)p Black 28663 9779 a Fs(twisted_names)p
+FC(:)361 b(A)h(DNS)h(serv)-15 b(er)362 b(benchmark)h(using)f(the)h(T)
+-80 b(wisted)28663 10923 y(netw)-10 b(orking)250 b(frame)-25
+b(w)-10 b(ork)37775 10500 y Fz(14)38495 10923 y FC(.)28552
+13236 y(W)-80 b(e)322 b(e)-25 b(v)g(aluate)322 b(the)e(allocation)i
+(remo)-15 b(v)-25 b(al)321 b(algorithm)g(along)g(tw)-10
+b(o)321 b(lines:)27224 14343 y(\002rst)361 b(we)h(w)-10
+b(ant)363 b(to)f(kno)-25 b(w)363 b(ho)-25 b(w)362 b(man)-15
+b(y)363 b(allocations)g(could)f(be)h(optimized)27224
+15450 y(a)-15 b(w)-10 b(ay)-65 b(.)230 b(On)g(the)f(other)g(hand,)h(we)
+g(w)-10 b(ant)229 b(to)g(kno)-25 b(w)230 b(ho)-25 b(w)230
+b(much)g(the)f(run)g(times)27224 16557 y(of)249 b(the)g(benchmarks)h
+(is)f(impro)-15 b(v)g(ed.)28552 17664 y(The)233 b(benchmarks)h(were)g
+(run)f(on)h(an)f(otherwise)h(idle)f(Intel)g(Core2)g(Duo)27224
+18771 y(P8400)326 b(processor)f(with)h(2.26)g(GHz)h(and)f(3072)g(KB)f
+(of)h(cache)h(on)f(a)g(ma-)27224 19878 y(chine)224 b(with)g(3GB)f(RAM)g
+(running)h(Linux)f(2.6.35.)i(W)-80 b(e)224 b(compared)h(the)f(per)-20
+b(-)27224 20985 y(formance)333 b(of)f(v)-25 b(arious)332
+b(Python)h(implementations)g(on)f(the)h(benchmarks.)27224
+22092 y(As)452 b(a)h(baseline,)g(we)g(used)f(the)h(standard)f(Python)h
+(implementation)h(in)27224 23236 y(C,)296 b(CPython)h(2.6.6)34211
+22813 y Fz(15)34931 23236 y FC(,)g(which)h(uses)f(a)g(bytecode-based)i
+(interpreter)-55 b(.)297 b(Fur)-20 b(-)27224 24343 y(thermore)260
+b(we)g(compared)g(ag)-5 b(ainst)260 b(Psyco[25])f(1.6,)h(a)g
+(\(hand-written\))g(e)-15 b(x-)27224 25450 y(tension)357
+b(module)g(to)g(CPython)f(which)i(is)e(a)h(just-in-time)f(compiler)h
+(that)27224 26557 y(produces)343 b(machine)h(code)f(at)g(run-time.)g
+(It)f(is)g(not)h(based)g(on)g(traces.)g(Fi-)27224 27664
+y(nally)-65 b(,)281 b(we)g(used)g(tw)-10 b(o)281 b(v)-15
+b(ersions)280 b(of)g(PyPy')-55 b(s)280 b(Python)h(interpreter)g(\(re)
+-25 b(vision)27224 28809 y(77823)323 b(of)g(SVN)h(trunk)35609
+28385 y Fz(16)36329 28809 y FC(\):)e(one)i(including)g(the)f(JIT)f(b)
+-20 b(ut)324 b(not)f(optimizing)27224 29916 y(the)309
+b(traces,)h(and)g(one)g(using)f(the)h(allocation)g(remo)-15
+b(v)-25 b(al)310 b(optimizations)g(\(as)27224 31022 y(well)249
+b(as)g(some)g(minor)h(other)f(optimizations,)h(such)f(as)g(constant)g
+(folding\).)28552 32129 y(As)224 b(the)h(\002rst)e(step,)i(we)g
+(counted)g(the)g(occurring)g(operations)g(in)f(all)g(gen-)27224
+33236 y(erated)262 b(traces)f(before)g(and)h(after)f(the)h
+(optimization)g(phase)f(for)g(all)g(bench-)27224 34343
+y(marks.)393 b(The)g(resulting)f(numbers)h(can)h(be)f(seen)h(in)f
+(Figure)g(7.)g(The)g(op-)27224 35450 y(timization)416
+b(remo)-15 b(v)g(es)417 b(between)g(4\045)f(and)g(90\045)g(and)h(of)f
+(allocation)h(op-)27224 36557 y(erations)g(in)g(the)g(traces)g(of)g
+(the)g(benchmarks.)h(All)f(benchmarks)h(tak)-10 b(en)27224
+37664 y(together)-40 b(,)332 b(the)f(optimization)h(remo)-15
+b(v)g(es)332 b(70\045)f(percent)h(of)f(allocation)h(op-)27224
+38771 y(erations.)e(The)g(numbers)f(look)i(similar)e(for)g(reading)i
+(and)f(writing)g(of)g(at-)27224 39878 y(trib)-20 b(utes.)298
+b(There)i(are)f(e)-25 b(v)-15 b(en)300 b(more)f Fr(guard)p
+Black Black 299 w FC(operations)g(that)g(are)h(remo)-15
+b(v)g(ed,)27224 40985 y(ho)-25 b(we)g(v)-15 b(er)356
+b(there)f(is)f(an)i(additional)g(optimization)f(that)g(remo)-15
+b(v)g(es)356 b(guards,)27224 42092 y(so)277 b(not)g(all)g(the)h(remo)
+-15 b(v)g(ed)278 b(guards)g(are)f(an)h(ef)-25 b(fect)278
+b(of)f(the)g(optimization)i(de-)27224 43199 y(scribed)192
+b(here)g(\(for)f(technical)i(reasons,)f(it)f(w)-10 b(ould)193
+b(be)f(v)-15 b(ery)192 b(hard)g(to)g(separate)27224 44306
+y(the)249 b(tw)-10 b(o)250 b(ef)-25 b(fects\).)28552
+45413 y(In)327 b(addition)h(to)f(the)g(count)h(of)e(operations)i(we)f
+(also)g(performed)g(time)27224 46520 y(measurements.)242
+b(All)f(benchmarks)h(were)g(run)g(50)f(times)g(in)h(the)f(same)h(pro-)
+27224 47627 y(cess,)255 b(to)h(gi)-25 b(v)-15 b(e)256
+b(the)g(JIT)f(time)h(to)g(produce)h(machine)f(code.)h(The)f(arithmetic)
+27224 48734 y(mean)303 b(of)g(the)g(times)g(of)g(the)g(last)f(30)h
+(runs)g(were)g(used)g(as)g(the)g(result.)g(The)27224
+49841 y(errors)262 b(were)i(computed)h(using)e(a)h(con\002dence)h
+(interv)-25 b(al)264 b(with)f(a)h(95\045)f(con-)27224
+50948 y(\002dence)354 b(le)-25 b(v)-15 b(el)353 b([16].)g(The)g
+(results)f(are)h(reported)g(in)g(Figure)g(8.)g(F)-15
+b(or)353 b(each)27224 52055 y(implementation)327 b(the)g(table)g(also)f
+(reports)f(the)i(speedup)g(that)f(PyPy)g(with)27224 53162
+y(optimization)250 b(achie)-25 b(v)-15 b(es)250 b(o)-15
+b(v)g(er)250 b(it.)28552 54269 y(W)-40 b(ith)238 b(the)f(optimization)h
+(turned)f(on,)g(PyPy')-55 b(s)236 b(Python)i(interpreter)f(out-)27224
+55376 y(performs)453 b(CPython)g(in)g(all)h(benchmarks)g(e)-15
+b(xcept)455 b(spambayes)f(\(which)27224 56483 y(hea)-20
+b(vily)376 b(relies)f(on)g(re)-15 b(gular)376 b(e)-15
+b(xpression)375 b(performance)h(and)g(thus)f(is)g(not)27224
+57590 y(helped)369 b(much)h(by)f(our)f(Python)h(JIT\))e(and)j(meteor)
+-20 b(-contest.)369 b(All)g(bench-)27224 58696 y(marks)306
+b(are)h(impro)-15 b(v)g(ed)307 b(by)g(the)f(allocation)i(remo)-15
+b(v)-25 b(al)307 b(optimization,)h(by)e(at)27224 59803
+y(least)249 b(20\045)g(and)h(by)f(as)g(much)h(as)f(a)g(f)-10
+b(actor)250 b(of)e(6.95.)28552 60910 y(Psyco)262 b(is)f(able)i(to)e
+(outperform)h(PyPy')-55 b(s)262 b(JIT)e(in)i(\002)-25
+b(v)-15 b(e)262 b(out)g(of)g(14)g(bench-)27224 62017
+y(marks.)336 b(W)-80 b(e)337 b(hope)f(to)g(o)-15 b(v)g(ertak)-10
+b(e)337 b(Psyco)f(\(which)h(is)e(no)h(longer)h(being)f(ac-)27224
+63124 y(ti)-25 b(v)-15 b(ely)249 b(de)-25 b(v)-15 b(elopped\))251
+b(by)e(adding)h(some)g(further)e(optimizations.)p Black
+27224 66219 V 27224 66902 a Fz(12)28054 67215 y Fr
+(http://spambayes.sourceforge.net/)27224 68197 y Fz(13)28054
+68510 y Fr(http://speleotrove.com/decimal/telco.html)27224
+69492 y Fz(14)28054 69805 y Fr(http://twistedmatrix.com/)27224
+70788 y Fz(15)28054 71100 y Fr(http://python.org)27224
+72083 y Fz(16)28054 72395 y Fr(http://codespeak.net/svn/pypy/trunk)p
+Black Black Black eop end
+%%Page: 9 9
+TeXDict begin 9 8 bop Black Black Black Black Black 2853
+44 46086 45 v 2831 1041 45 997 v 9667 1041 V 9889 1041
+V 10575 742 a Fw(num)221 b(loops)p 14932 1041 V 2089
+w(ne)-22 b(w)1328 b(remo)-13 b(v)g(ed)p 22874 1041 V
+2115 w(get/set)1329 b(remo)-13 b(v)g(ed)p 31702 1041
+V 1968 w(guard)1328 b(remo)-13 b(v)g(ed)p 40088 1041
+V 2090 w(all)222 b(ops)1328 b(remo)-13 b(v)g(ed)p 48916
+1041 V 2853 1085 46086 45 v 2831 2081 45 997 v 3517 1782
+a(crypto_p)k(yaes)p 9667 2081 V 9888 2081 V 5174 w(78)p
+14932 2081 V 1771 w(3088)2776 b(50\045)p 22874 2081 V
+2213 w(57148)g(25\045)p 31702 2081 V 2213 w(9055)h(95\045)p
+40088 2081 V 1770 w(137189)f(80\045)p 48916 2081 V 2831
+3077 V 3517 2778 a(django)p 9667 3077 V 9888 3077 V 7476
+w(51)p 14932 3077 V 2213 w(673)h(54\045)p 22874 3077
+V 2213 w(19318)f(18\045)p 31702 3077 V 2213 w(3876)h(93\045)p
+40088 3077 V 2213 w(55682)f(85\045)p 48916 3077 V 2831
+4074 V 3517 3775 a(f)-9 b(annkuch)p 9667 4074 V 9888
+4074 V 6600 w(43)p 14932 4074 V 2213 w(171)2777 b(49\045)p
+22874 4074 V 3099 w(886)f(63\045)p 31702 4074 V 2213
+w(1159)h(81\045)p 40088 4074 V 2656 w(4935)f(45\045)p
+48916 4074 V 2831 5070 V 3517 4771 a(go)p 9667 5070 V
+9888 5070 V 8558 w(517)p 14932 5070 V 1328 w(12234)g(76\045)p
+22874 5070 V 1770 w(200842)g(21\045)p 31702 5070 V 1771
+w(53138)g(90\045)p 40088 5070 V 1770 w(568542)g(84\045)p
+48916 5070 V 2831 6066 V 3517 5767 a(html5lib)p 9667
+6066 V 9888 6066 V 6442 w(498)p 14932 6066 V 1328 w(14432)g(68\045)p
+22874 6066 V 1770 w(503390)g(11\045)p 31702 6066 V 1771
+w(71592)g(94\045)p 40088 6066 V 1327 w(1405780)g(91\045)p
+48916 6066 V 2831 7062 V 3517 6764 a(meteor)-18 b(-contest)p
+9667 7062 V 9888 7062 V 4643 w(59)p 14932 7062 V 2213
+w(277)2777 b(36\045)p 22874 7062 V 2656 w(4402)f(31\045)p
+31702 7062 V 2213 w(1078)h(83\045)p 40088 7062 V 2213
+w(12862)f(68\045)p 48916 7062 V 2831 8059 V 3517 7760
+a(nbody)p 9667 8059 V 9888 8059 V 7672 w(13)p 14932 8059
+V 2656 w(96)h(38\045)p 22874 8059 V 3099 w(443)f(69\045)p
+31702 8059 V 2656 w(449)h(78\045)p 40088 8059 V 2656
+w(2107)f(38\045)p 48916 8059 V 2831 9055 V 3517 8756
+a(p)-9 b(y\003ate-f)g(ast)p 9667 9055 V 9888 9055 V 5479
+w(162)p 14932 9055 V 1771 w(2278)2776 b(55\045)p 22874
+9055 V 2213 w(39126)g(20\045)p 31702 9055 V 2213 w(8194)h(92\045)p
+40088 9055 V 1770 w(112857)f(80\045)p 48916 9055 V 2831
+10051 V 3517 9752 a(raytrace-simple)p 9667 10051 V 9888
+10051 V 3937 w(120)p 14932 10051 V 1771 w(3118)g(59\045)p
+22874 10051 V 2213 w(91982)g(15\045)p 31702 10051 V 1771
+w(13572)g(95\045)p 40088 10051 V 1770 w(247436)g(89\045)p
+48916 10051 V 2831 11047 V 3517 10749 a(richards)p 9667
+11047 V 9888 11047 V 7035 w(87)p 14932 11047 V 2213 w(844)3220
+b(4\045)p 22874 11047 V 2213 w(49875)2776 b(22\045)p
+31702 11047 V 2213 w(4130)h(91\045)p 40088 11047 V 1770
+w(133898)f(83\045)p 48916 11047 V 2831 12044 V 3517 11745
+a(spambayes)p 9667 12044 V 9888 12044 V 5559 w(314)p
+14932 12044 V 1771 w(5608)g(79\045)p 22874 12044 V 1770
+w(117002)g(11\045)p 31702 12044 V 1771 w(25313)g(94\045)p
+40088 12044 V 1770 w(324125)g(90\045)p 48916 12044 V
+2831 13040 V 3517 12741 a(spectral-norm)p 9667 13040
+V 9888 13040 V 4969 w(38)p 14932 13040 V 2213 w(360)h(64\045)p
+22874 13040 V 2656 w(5553)f(20\045)p 31702 13040 V 2213
+w(1122)h(92\045)p 40088 13040 V 2213 w(11878)f(77\045)p
+48916 13040 V 2831 14036 V 3517 13737 a(telco)p 9667
+14036 V 9888 14036 V 8166 w(46)p 14932 14036 V 1771 w(1257)g(90\045)p
+22874 14036 V 2213 w(37470)3219 b(3\045)p 31702 14036
+V 2213 w(6644)2777 b(99\045)p 40088 14036 V 2213 w(98590)f(97\045)p
+48916 14036 V 2831 15033 V 3517 14734 a(twisted-names)p
+9667 15033 V 9888 15033 V 4330 w(214)p 14932 15033 V
+1771 w(5273)g(84\045)p 22874 15033 V 1770 w(100010)g(10\045)p
+31702 15033 V 1771 w(23247)g(96\045)p 40088 15033 V 1770
+w(279667)g(92\045)p 48916 15033 V 2853 15077 46086 45
+v 2831 16073 45 997 v 3517 15774 a(total)p 9667 16073
+V 9888 16073 V 7427 w(2240)p 14932 16073 V 1328 w(49709)g(70\045)p
+22874 16073 V 1328 w(1227447)f(14\045)p 31702 16073 V
+1328 w(222569)h(93\045)p 40088 16073 V 1327 w(3395548)g(89\045)p
+48916 16073 V 2853 16117 46086 45 v -2000 17372 55791
+37 v 10632 18501 a Fs(Figur)-18 b(e)249 b(7.)499 b FC(Number)249
+b(of)g(Operations)h(and)g(Percentage)g(Remo)-15 b(v)g(ed)250
+b(By)f(Optimization)p Black Black Black Black -790 20753
+53371 45 v -812 21749 45 997 v 6322 21749 V 6544 21749
+V 8773 21451 a Fw(CPython)221 b([ms])p 14360 21749 V
+2589 w Fm(\002)p 17681 21749 V 17902 21749 V 4077 w Fw(Psyco)h([ms])p
+25719 21749 V 2147 w Fm(\002)p 28597 21749 V 28818 21749
+V 1549 w Fw(PyPy)g(w/o)g(optim.)g([ms])p 37921 21749
+V 2146 w Fm(\002)p 40799 21749 V 41020 21749 V 1550 w
+Fw(PyPy)f(w/)h(optim.)g([ms])p 49680 21749 V 2146 w Fm(\002)p
+52558 21749 V -790 21794 53371 45 v -812 22790 45 997
+v -126 22491 a Fw(crypto_p)-9 b(yaes)p 6322 22790 V 6544
+22790 V 3529 w(2757.80)220 b Fm(\006)h Fw(0.98)p 14360
+22790 V 1328 w(10.33)p 17681 22790 V 17902 22790 V 3321
+w(67.90)g Fm(\006)g Fw(0.47)p 25719 22790 V 1328 w(0.25)p
+28597 22790 V 28818 22790 V 3721 w(1652.00)g Fm(\006)g
+Fw(4.00)p 37921 22790 V 1328 w(6.19)p 40799 22790 V 41020
+22790 V 3722 w(266.86)f Fm(\006)h Fw(5.94)p 49680 22790
+V 1329 w(1.00)p 52558 22790 V -812 23786 V -126 23487
+a(django)p 6322 23786 V 6544 23786 V 6273 w(993.19)g
+Fm(\006)g Fw(0.50)p 14360 23786 V 1771 w(3.83)p 17681
+23786 V 17902 23786 V 2878 w(913.51)g Fm(\006)g Fw(4.22)p
+25719 23786 V 1328 w(3.52)p 28597 23786 V 28818 23786
+V 4164 w(694.73)g Fm(\006)g Fw(2.86)p 37921 23786 V 1328
+w(2.68)p 40799 23786 V 41020 23786 V 3722 w(259.53)f
+Fm(\006)h Fw(1.79)p 49680 23786 V 1329 w(1.00)p 52558
+23786 V -812 24783 V -126 24484 a(f)-9 b(annkuch)p 6322
+24783 V 6544 24783 V 4955 w(1987.22)220 b Fm(\006)h Fw(2.02)p
+14360 24783 V 1771 w(4.26)p 17681 24783 V 17902 24783
+V 2878 w(944.44)g Fm(\006)g Fw(0.61)p 25719 24783 V 1328
+w(2.02)p 28597 24783 V 28818 24783 V 4164 w(566.99)g
+Fm(\006)g Fw(1.06)p 37921 24783 V 1328 w(1.21)p 40799
+24783 V 41020 24783 V 3722 w(466.87)f Fm(\006)h Fw(1.85)p
+49680 24783 V 1329 w(1.00)p 52558 24783 V -812 25779
+V -126 25480 a(go)p 6322 25779 V 6544 25779 V 7798 w(947.21)g
+Fm(\006)g Fw(1.58)p 14360 25779 V 1771 w(3.00)p 17681
+25779 V 17902 25779 V 2878 w(445.96)g Fm(\006)g Fw(0.68)p
+25719 25779 V 1328 w(1.41)p 28597 25779 V 28818 25779
+V 3279 w(2197.71)f Fm(\006)h Fw(25.21)p 37921 25779 V
+1328 w(6.95)p 40799 25779 V 41020 25779 V 3722 w(316.15)f
+Fm(\006)h Fw(9.33)p 49680 25779 V 1329 w(1.00)p 52558
+25779 V -812 26775 V -126 26476 a(html5lib)p 6322 26775
+V 6544 26775 V 4354 w(13987.12)f Fm(\006)h Fw(19.51)p
+14360 26775 V 1771 w(1.39)p 17681 26775 V 17902 26775
+V 1550 w(17398.25)f Fm(\006)h Fw(36.50)p 25719 26775
+V 1328 w(1.72)p 28597 26775 V 28818 26775 V 2836 w(27194.45)f
+Fm(\006)h Fw(46.62)p 37921 26775 V 1328 w(2.69)p 40799
+26775 V 41020 26775 V 2393 w(10092.19)f Fm(\006)i Fw(23.50)p
+49680 26775 V 1328 w(1.00)p 52558 26775 V -812 27771
+V -126 27472 a(meteor)-18 b(-contest)p 6322 27771 V 6544
+27771 V 3440 w(346.98)221 b Fm(\006)g Fw(0.35)p 14360
+27771 V 1771 w(0.88)p 17681 27771 V 17902 27771 V 2878
+w(215.66)g Fm(\006)g Fw(0.23)p 25719 27771 V 1328 w(0.55)p
+28597 27771 V 28818 27771 V 4164 w(433.04)g Fm(\006)g
+Fw(1.45)p 37921 27771 V 1328 w(1.10)p 40799 27771 V 41020
+27771 V 3722 w(392.85)f Fm(\006)h Fw(0.87)p 49680 27771
+V 1329 w(1.00)p 52558 27771 V -812 28768 V -126 28469
+a(nbody_modi\002ed)p 6322 28768 V 6544 28768 V 2877 w(637.90)g
+Fm(\006)g Fw(1.82)p 14360 28768 V 1771 w(6.14)p 17681
+28768 V 17902 28768 V 2878 w(256.78)g Fm(\006)g Fw(0.18)p
+25719 28768 V 1328 w(2.47)p 28597 28768 V 28818 28768
+V 4164 w(135.55)g Fm(\006)g Fw(0.33)p 37921 28768 V 1328
+w(1.30)p 40799 28768 V 41020 28768 V 3722 w(103.93)f
+Fm(\006)h Fw(0.25)p 49680 28768 V 1329 w(1.00)p 52558
+28768 V -812 29764 V -126 29465 a(p)-9 b(y\003ate-f)g(ast)p
+6322 29764 V 6544 29764 V 4277 w(3169.35)220 b Fm(\006)h
+Fw(1.89)p 14360 29764 V 1771 w(1.74)p 17681 29764 V 17902
+29764 V 2435 w(1278.16)g Fm(\006)g Fw(3.13)p 25719 29764
+V 1328 w(0.70)p 28597 29764 V 28818 29764 V 3721 w(3285.89)g
+Fm(\006)g Fw(8.51)p 37921 29764 V 1328 w(1.80)p 40799
+29764 V 41020 29764 V 2836 w(1822.36)f Fm(\006)i Fw(11.52)p
+49680 29764 V 1328 w(1.00)p 52558 29764 V -812 30760
+V -126 30461 a(raytrace-simple)p 6322 30760 V 6544 30760
+V 2292 w(2744.60)e Fm(\006)h Fw(51.72)p 14360 30760 V
+1771 w(4.24)p 17681 30760 V 17902 30760 V 2435 w(1072.66)g
+Fm(\006)g Fw(1.08)p 25719 30760 V 1328 w(1.66)p 28597
+30760 V 28818 30760 V 3279 w(2778.27)f Fm(\006)h Fw(15.13)p
+37921 30760 V 1328 w(4.29)p 40799 30760 V 41020 30760
+V 3722 w(647.24)f Fm(\006)h Fw(5.44)p 49680 30760 V 1329
+w(1.00)p 52558 30760 V -812 31756 V -126 31458 a(richards)p
+6322 31756 V 6544 31756 V 5832 w(354.06)g Fm(\006)g Fw(1.00)p
+14360 31756 V 1771 w(4.01)p 17681 31756 V 17902 31756
+V 3321 w(63.48)g Fm(\006)g Fw(0.15)p 25719 31756 V 1328
+w(0.72)p 28597 31756 V 28818 31756 V 4164 w(383.93)g
+Fm(\006)g Fw(3.28)p 37921 31756 V 1328 w(4.35)p 40799
+31756 V 41020 31756 V 4164 w(88.32)g Fm(\006)g Fw(0.91)p
+49680 31756 V 1329 w(1.00)p 52558 31756 V -812 32753
+V -126 32454 a(spambayes)p 6322 32753 V 6544 32753 V
+4799 w(299.16)g Fm(\006)g Fw(0.35)p 14360 32753 V 1771
+w(0.75)p 17681 32753 V 17902 32753 V 2878 w(338.68)g
+Fm(\006)g Fw(3.14)p 25719 32753 V 1328 w(0.85)p 28597
+32753 V 28818 32753 V 3721 w(580.90)g Fm(\006)g Fw(24.68)p
+37921 32753 V 1328 w(1.46)p 40799 32753 V 41020 32753
+V 3279 w(397.37)f Fm(\006)i Fw(10.60)p 49680 32753 V
+1328 w(1.00)p 52558 32753 V -812 33749 V -126 33450 a(spectral-norm)p
+6322 33749 V 6544 33749 V 3766 w(478.63)f Fm(\006)g Fw(0.80)p
+14360 33749 V 1771 w(4.27)p 17681 33749 V 17902 33749
+V 2878 w(139.83)g Fm(\006)g Fw(1.54)p 25719 33749 V 1328
+w(1.25)p 28597 33749 V 28818 33749 V 4164 w(353.51)g
+Fm(\006)g Fw(1.39)p 37921 33749 V 1328 w(3.15)p 40799
+33749 V 41020 33749 V 3722 w(112.10)f Fm(\006)h Fw(1.17)p
+49680 33749 V 1329 w(1.00)p 52558 33749 V -812 34745
+V -126 34446 a(telco)p 6322 34745 V 6544 34745 V 6521
+w(1207.67)f Fm(\006)h Fw(2.03)p 14360 34745 V 1771 w(2.44)p
+17681 34745 V 17902 34745 V 2878 w(730.00)g Fm(\006)g
+Fw(2.66)p 25719 34745 V 1328 w(1.47)p 28597 34745 V 28818
+34745 V 3721 w(1296.08)g Fm(\006)g Fw(4.37)p 37921 34745
+V 1328 w(2.62)p 40799 34745 V 41020 34745 V 3722 w(495.23)f
+Fm(\006)h Fw(2.14)p 49680 34745 V 1329 w(1.00)p 52558
+34745 V -812 35741 V -126 35443 a(twisted_names)p 6322
+35741 V 6544 35741 V 4308 w(9.58)g Fm(\006)g Fw(0.01)p
+14360 35741 V 1771 w(1.34)p 17681 35741 V 17902 35741
+V 3321 w(10.43)g Fm(\006)g Fw(0.01)p 25719 35741 V 1328
+w(1.46)p 28597 35741 V 28818 35741 V 4607 w(17.99)g Fm(\006)g
+Fw(0.27)p 37921 35741 V 1328 w(2.52)p 40799 35741 V 41020
+35741 V 4607 w(7.13)g Fm(\006)g Fw(0.09)p 49680 35741
+V 1329 w(1.00)p 52558 35741 V -790 35786 53371 45 v -2000
+37040 55791 37 v 6051 38169 a Fs(Figur)-18 b(e)250 b(8.)498
+b FC(Benchmark)250 b(T)-35 b(imes)248 b(in)i(Milliseconds,)e(T)-80
+b(ogether)250 b(W)-40 b(ith)250 b(F)-15 b(actor)250 b(Ov)-15
+b(er)249 b(PyPy)g(W)-40 b(ith)250 b(Optimizations)p Black
+-2000 41484 a FA(7.)1218 b(Related)305 b(W)-91 b(ork)-2000
+43034 y FC(There)373 b(e)-15 b(xists)373 b(a)g(lar)-18
+b(ge)374 b(number)f(of)g(w)-10 b(orks)373 b(on)g(escape)h(analysis,)f
+(which)-2000 44141 y(is)438 b(a)h(program)f(analysis)h(that)g(tries)f
+(to)g(\002nd)h(an)g(upper)f(bound)i(for)e(the)-2000 45248
+y(lifetime)480 b(of)g(objects)h(allocated)g(at)g(speci\002c)f(program)h
+(points)f([4,)g(11,)-2000 46355 y(18,)348 b(24].)g(This)f(information)g
+(can)i(then)f(be)g(used)g(to)f(decide)i(that)f(certain)-2000
+47462 y(objects)341 b(can)h(be)g(allocated)g(on)f(the)h(stack,)f
+(because)h(their)g(lifetime)f(does)-2000 48569 y(not)269
+b(e)-15 b(xceed)271 b(that)f(of)f(the)g(stack)h(frame)f(it)g(is)g
+(allocated)h(in.)g(The)f(dif)-25 b(ference)-2000 49676
+y(to)303 b(our)h(w)-10 b(ork)303 b(is)g(that)h(escape)g(analysis)f(is)g
+(split)f(into)i(an)g(analysis)f(and)h(an)-2000 50783
+y(optimization)327 b(phase.)f(The)g(analysis)f(can)i(be)f(a)g(lot)g
+(more)g(comple)-15 b(x)326 b(than)-2000 51890 y(our)388
+b(simple)g(one-pass)g(optimization.)h(Also,)f(stack-allocation)h
+(reduces)-2000 52997 y(g)-5 b(arbage-collection)293 b(pressure)d(b)-20
+b(ut)291 b(does)g(not)g(optimize)g(a)-15 b(w)-10 b(ay)292
+b(the)f(actual)-2000 54104 y(accesses)283 b(to)f(the)h(stack-allocated)
+h(object.)f(In)f(our)h(case,)g(an)g(object)g(is)f(not)-2000
+55211 y(needed)250 b(at)g(all)f(an)-15 b(y)250 b(more.)-672
+56318 y(Chang)219 b Fx(et)g(al.)f FC(describe)h(a)f(tracing)h(JIT)f
+(for)g(Ja)-20 b(v)-25 b(aScript)219 b(running)f(on)h(top)-2000
+57425 y(of)276 b(a)g(JVM)g([10].)f(The)-15 b(y)277 b(mention)f(in)g
+(passing)g(an)h(approach)g(to)f(allocation)-2000 58531
+y(remo)-15 b(v)-25 b(al)399 b(that)g(mo)-15 b(v)g(es)398
+b(the)h(allocation)g(of)f(an)h(object)g(of)f(type)g(1)h(out)f(of)-2000
+59638 y(the)422 b(loop)g(to)g(only)g(allocate)g(it)g(once,)h(instead)f
+(of)f(e)-25 b(v)-15 b(ery)422 b(iteration.)h(No)-2000
+60745 y(details)196 b(are)g(gi)-25 b(v)-15 b(en)197 b(for)e(this)h
+(optimization.)g(The)g(f)-10 b(act)197 b(that)f(the)g(object)g(is)g
+(still)-2000 61852 y(allocated)238 b(and)g(needs)f(to)g(be)g(written)g
+(to)g(means)h(that)f(only)g(the)g(allocations)-2000 62959
+y(are)377 b(optimized)g(a)-15 b(w)-10 b(ay)-65 b(,)377
+b(b)-20 b(ut)377 b(not)f(the)h(reads)f(out)g(of)h(and)f(writes)g(into)h
+(the)-2000 64066 y(object.)-672 65173 y(SPUR,)282 b(a)g(tracing)h(JIT)e
+(for)g(C#)h(seems)f(to)h(be)h(able)f(to)g(remo)-15 b(v)g(e)283
+b(alloca-)-2000 66280 y(tions)294 b(in)g(a)h(similar)e(w)-10
+b(ay)295 b(to)f(the)h(approach)g(described)g(here,)g(as)f(hinted)h(at)
+-2000 67387 y(in)212 b(the)f(technical)i(report)f([3].)f(Ho)-25
+b(we)g(v)-15 b(er)-40 b(,)213 b(no)f(details)g(for)f(the)h(approach)g
+(and)-2000 68494 y(its)249 b(implementation)h(are)g(gi)-25
+b(v)-15 b(en.)-672 69601 y(Psyco)294 b([25])f(is)h(a)g(\(non-tracing\))
+g(JIT)e(for)h(Python)i(that)f(implements)g(a)-2000 70708
+y(more)262 b(ad-hoc)h(v)-15 b(ersion)263 b(of)f(the)g(allocation)h
+(remo)-15 b(v)-25 b(al)263 b(described)g(here.)g(Our)-2000
+71815 y(static)292 b(objects)h(could)g(be)f(related)h(to)g(what)f(are)h
+(called)g Fx(virtual)g FC(objects)g(in)p Black Black
+27224 41484 a(Psyco.)328 b(Historically)-65 b(,)328 b(PyPy')-55
+b(s)328 b(JIT)e(can)j(be)f(seen)h(as)e(some)h(successor)g(of)27224
+42591 y(Psyco)278 b(for)g(a)h(general)g(conte)-15 b(xt)279
+b(\(one)g(of)f(the)h(authors)f(of)h(this)f(paper)h(is)e(the)27224
+43698 y(author)249 b(of)g(Psyco\).)28552 44805 y(The)493
+b(original)f(SELF)g(JIT)f(compiler)i([9])f(used)h(an)f(algorithm)h(for)
+27224 45912 y(forw)-10 b(ard-propag)-5 b(ating)295 b(the)f(types)h(of)f
+(v)-25 b(ariables)294 b(as)g(part)h(of)f(its)f(optimiza-)27224
+47019 y(tions.)206 b(This)f(mak)-10 b(es)207 b(it)f(possible)g(to)h
+(remo)-15 b(v)g(e)207 b(all)g(type)f(checks)i(on)e(a)h(v)-25
+b(ariable)27224 48126 y(b)-20 b(ut)247 b(the)h(\002rst)f(one.)h(The)f
+(optimization)i(does)e(not)h(deal)g(with)f(remo)-15 b(ving)248
+b(the)27224 49233 y(full)253 b(object,)h(if)e(it)h(is)g(short-li)-25
+b(v)-15 b(ed,)253 b(b)-20 b(ut)253 b(the)h(type)f(check)i(remo)-15
+b(v)-25 b(als)253 b(are)g(sim-)27224 50340 y(ilar)c(to)g(what)h(our)f
+(optimization)h(achie)-25 b(v)-15 b(es.)28552 51447 y(P)g(artially)204
+b(kno)-25 b(wn)205 b(data)f(structures)g(are)g(b)-20
+b(uilt)204 b(directly)g(into)g(Prolog)g(\(via)27224 52554
+y(unbound)317 b(logic)h(v)-25 b(ariables\))317 b(and)g(thus)g(the)g
+(treatment)h(of)e(partially)i(static)27224 53661 y(data)358
+b(structures)f(w)-10 b(as)358 b(part)g(of)g(partial)g(e)-25
+b(v)g(aluation)360 b(of)d(Prolog)h(programs)27224 54768
+y(from)239 b(the)i(early)f(stages)g([21].)g(One)h(ef)-25
+b(fect)240 b(of)g(unfolding)h(in)f(Prolog)g(is)f(that)27224
+55875 y(terms)350 b(that)h(are)g(constructed)h(and)f(immediately)h
+(matched)g(ag)-5 b(ain,)351 b(com-)27224 56982 y(pletely)336
+b(disappear)f(in)h(the)f(residual)h(program.)f(This)g(is)f(similar)h
+(to)g(what)27224 58089 y(our)417 b(optimization)h(does)f(for)g(an)h
+(imperati)-25 b(v)-15 b(e)418 b(language.)h(In)e(functional)27224
+59196 y(programming)216 b(this)f(idea)h(w)-10 b(as)216
+b(introduced)g(as)g(constructor)f(specialisation)27224
+60303 y(by)249 b(Mogensen)h([23].)28552 61410 y(A)453
+b(related)g(optimization)g(is)f(also)g(that)h(of)f(deforestation)h
+([17,)g(27])27224 62517 y(which)306 b(remo)-15 b(v)g(es)305
+b(intermediate)i(lists)d(or)h(trees)g(in)h(functional)g(languages.)
+27224 63623 y(A)290 b(more)f(general)i(approach)g(is)e(boxing)h
+(analysis)g([20])f(which)h(optimizes)27224 64730 y(pairs)437
+b(of)h(calls)g(to)g(box/unbox)h(in)f(a)g(functional)h(language.)g
+(Similarly)-65 b(,)27224 65837 y("dynamic)464 b(typing")g([19])f(tries)
+g(to)g(remo)-15 b(v)g(e)463 b(dynamic)i(type)e(coercions)27224
+66944 y(in)384 b(a)g(dynamically)h(typed)g(lambda-calculus.)g(All)f
+(these)g(optimizations)27224 68051 y(w)-10 b(ork)433
+b(by)f(analyzing)i(the)f(program)g(before)g(e)-15 b(x)g(ecution,)434
+b(which)f(mak)-10 b(es)27224 69158 y(them)282 b(unsuitable)g(for)g
+(dynamic)h(languages)g(lik)-10 b(e)282 b(Python,)g(where)h(almost)27224
+70265 y(nothing)249 b(can)h(be)g(inferred)f(purely)g(by)h(looking)f(at)
+h(the)f(source)h(code.)p Black Black eop end
+%%Page: 10 10
+TeXDict begin 10 9 bop Black Black -2000 886 a FA(8.)1218
+b(Conclusion)304 b(and)h(Futur)-22 b(e)304 b(W)-91 b(ork)-2000
+2435 y FC(In)368 b(this)g(paper)-40 b(,)370 b(we)f(used)g(an)g
+(approach)h(based)e(on)h(online)g(partial)g(e)-25 b(v)g(al-)-2000
+3542 y(uation)330 b(to)g(optimize)g(a)-15 b(w)-10 b(ay)331
+b(allocations)f(and)g(type)g(guards)f(in)h(the)g(traces)-2000
+4649 y(of)273 b(a)g(tracing)h(JIT)-74 b(.)272 b(In)h(this)g(conte)-15
+b(xt)274 b(a)f(simple)g(approach)i(based)e(on)h(partial)-2000
+5756 y(e)-25 b(v)g(aluation)229 b(gi)-25 b(v)-15 b(es)228
+b(good)g(results.)f(This)g(is)g(due)i(to)e(the)h(f)-10
+b(act)228 b(that)g(the)g(tracing)-2000 6863 y(JIT)243
+b(itself)h(is)g(responsible)g(for)g(all)h(control)g(issues,)e(which)i
+(are)g(usually)g(the)-2000 7970 y(hardest)327 b(part)g(of)f(partial)h
+(e)-25 b(v)g(aluation:)328 b(the)f(tracing)g(JIT)f(selects)g(the)h
+(parts)-2000 9077 y(of)260 b(the)h(program)g(that)g(are)g(w)-10
+b(orthwhile)261 b(to)f(optimize,)i(and)f(e)-15 b(xtracts)261
+b(linear)-2000 10184 y(paths)250 b(through)h(them,)g(inlining)f
+(functions)h(as)f(necessary)-65 b(.)251 b(What)g(is)f(left)g(to)-2000
+11291 y(optimize)g(are)f(only)h(those)f(linear)h(paths.)-672
+12398 y(W)-80 b(e)326 b(e)-15 b(xpect)326 b(a)f(similar)f(result)g(for)
+g(other)h(optimizations)g(that)g(usually)-2000 13505
+y(require)236 b(a)g(comple)-15 b(x)236 b(analysis)g(phase)g(and)g(are)g
+(thus)f(normally)h(too)f(slo)-25 b(w)236 b(to)-2000 14612
+y(use)295 b(at)g(runtime.)g(A)g(tracing)g(JIT)f(selects)h(interesting)f
+(linear)i(paths)e(by)h(it-)-2000 15719 y(self;)215 b(therefore,)g(a)g
+(nai)-25 b(v)-15 b(e)216 b(v)-15 b(ersion)215 b(of)g(man)-15
+b(y)216 b(optimizations)g(on)f(such)g(paths)-2000 16826
+y(should)207 b(gi)-25 b(v)-15 b(e)207 b(mostly)f(the)h(same)g(results.)
+f(F)-15 b(or)206 b(e)-15 b(xample,)208 b(we)f(e)-15 b(xperimented)-2000
+17933 y(with)324 b(\(and)g(plan)g(to)f(write)h(about\))g(store-load)f
+(propag)-5 b(ation)325 b(with)f(a)g(v)-15 b(ery)-2000
+19040 y(simple)249 b(alias)g(analysis.)-2000 21902 y
+FA(Ackno)-12 b(wledgements)-2000 23452 y FC(The)261 b(authors)h(w)-10
+b(ould)262 b(lik)-10 b(e)261 b(to)h(thank)f(Stef)-10
+b(an)262 b(Hallerstede,)g(Da)-20 b(vid)262 b(Schnei-)-2000
+24559 y(der)351 b(and)h(Thomas)f(Stiehl)g(for)g(fruitful)f(discussions)
+g(and)i(detailed)g(feed-)-2000 25666 y(back)284 b(during)g(the)f
+(writing)h(of)f(the)h(paper)-55 b(.)284 b(W)-80 b(e)284
+b(thank)g(the)g(anon)-15 b(ymous)284 b(re-)-2000 26773
+y(vie)-25 b(wers)249 b(for)g(the)h(v)-25 b(aluable)250
+b(comments.)-2000 29635 y FA(Refer)-22 b(ences)p Black
+-1557 31074 a Fw([1])p Black 387 w(D.)202 b(Ancona,)g(M.)h(Ancona,)f
+(A.)g(Cuni,)f(and)h(N.)g(D.)g(Matsakis.)278 b(RPython:)202
+b(a)f(step)-137 32070 y(to)-22 b(w)-9 b(ards)298 b(reconciling)g
+(dynamically)g(and)f(statically)j(typed)d(OO)h(languages.)-137
+33066 y(In)239 b Fa(Pr)-40 b(oceedings)241 b(of)f(the)g(2007)f
+(symposium)i(on)f(Dynamic)h(langua)-9 b(g)g(es)p Fw(,)240
+b(pages)-137 34063 y(53\22664,)220 b(Montreal,)j(Quebec,)f(Canada,)g
+(2007.)f(A)-35 b(CM.)p Black -1557 35444 a([2])p Black
+387 w(V)-114 b(.)377 b(Bala,)f(E.)h(Duesterw)-9 b(ald,)379
+b(and)d(S.)h(Banerjia.)815 b(Dynamo:)376 b(a)h(transparent)-137
+36440 y(dynamic)300 b(optimization)h(system.)574 b Fa(A)-27
+b(CM)301 b(SIGPLAN)f(Notices)p Fw(,)i(35\(5\):1\22612,)-137
+37436 y(2000.)p Black -1557 38817 a([3])p Black 387 w(M.)398
+b(Bebenita,)g(F)-71 b(.)398 b(Brandner)-35 b(,)397 b(M.)h(F)-13
+b(ahndrich,)398 b(F)-71 b(.)398 b(Logozzo,)g(W)-81 b(.)397
+b(Schulte,)-137 39814 y(N.)322 b(T)-31 b(illmann,)323
+b(and)e(H.)i(V)-98 b(enter)-49 b(.)640 b(SPUR:)323 b(a)f(trace-based)h
+(JIT)f(compiler)f(for)-137 40810 y(CIL.)744 b(In)354
+b Fa(Pr)-40 b(oceedings)355 b(of)f(the)g(A)-27 b(CM)354
+b(international)h(confer)-33 b(ence)355 b(on)f(Ob-)-137
+41806 y(ject)199 b(oriented)h(pr)-40 b(o)-9 b(gr)c(amming)199
+b(systems)i(langua)-9 b(g)g(es)199 b(and)f(applications)p
+Fw(,)i(pages)-137 42802 y(708\226725,)220 b(Reno/T)-71
+b(ahoe,)222 b(Ne)-22 b(v)g(ada,)222 b(USA,)h(2010.)d(A)-35
+b(CM.)p Black -1557 44184 a([4])p Black 387 w(B.)330
+b(Blanchet.)668 b(Escape)331 b(analysis)g(for)f(Ja)-18
+b(v)c(a:)331 b(Theory)f(and)g(practice.)668 b Fa(A)-27
+b(CM)-137 45180 y(T)-49 b(r)-13 b(ans.)222 b(Pr)-40 b(o)-9
+b(gr)c(am.)223 b(Lang)-13 b(.)221 b(Syst.)p Fw(,)i(25\(6\):713\226775,)
+d(2003.)p Black -1557 46561 a([5])p Black 387 w(C.)257
+b(F)-71 b(.)258 b(Bolz,)g(A.)g(Cuni,)f(M.)h(Fija\007k)-9
+b(o)-22 b(wski,)259 b(and)e(A.)h(Rigo.)434 b(T)-31 b(racing)257
+b(the)h(meta-)-137 47557 y(le)-22 b(v)-13 b(el:)183 b(PyPy')-49
+b(s)183 b(tracing)g(JIT)g(compiler)-49 b(.)236 b(In)182
+b Fa(Pr)-40 b(oceedings)184 b(of)f(the)g(4th)f(workshop)-137
+48553 y(on)197 b(the)i(Implementation,)g(Compilation,)f(Optimization)h
+(of)f(Object-Oriented)-137 49550 y(Langua)-9 b(g)g(es)342
+b(and)g(Pr)-40 b(o)-9 b(gr)c(amming)343 b(Systems)p Fw(,)h(pages)f
+(18\22625,)f(Geno)-13 b(v)-22 b(a,)342 b(Italy)-58 b(,)-137
+50546 y(2009.)221 b(A)-35 b(CM.)p Black -1557 51927 a([6])p
+Black 387 w(C.)180 b(F)-71 b(.)181 b(Bolz,)f(A.)h(K)-13
+b(uhn,)180 b(A.)h(Lienhard,)f(N.)h(Matsakis,)h(O.)f(Nierstrasz,)h(L.)f
+(Reng-)-137 52923 y(gli,)f(A.)h(Rigo,)f(and)g(T)-66 b(.)181
+b(V)-98 b(erw)-9 b(aest.)231 b(Back)180 b(to)g(the)g(future)g(in)g(one)
+g(week)g(\227)g(imple-)-137 53919 y(menting)272 b(a)h(Smalltalk)h(VM)f
+(in)g(PyPy.)483 b(In)272 b Fa(Self-Sustaining)h(Systems)p
+Fw(,)i(pages)-137 54916 y(123\226139.)220 b(2008.)p Black
+-1557 56297 a([7])p Black 387 w(C.)343 b(F)-71 b(.)344
+b(Bolz,)g(M.)g(Leuschel,)g(and)f(D.)h(Schneider)-49 b(.)710
+b(T)-71 b(o)-22 b(w)-9 b(ards)344 b(a)g(jitting)f(VM)-137
+57293 y(for)278 b(Prolog)h(e)-13 b(x)g(ecution.)502 b(In)279
+b Fa(Pr)-40 b(oceedings)280 b(of)f(the)g(12th)f(international)h(A)-27
+b(CM)-137 58289 y(SIGPLAN)292 b(symposium)i(on)e(Principles)i(and)d(pr)
+-13 b(actice)293 b(of)g(declar)-13 b(ative)293 b(pr)-40
+b(o-)-137 59286 y(gr)-13 b(amming)p Fw(,)222 b(pages)g(99\226108,)e
+(Hagenber)-16 b(g,)222 b(Austria,)h(2010.)e(A)-35 b(CM.)p
+Black -1557 60667 a([8])p Black 387 w(C.)338 b(Bruni)g(and)g(T)-66
+b(.)339 b(V)-98 b(erw)-9 b(aest.)695 b(PyGirl:)339 b(generating)f
+(Whole-System)h(VMs)-137 61663 y(from)241 b(High-Le)-22
+b(v)-13 b(el)241 b(prototypes)g(using)h(PyPy.)383 b(In)241
+b(W)-81 b(.)241 b(Aalst,)j(J.)e(Mylopoulos,)-137 62659
+y(N.)380 b(M.)h(Sadeh,)f(M.)g(J.)h(Sha)-13 b(w)-58 b(,)381
+b(C.)e(Szyperski,)i(M.)f(Oriol,)h(and)e(B.)h(Me)-13 b(yer)-35
+b(,)-137 63655 y(editors,)394 b Fa(Objects,)h(Components,)f(Models)f
+(and)g(P)-71 b(atterns)p Fw(,)395 b(v)-18 b(olume)393
+b(33)g(of)-137 64652 y Fa(Lectur)-33 b(e)364 b(Notes)g(in)e(Business)j
+(Information)e(Pr)-40 b(ocessing)p Fw(,)365 b(pages)e(328\226347.)-137
+65648 y(Springer)221 b(Berlin)g(Heidelber)-16 b(g,)223
+b(2009.)318 b(10.1007/978-3-642-02571-6_19.)p Black -1557
+67029 a([9])p Black 387 w(C.)276 b(Chambers,)g(D.)g(Ung)l(ar)-35
+b(,)276 b(and)f(E.)i(Lee.)493 b(An)276 b(ef)-22 b(\002cient)277
+b(implementation)f(of)-137 68025 y(SELF)283 b(a)g(dynamically-typed)g
+(object-oriented)g(language)f(based)h(on)g(proto-)-137
+69022 y(types.)319 b Fa(SIGPLAN)222 b(Not.)p Fw(,)g(24\(10\):49\22670,)
+e(1989.)p Black -2000 70403 a([10])p Black 387 w(M.)230
+b(Chang,)g(M.)g(Bebenita,)g(A.)h(Y)-89 b(ermolo)-13 b(vich,)230
+b(A.)h(Gal,)g(and)e(M.)i(Franz.)346 b(Ef)-22 b(\002-)-137
+71399 y(cient)257 b(just-in-time)h(e)-13 b(x)g(ecution)256
+b(of)h(dynamically)g(typed)f(languages)h(via)g(code)-137
+72395 y(specialization)359 b(using)f(precise)h(runtime)f(type)g
+(inference.)757 b(T)-62 b(echnical)358 b(Re-)p Black
+Black 29087 886 a(port)c(ICS-TR-07-10,)g(Donald)g(Bren)h(School)f(of)h
+(Information)f(and)g(Com-)29087 1882 y(puter)221 b(Science,)i(Uni)-22
+b(v)-13 b(ersity)221 b(of)g(California,)h(Irvine,)g(2007.)p
+Black 27224 3210 a([11])p Black 387 w(J.)200 b(Choi,)g(M.)g(Gupta,)h
+(M.)f(Serrano,)g(V)-114 b(.)201 b(C.)f(Sreedhar)-35 b(,)200
+b(and)f(S.)i(Midkif)-22 b(f.)272 b(Escape)29087 4206
+y(analysis)222 b(for)f(Ja)-18 b(v)c(a.)320 b Fa(SIGPLAN)222
+b(Not.)p Fw(,)g(34\(10\):1\22619,)e(1999.)p Black 27224
+5535 a([12])p Black 387 w(A.)273 b(Cuni.)483 b Fa(High)273
+b(performance)h(implementation)g(of)e(Python)h(for)g(CLI/.NET)29087
+6531 y(with)365 b(JIT)i(compiler)g(g)-9 b(ener)c(ation)366
+b(for)g(dynamic)h(langua)-9 b(g)g(es.)782 b Fw(PhD)366
+b(thesis,)29087 7527 y(Dipartimento)283 b(di)f(Informatica)h(e)g
+(Scienze)h(dell'Informazione,)e(Uni)-22 b(v)-13 b(ersity)29087
+8524 y(of)221 b(Geno)-13 b(v)-22 b(a,)221 b(2010.)318
+b(T)-62 b(echnical)223 b(Report)d(DISI-TH-2010-05.)p
+Black 27224 9852 a([13])p Black 387 w(A.)428 b(Gal,)g(B.)g(Eich,)g(M.)g
+(Sha)-18 b(v)-13 b(er)-35 b(,)428 b(D.)g(Anderson,)g(B.)f(Kaplan,)i(G.)
+f(Hoare,)29087 10848 y(D.)460 b(Mandelin,)g(B.)g(Zbarsk)-13
+b(y)-58 b(,)460 b(J.)h(Orendorf)-22 b(f,)459 b(M.)i(Bebenita,)f(M.)g
+(Chang,)29087 11844 y(M.)176 b(Franz,)g(E.)g(Smith,)g(R.)g(Reitmaier)
+-35 b(,)176 b(and)f(M.)h(Haghighat.)220 b(T)-31 b(race-based)176
+b(just-)29087 12841 y(in-time)221 b(type)h(specialization)h(for)e
+(dynamic)g(languages.)319 b(In)222 b Fa(PLDI)p Fw(,)g(2009.)p
+Black 27224 14169 a([14])p Black 387 w(A.)372 b(Gal)h(and)f(M.)g
+(Franz.)801 b(Incremental)373 b(dynamic)f(code)f(generation)h(with)
+29087 15165 y(trace)267 b(trees.)467 b(T)-62 b(echnical)269
+b(Report)d(ICS-TR-06-16,)h(Donald)g(Bren)g(School)g(of)29087
+16162 y(Information)297 b(and)h(Computer)g(Science,)h(Uni)-22
+b(v)-13 b(ersity)299 b(of)f(California,)h(Irvine,)29087
+17158 y(No)-13 b(v)-58 b(.)221 b(2006.)p Black 27224
+18486 a([15])p Black 387 w(A.)330 b(Gal,)h(C.)f(W)-81
+b(.)329 b(Probst,)i(and)e(M.)i(Franz.)666 b(HotpathVM:)331
+b(an)e(ef)-22 b(fecti)g(v)-13 b(e)330 b(JIT)29087 19482
+y(compiler)411 b(for)g(resource-constrained)h(de)-22
+b(vices.)929 b(In)411 b Fa(Pr)-40 b(oceedings)412 b(of)g(the)29087
+20479 y(2nd)179 b(international)h(confer)-33 b(ence)181
+b(on)e(V)-66 b(irtual)181 b(e)-18 b(xecution)181 b(en)-35
+b(vir)-40 b(onments)p Fw(,)181 b(pages)29087 21475 y(144\226153,)220
+b(Otta)-13 b(w)k(a,)223 b(Ontario,)f(Canada,)g(2006.)f(A)-35
+b(CM.)p Black 27224 22803 a([16])p Black 387 w(A.)239
+b(Geor)-16 b(ges,)239 b(D.)g(Buytaert,)g(and)f(L.)h(Eeckhout.)373
+b(Statistically)241 b(rigorous)d(Ja)-18 b(v)c(a)29087
+23800 y(performance)221 b(e)-22 b(v)g(aluation.)319 b
+Fa(SIGPLAN)221 b(Not.)p Fw(,)h(42\(10\):57\22676,)e(2007.)p
+Black 27224 25128 a([17])p Black 387 w(A.)287 b(Gill,)h(J.)g(Launchb)
+-18 b(ury)-58 b(,)287 b(and)g(S.)h(L.)f(P)-98 b(.)287
+b(Jones.)530 b(A)287 b(short)g(cut)g(to)g(deforesta-)29087
+26124 y(tion.)603 b(In)310 b Fa(Pr)-40 b(oceedings)312
+b(of)e(the)h(confer)-33 b(ence)311 b(on)f(Functional)g(pr)-40
+b(o)-9 b(gr)c(amming)29087 27121 y(langua)k(g)g(es)209
+b(and)g(computer)i(ar)-33 b(c)-13 b(hitectur)-33 b(e)p
+Fw(,)212 b(FPCA)e('93,)g(page)f(223\226232,)g(Ne)-22
+b(w)29087 28117 y(Y)-97 b(ork,)221 b(NY)-114 b(,)222
+b(USA,)h(1993.)e(A)-35 b(CM.)p Black 27224 29445 a([18])p
+Black 387 w(B.)213 b(Goldber)-16 b(g)213 b(and)g(Y)-114
+b(.)214 b(G.)g(P)-13 b(ark.)301 b(Higher)214 b(order)f(escape)h
+(analysis:)h(optimizing)29087 30441 y(stack)265 b(allocation)g(in)f
+(functional)g(program)g(implementations.)458 b(In)264
+b Fa(Pr)-40 b(oceed-)29087 31438 y(ings)223 b(of)g(the)h(thir)-33
+b(d)224 b(Eur)-40 b(opean)223 b(symposium)i(on)d(pr)-40
+b(o)-9 b(gr)c(amming)224 b(on)f(ESOP)h('90)p Fw(,)29087
+32434 y(pages)320 b(152\226160,)f(Copenhagen,)h(Denmark,)h(1990.)e
+(Springer)-18 b(-V)-98 b(erlag)321 b(Ne)-22 b(w)29087
+33430 y(Y)-97 b(ork,)221 b(Inc.)p Black 27224 34759 a([19])p
+Black 387 w(F)-71 b(.)251 b(Henglein.)411 b(Dynamic)251
+b(typing:)f(syntax)g(and)g(proof)f(theory)-58 b(.)411
+b Fa(Sci.)251 b(Comput.)29087 35755 y(Pr)-40 b(o)-9 b(gr)c(am.)p
+Fw(,)222 b(22:197\226230,)f(June)g(1994.)p Black 27224
+37083 a([20])p Black 387 w(J.)395 b(J\370r)-16 b(gensen.)875
+b Fa(A)394 b(Calculus)h(for)g(Boxing)g(Analysis)h(of)e(P)-71
+b(olymorphically)29087 38079 y(T)-66 b(yped)201 b(Langua)-9
+b(g)g(es)p Fw(.)274 b(Ph.D.)202 b(Thesis,)g(Uni)-22 b(v)-13
+b(ersity)201 b(of)f(Copenhapen,)g(1996.)273 b(TR)29087
+39076 y(96/28.)p Black 27224 40404 a([21])p Black 387
+w(J.)312 b(W)-81 b(.)312 b(Llo)-9 b(yd)311 b(and)g(J.)i(C.)e
+(Shepherdson.)608 b(P)-13 b(artial)313 b(e)-22 b(v)g(aluation)311
+b(in)h(logic)f(pro-)29087 41400 y(gramming.)318 b Fa(J)-22
+b(.)222 b(Lo)-9 b(g)c(.)222 b(Pr)-40 b(o)-9 b(gr)c(am.)p
+Fw(,)223 b(11\(3-4\):217\226242,)c(1991.)p Black 27224
+42729 a([22])p Black 387 w(E.)175 b(Miranda.)220 b(Conte)-13
+b(xt)174 b(management)i(in)f(V)-53 b(isualW)-71 b(orks)176
+b(5i.)220 b(T)-62 b(echnical)176 b(report,)29087 43725
+y(P)-13 b(arcPlace)222 b(Di)-22 b(vision,)223 b(CINCOM,)f(Inc.,)g
+(1999.)p Black 27224 45053 a([23])p Black 387 w(T)-66
+b(.)413 b(Mogensen.)933 b(Constructor)412 b(specialization.)934
+b(In)413 b Fa(Pr)-40 b(oceedings)414 b(of)f(the)29087
+46050 y(1993)180 b(A)-27 b(CM)180 b(SIGPLAN)h(symposium)i(on)d(P)-71
+b(artial)182 b(e)-13 b(valuation)180 b(and)g(semantics-)29087
+47046 y(based)339 b(pr)-40 b(o)-9 b(gr)c(am)341 b(manipulation)p
+Fw(,)f(pages)g(22\22632,)f(Copenhagen,)g(Denmark,)29087
+48042 y(1993.)220 b(A)-35 b(CM.)p Black 27224 49370 a([24])p
+Black 387 w(Y)-114 b(.)225 b(G.)h(P)-13 b(ark)225 b(and)g(B.)g(Goldber)
+-16 b(g.)330 b(Escape)226 b(analysis)g(on)f(lists.)332
+b Fa(SIGPLAN)225 b(Not.)p Fw(,)29087 50367 y(27\(7\):116\226127,)219
+b(1992.)p Black 27224 51695 a([25])p Black 387 w(A.)403
+b(Rigo.)899 b(Representation-based)403 b(just-in-time)h(specialization)
+g(and)f(the)29087 52691 y(Psyco)298 b(prototype)g(for)g(Python.)565
+b(In)298 b Fa(Pr)-40 b(oceedings)299 b(of)f(the)g(2004)g(A)-27
+b(CM)298 b(SIG-)29087 53688 y(PLAN)190 b(symposium)i(on)f(P)-71
+b(artial)191 b(e)-13 b(valuation)190 b(and)g(semantics-based)i(pr)-40
+b(o)-9 b(gr)c(am)29087 54684 y(manipulation)p Fw(,)221
+b(pages)h(15\22626,)e(V)-98 b(erona,)222 b(Italy)-58
+b(,)223 b(2004.)d(A)-35 b(CM.)p Black 27224 56012 a([26])p
+Black 387 w(A.)349 b(Rigo)g(and)g(S.)h(Pedroni.)728 b(PyPy')-49
+b(s)350 b(approach)f(to)g(virtual)h(machine)f(con-)29087
+57008 y(struction.)620 b(In)315 b Fa(Companion)f(to)i(the)f(21st)h(A)
+-27 b(CM)315 b(SIGPLAN)h(confer)-33 b(ence)316 b(on)29087
+58005 y(Object-oriented)j(pr)-40 b(o)-9 b(gr)c(amming)318
+b(systems,)i(langua)-9 b(g)g(es,)318 b(and)f(applications)p
+Fw(,)29087 59001 y(pages)221 b(944\226953,)g(Portland,)h(Ore)-13
+b(gon,)221 b(USA,)i(2006.)e(A)-35 b(CM.)p Black 27224
+60329 a([27])p Black 387 w(P)-98 b(.)316 b(W)-71 b(adler)-49
+b(.)622 b(Deforestation:)317 b(transforming)f(programs)g(to)g
+(eliminate)g(trees.)29087 61326 y(In)218 b Fa(Pr)-40
+b(oceedings)220 b(of)f(the)g(Second)f(Eur)-40 b(opean)219
+b(Symposium)g(on)f(Pr)-40 b(o)-9 b(gr)c(amming)p Fw(,)29087
+62322 y(page)230 b(231\226248,)f(Amsterdam,)i(The)f(Netherlands,)i(The)
+e(Netherlands,)h(1988.)29087 63318 y(North-Holland)221
+b(Publishing)h(Co.)p Black Black eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF



More information about the Pypy-commit mailing list