diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/skak/refman.ps')
-rw-r--r-- | Master/texmf-dist/doc/latex/skak/refman.ps | 6586 |
1 files changed, 0 insertions, 6586 deletions
diff --git a/Master/texmf-dist/doc/latex/skak/refman.ps b/Master/texmf-dist/doc/latex/skak/refman.ps deleted file mode 100644 index e273f763c38..00000000000 --- a/Master/texmf-dist/doc/latex/skak/refman.ps +++ /dev/null @@ -1,6586 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: dvips(k) 5.991 Copyright 2011 Radical Eye Software -%%Title: refman.dvi -%%CreationDate: Thu Jul 18 23:26:37 2013 -%%Pages: 3 -%%PageOrder: Ascend -%%Orientation: Landscape -%%BoundingBox: 0 0 596 842 -%%DocumentFonts: CMTT10 CMBX10 CMSSBX10 CMSY10 CMR10 CMSSI10 CMTI10 -%%+ CMMI10 SkakNew-Figurine -%%DocumentPaperSizes: a4 -%%EndComments -%DVIPSWebPage: (www.radicaleye.com) -%DVIPSCommandLine: dvips -o refman.ps refman.dvi -%DVIPSParameters: dpi=600 -%DVIPSSource: TeX output 2013.07.18:2326 -%%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 -/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3 -def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90 -rotate}{show}ifelse}ifelse}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: pstricks.pro 0 0 -% $Id: pstricks.pro 647 2012-02-12 15:03:40Z herbert $ -% -%% PostScript prologue for pstricks.tex. -%% Version 1.12, 2012/02/12 -%% -%% This program can be redistributed and/or modified under the terms -%% of the LaTeX Project Public License Distributed from CTAN archives -%% in directory macros/latex/base/lppl.txt. -% -% -% Define the follwing gs-functions if not known, eg when using distiller -% -systemdict /.setopacityalpha known not {/.setopacityalpha { pop } def } if -systemdict /.setblendmode known not {/.setblendmode { pop } def } if -systemdict /.setshapealpha known not {/.setshapealpha { pop } def } if -% -/tx@Dict 200 dict def % the main PSTricks dictionary -tx@Dict begin -/ADict 25 dict def % The arrow dictionaray -/CM { matrix currentmatrix } bind def -/SLW /setlinewidth load def -/CLW /currentlinewidth load def -/CP /currentpoint load def -/ED { exch def } bind def -/L /lineto load def -/T /translate load def -/TMatrix { } def -/RAngle { 0 } def -/Sqrt { dup 0 lt { pop 0 } { sqrt } ifelse } def % return 0 for negative arguments -/Atan { /atan load stopped { pop pop 0 } if } def % return 0 if atan not known -/ATAN1 {neg -1 atan 180 sub } def % atan(x) (only one parameter) -/Div { dup 0 eq { pop } { div } ifelse } def % control the division -/tan { dup cos abs 1.e-10 lt - { pop 1.e10 } % return 1.e10 as infinit - { dup sin exch cos div } ifelse % default sin/cos -} def -/Tan { dup sin exch cos Div } def % sin(x)/cos(x) x in degrees -/Acos {dup dup mul neg 1 add dup 0 lt { % arc cos, returns 0 when negative root - pop pop 0 }{ sqrt exch atan} ifelse } def -/NET { neg exch neg exch T } def % change coordinate system to the negative one -/Pyth { dup mul exch dup mul add sqrt } def % Pythagoras, expects 2 parameter -/Pyth2 { % Pythagoras, xA yA xB yB - 3 -1 roll % xA xB yB yA - sub % xA xB yB-yA - 3 1 roll % yB-yA xA xB - sub % yB-yA xA-xB - Pyth } def -/PtoC { 2 copy cos mul 3 1 roll sin mul } def % Polar to Cartesian -/Rand { rand 4294967295 div } def % a real random number -%----------------- hv added 20050516 --------------- -/PiDiv2 1.57079632680 def -/Pi 3.14159265359 def -/TwoPi 6.28318530718 def -/Euler 2.71828182846 def -%/e Euler bind def -% -/RadtoDeg { 180 mul Pi div } bind def % convert from radian to degrees -/DegtoRad { Pi mul 180 div } bind def % viceversa -%----------------- hv end--------------------------- -/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } def -% -/PathLength { - flattenpath /z 0 def - { /y1 ED /x1 ED /y2 y1 def /x2 x1 def } - { /y ED /x ED PathLength@ } - {} - { /y y2 def /x x2 def PathLength@ } - /pathforall load stopped { pop pop pop pop } if - z -} def -% -/STP { .996264 dup scale } def % BP/PT scaling -/STV { SDict begin normalscale end STP } def % -% -/DashLine { - dup 0 gt - { /a .5 def PathLength exch div } - { pop /a 1 def PathLength } ifelse - /b ED % pattern should fit evenly in b - dup /X ED % pattern array - 0 get /y ED % length of first black segment - /z 0 X {add} forall def % length of the full pattern - %% Computation of the scaling factor as described by van Zandt: - b a .5 sub 2 mul y mul sub z Div round - z mul a .5 sub 2 mul y mul add b exch Div - %%%% scaling factor on stack. - /z ED %% now, z is the scaling factor - false % for the length test below - X { z mul } forall X astore %% modification TN 04-08-07 - %%% Checking whether at least one dash in X has positive length: - {0 gt or} forall - { X 1 a sub y mul } - { [ 1 0 ] 0 } - ifelse - setdash stroke -} def -% -/DotLine { - /b PathLength def - /a ED /z ED /y CLW def - /z y z add def - a 0 gt { - /b b a div def - }{ - a 0 eq { - /b b y sub def - }{ a -3 eq { - /b b y add def } if - } ifelse - } ifelse - [ 0 b b z Div round Div dup 0 le { pop 1 } if ] - a 0 gt { 0 }{ y 2 div a -2 gt { neg }if } ifelse - setdash 1 setlinecap stroke -} def -% -/SymbolLine { % on stack [ x y x y ... - counttomark % number of elements - 2 div cvi /n ED % n pairs - /YA ED /XA ED % the start point - n 1 sub { - /YB ED /XB ED - /XLength XB XA sub def - /YLength YB YA sub def - /PAngle YLength XLength Atan def - /XYLength XLength YLength Pyth def - - %% for negative SymStep we calculate the distance - SymStep 0 lt - { %XYLength SymStep div abs cvi - /nSym SymStep abs cvi def } - { /nSym XYLength SymStep div cvi def } - ifelse - 0.5 setflat - /Shift Symbol stringwidth pop 2 div def - /deltaX XLength nSym div def - /deltaY YLength nSym div def - curveticks - { XA YA moveto } - { XA Shift sub YA Shift sub moveto } - ifelse - nSym { - gsave - curveticks - { PAngle 180 sub CorrAngle sub tickAngle add /rotAngle ED - currentpoint translate rotAngle rotate - 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto - SymbolLinewidth setlinewidth stroke - } - { - rotateSymbol { PAngle 180 sub CorrAngle sub rotate } if - Symbol show - } - ifelse - grestore - deltaX deltaY rmoveto - } repeat - /YA YB def /XA XB def - } repeat - curveticks - { XA YA moveto } - { XA Shift sub YA Shift sub moveto } - ifelse - gsave - curveticks - { PAngle 180 sub CorrAngle sub tickAngle add /rotAngle ED - XA YA translate rotAngle rotate - 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto - SymbolLinewidth setlinewidth stroke - } - { - rotateSymbol { PAngle 180 sub CorrAngle sub rotate } if - Symbol show - } - ifelse - grestore - pop % delete the mark symbol -} def -% -/LineFill { % hv ------------ patch 7 ------------- - gsave - abs /hatchWidthInc ED - abs /hatchSepInc ED - abs CLW add /a ED - a 0 dtransform round exch round exch - 2 copy idtransform - exch Atan rotate - idtransform pop /a ED - .25 .25 itransform pathbbox - /y2 ED - a Div ceiling cvi /x2 ED /y1 ED - a Div cvi /x1 ED /y2 y2 y1 sub def - clip - newpath - 2 setlinecap - systemdict - /setstrokeadjust known { true setstrokeadjust } if - x2 x1 sub 1 add { - x1 a mul y1 moveto 0 y2 rlineto stroke - /x1 x1 1 add - hatchWidthInc 0 gt { CLW add } if - def - hatchSepInc 0 gt hatchWidthInc 0 gt or { - /a a hatchSepInc add def - CLW hatchWidthInc add SLW - } if - } repeat - grestore - pop pop } def -% -/DotFill {% on stack: dot radius - /dotRadius ED - abs CLW add /a ED - a 0 dtransform round exch round exch - 2 copy idtransform - exch Atan rotate - idtransform pop /a ED - .25 .25 itransform - pathbbox % llx lly urx ury of smallest bounding box - /y2 ED /x2 ED /y1 ED /x1 ED - y2 y1 sub a div 2 add cvi /Ny ED - x2 x1 sub a div 2 add cvi /Nx ED - clip - newpath - /yA y1 dotRadius add CLW add def - /xA0 x1 dotRadius add CLW add def - Ny { - /xA xA0 def - Nx { - newpath - xA yA dotRadius 0 360 arc - SolidDot { gsave fill grestore } if - stroke - xA a add /xA ED - } repeat - yA a add /yA ED - } repeat - grestore -} def -% -/PenroseFill {% on stack: scaling factor - dup dup scale - 1 exch div round /penroseFactor ED - a 0 dtransform round exch round exch - 2 copy idtransform - exch Atan rotate - idtransform pop /a ED - .25 .25 itransform pathbbox - /y2 ED - a Div ceiling cvi /x2 ED /y1 ED - a Div cvi /x1 ED /y2 y2 y1 sub def - clip - newpath - systemdict - /setstrokeadjust known { true setstrokeadjust } if - /I/S/L/W/G/+/Z/F/E/D[/def/exch/for{E D}/add{s E get mul} - { Z -36.2001 1 33 }{25 E S rlineto}{/q Z dup q G E q 1 + G}{Z 2 2}]{cvx def}forall - [0 72 1008 {dup sin E cos }F ]1 setlinejoin/s W{/a W{/b I 10{/i I 4{/m I moveto - i m +/j I 10{/l Z b m l + G a l G sub s m get div .2 + floor .3 + 25 - mul j l + S rmoveto}F i L j L stroke }F}F}F}F - grestore - pop pop -} def -% -/TruchetFill { % on stack: scaling factor - 10 dict begin - dup dup scale - 1 exch div round /penroseFactor ED - a 0 dtransform round exch round exch - 2 copy idtransform - exch Atan rotate - idtransform pop /a ED - .25 .25 itransform pathbbox - /y2 ED - a Div ceiling cvi /x2 ED /y1 ED - a Div cvi /x1 ED /y2 y2 y1 sub def - clip - newpath - systemdict - /setstrokeadjust known { true setstrokeadjust } if - /ma a neg def - /ha a 2 div def - /mha ha neg def - /tile { - rand dup 2 idiv 2 mul eq { 90 rotate } if - mha mha moveto ha mha lineto - ha ha lineto mha ha lineto -% closepath .1 setlinewidth stroke - contents - } def - /contents{ - 0 ha moveto ha 0 lineto - 0 mha moveto mha 0 lineto -% 1 setlinewidth stroke - } def - /dotiling { - f ma mul a f a mul { - /i exch def - f ma mul a f a mul { - /j exch def - gsave i j translate - tile stroke grestore - } for - } for - } def -% - /f 3 def - 5 srand dotiling - end % local user dict -} def -% -/BeginArrow { - ADict begin % hold it local, for end see EndArrow - /@mtrx CM def - gsave - 2 copy T - 2 index sub neg exch - 3 index sub exch Atan - rotate newpath -} def -% -/EndArrow { @mtrx setmatrix CP grestore end } def % end the ADict -% -/Arrow { - CLW mul add dup - 2 div /w ED - mul dup /h ED - mul /a ED - { 0 h T 1 -1 scale } if - w neg h moveto - 0 0 L w h L w neg a neg rlineto - gsave fill grestore -} def -% -/ArrowD { % the sides are drawn as curves (hv 20071211) - CLW mul add dup - 2 div /w ED - mul dup /h ED - mul /Inset ED - { 0 h T 1 -1 scale } if % changes the direction -% we use y=w/h^2 * x^2 as equation for the control points -% for the coordinates the arrow is seen from top to bottom -% the bottom (tip) is (0;0) - w neg h moveto % lower left of > - w 9 div 4 mul neg h 3 div 2 mul - w 9 div neg h 3 div - 0 0 curveto % tip of > - w 9 div h 3 div - w 9 div 4 mul h 3 div 2 mul - w h curveto % upper left of > - w neg Inset neg rlineto % move to x=0 and inset - gsave fill grestore -} def -% -/Tbar { - CLW mul add /z ED - z -2 div CLW 2 div moveto - z 0 rlineto stroke - 0 CLW moveto -} def -% -/Bracket { - CLW mul add dup CLW sub 2 div - /x ED mul CLW add /y ED /z CLW 2 div def - x neg y moveto - x neg CLW 2 div L x CLW 2 div L x y L stroke - 0 CLW moveto -} def -% -/RoundBracket { - CLW mul add dup 2 div - /x ED mul /y ED /mtrx CM def - 0 CLW 2 div T x y mul 0 ne { x y scale } if - 1 1 moveto - .85 .5 .35 0 0 0 curveto - -.35 0 -.85 .5 -1 1 curveto - mtrx setmatrix stroke 0 CLW moveto -} def -% -/SD { 0 360 arc fill } def -% -/EndDot { % DS is the dot size - { /z DS def } { /z 0 def } ifelse % outer or inner dimen - /b ED % the color definition - 0 z DS SD - b { 0 z DS CLW sub SD } if - 0 DS z add CLW 4 div sub - moveto -} def -% -/Shadow { [ { /moveto load } { /lineto load } { /curveto load } { - /closepath load } /pathforall load stopped { pop pop pop pop CP /moveto - load } if ] cvx newpath 3 1 roll T exec } def -% -/NArray { % holds the coordinates and on top of stack the showpoints boolean - /showpoints ED - counttomark 2 div dup cvi /n ED % n 2 div on stack - n eq not { exch pop } if % even numbers of points? delete one - ] aload /Points ED - showpoints not { Points aload pop } if -% { ] aload /Points ED } -% { n 2 mul 1 add -1 roll pop } ifelse % delete the mark symbol -} def -% -/Line { - NArray n 0 eq not - { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub def - n { Lineto } repeat - CP 4 2 roll ArrowB L pop pop - } if -} def -% -/LineToYAxis { - /Ox ED % Save the x origin value - NArray % all x-y pairs on stack - n { 2 copy moveto % go to current point - Ox exch Lineto % line to y-axis - pop % delete old x-value - } repeat -} def -% -/LineToXAxis{ - /Oy ED % Save the y origin value - NArray % all x-y pairs on stack - n 0 eq not - { n 1 eq { 0 0 /n 2 def } if - ArrowA - /n n 2 sub def - CP 2 copy moveto pop Oy Lineto - n { 2 copy moveto pop Oy Lineto } repeat - CP - 4 2 roll - ArrowB - 2 copy moveto pop Oy - L - pop pop } if -} def -% -/Arcto { - /a [ 6 -2 roll ] cvx def - a r - /arcto load stopped { 5 } { 4 } ifelse { pop } repeat - a -} def -% -/CheckClosed { - dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq - and { pop pop /n n 1 sub def } if -} def -% -/Polygon { - NArray n 2 eq { 0 0 /n 3 def } if - n 3 lt - { n { pop pop } repeat } - { n 3 gt { CheckClosed } if - n 2 mul -2 roll - /y0 ED /x0 ED /y1 ED /x1 ED - x1 y1 - /x1 x0 x1 add 2 div def - /y1 y0 y1 add 2 div def - x1 y1 moveto - /n n 2 sub def - n { Lineto } repeat - x1 y1 x0 y0 6 4 roll Lineto - Lineto pop pop closepath } ifelse -} def -% -/SymbolPolygon { % on stack [ x y x y ... - counttomark % number of elements - 2 add /m ED - 2 copy m 2 roll % copy last two - m 2 div cvi /n ED % n pairs - /YA ED /XA ED % the start point - n 1 sub { - /YB ED /XB ED - /XLength XB XA sub def - /YLength YB YA sub def - /PAngle YLength XLength Atan def - /XYLength XLength YLength Pyth def - /nSym XYLength SymStep Div cvi def - /Shift Symbol stringwidth pop 2 Div def - /deltaX XLength nSym Div def - /deltaY YLength nSym Div def - XA Shift sub YA Shift sub moveto - nSym { - gsave rotateSymbol { PAngle 180 sub CorrAngle sub rotate } if - Symbol show - grestore - deltaX deltaY rmoveto - } repeat -% XB Shift sub YB Shift sub moveto Symbol show - /YA YB def /XA XB def - } repeat - pop % delete the mark symbol -} def -% -/Diamond { - /mtrx CM def - T rotate - /h ED - /w ED - dup 0 eq { pop } { CLW mul neg - /d ED - /a w h Atan def - /h d a sin Div h add def - /w d a cos Div w add def } ifelse - mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2 div - /ArrowA { moveto } def - /ArrowB { } def - false Line - closepath mtrx setmatrix } def -% -/Triangle { - /mtrx CM def - translate - rotate /h ED 2 div /w ED - dup CLW mul /d ED - /h h d w h Atan sin Div sub def - /w w d h w Atan 2 div dup cos exch sin Div mul sub def - mark - 0 d w neg d 0 h w d 0 d - /ArrowA { moveto } def - /ArrowB { } def - false - Line - closepath - mtrx -% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis) -% setmatrix } def - setmatrix pop -} def -% DG/SR modification end -% -/CCA { - /y ED /x ED - 2 copy y sub /dy1 ED - x sub /dx1 ED - /l1 dx1 dy1 Pyth def -} def -% -/CC { - /l0 l1 def - /x1 x dx sub def - /y1 y dy sub def - /dx0 dx1 def - /dy0 dy1 def - CCA - /dx dx0 l1 c exp mul dx1 l0 c exp mul add def - /dy dy0 l1 c exp mul dy1 l0 c exp mul add def - /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos abs b exp a mul dx dy Pyth Div 2 div def - /x2 x l0 dx mul m mul sub def - /y2 y l0 dy mul m mul sub def - /dx l1 dx mul m mul neg def - /dy l1 dy mul m mul neg def -} def -% -/IC { - /c c 1 add def - c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if } ifelse - /a a 2 mul 3 div 45 cos b exp div def - CCA - /dx 0 def - /dy 0 def -} def -% -/BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def -/NC { CC x1 y1 x2 y2 x y curveto } def -/EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def -/BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def -/NAC { x2 y2 x y curveto CC x1 y1 } def -/EAC { x2 y2 x y ArrowB curveto pop pop } def -% -/OpenCurve { - NArray n 3 lt - { n { pop pop } repeat } - { BOC /n n 3 sub def n { NC } repeat EOC } ifelse -} def -% -/CurvePath { - %% for negative SymStep we calculate the distance - SymStep 0 lt { gsave PathLength SymStep div abs /SymStep ED grestore } if - 0.5 setflat - flattenpath /z 0 def /z0 0 def - { /y1 ED /x1 ED /y2 y1 def /x2 x1 def - x1 Shift sub y1 Shift sub moveto - gsave - curveticks - { x1 y1 translate startAngle rotate - 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto - SymbolLinewidth setlinewidth stroke - } - { startAngle rotate Symbol show } - ifelse - grestore /z0 z def } - { /y ED /x ED PathLength@ z z0 sub SymStep ge { - x Shift sub y Shift sub moveto - gsave - curveticks - { y yOld sub x xOld sub Atan 180 sub CorrAngle sub /rotAngle ED - x y translate rotAngle rotate - 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto - SymbolLinewidth setlinewidth stroke - } - { - rotateSymbol { y yOld sub x xOld sub Atan 180 sub CorrAngle sub rotate } if - Symbol show - } - ifelse - grestore /z0 z def } if - /yOld y def /xOld x def } - {} %% the lineto part - { /y y2 def /x x2 def PathLength@ - x Shift sub y Shift sub moveto - gsave - curveticks - { y yOld sub x xOld sub Atan 180 sub /rotAngle ED - x y translate rotAngle rotate - 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto - SymbolLinewidth setlinewidth stroke - } - { - x Shift sub y Shift sub moveto - rotateSymbol { y yOld sub x xOld sub Atan 180 sub CorrAngle sub rotate } if - Symbol show - } - ifelse - grestore - } - pathforall -% curveticks -% { gsave -% x y translate rotAngle rotate -% 0 SymbolWidth 2 div moveto 0 SymbolWidth 2 div neg lineto -% SymbolLinewidth setlinewidth stroke grestore -% } if - z -} def -% -/OpenSymbolCurve { - OpenCurve - 0.1 setflat - /Shift Symbol stringwidth pop 2 div def - CurvePath -} def -% -/AltCurve { - { false NArray n 2 mul 2 roll - [ n 2 mul 3 sub 1 roll ] aload - /Points ED - n 2 mul -2 roll } - { false NArray } ifelse - n 4 lt { n { pop pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse -} def -% -/AltOpenSymbolCurve { - AltCurve - 0.1 setflat - /Shift Symbol stringwidth pop 2 div def - CurvePath -} def -% -/ClosedCurve { - NArray n 3 lt - { n { pop pop } repeat } - { n 3 gt { CheckClosed } if - 6 copy n 2 mul 6 add 6 roll - IC CC x y moveto n { NC } repeat - closepath pop pop - } ifelse -} def -% -/ClosedSymbolCurve { - ClosedCurve - 0.1 setflat - /Shift Symbol stringwidth pop 2 div def - CurvePath -} def -% -/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def -/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def -/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore } def -% -/FontDot { - DS 2 mul dup - matrix scale matrix concatmatrix exch matrix - rotate matrix concatmatrix exch - findfont exch makefont setfont -} def -% -/Rect { - x1 y1 y2 add 2 div moveto - x1 y2 lineto - x2 y2 lineto - x2 y1 lineto - x1 y1 lineto - closepath -} def -% -/OvalFrame { - x1 x2 eq y1 y2 eq or - { pop pop x1 y1 moveto x2 y2 L } - { y1 y2 sub abs x1 x2 sub abs 2 copy gt - { exch pop } { pop } ifelse - 2 div exch { dup 3 1 roll mul exch } if - 2 copy lt { pop } { exch pop } ifelse - /b ED - x1 y1 y2 add 2 div moveto - x1 y2 x2 y2 b arcto - x2 y2 x2 y1 b arcto - x2 y1 x1 y1 b arcto - x1 y1 x1 y2 b arcto - 16 { pop } repeat - closepath - } ifelse -} def -% -/Frame { - CLW mul /a ED - 3 -1 roll - 2 copy gt { exch } if - a sub /y2 ED - a add /y1 ED - 2 copy gt { exch } if - a sub /x2 ED - a add /x1 ED - 1 index 0 eq { pop pop Rect } { OvalFrame } ifelse -} def -% -/BezierNArray { - /f ED - counttomark 2 div dup cvi /n ED - n eq not { exch pop } if - n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat - f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse -} def -% -/OpenBezier { - BezierNArray - n 1 eq - { pop pop } - { ArrowA n 4 sub 3 idiv - { 6 2 roll 4 2 roll curveto } repeat - 6 2 roll 4 2 roll ArrowB curveto } ifelse -} def -% -/OpenSymbolBezier { - OpenBezier - 0.1 setflat - /Shift Symbol stringwidth pop 2 div def - CurvePath -} def -% -/ClosedBezier { - BezierNArray - n 1 eq - { pop pop } - { moveto n 1 sub 3 idiv - { 6 2 roll 4 2 roll curveto } repeat - closepath } ifelse -} def -% -/ClosedSymbolBezier { - /f ED % save showpoints value - 2 copy /yEnd ED /xEnd ED - counttomark -2 roll 2 copy /yStart ED /xStart ED - counttomark 2 roll - f - ClosedBezier - 0.1 setflat - /Shift Symbol stringwidth pop 2 div def - CurvePath - [ xEnd yEnd xStart yStart SymbolLine -} def -% -/BezierShowPoints { - gsave - Points aload length 2 div cvi /n ED - moveto - n 1 sub { lineto } repeat - CLW 2 div SLW [ 4 4 ] 0 setdash stroke - grestore -} def -% -/Parab { - /y0 ED /x0 ED /y1 ED /x1 ED - /dx x0 x1 sub 3 div def - /dy y0 y1 sub 3 div def - x0 dx sub y0 dy add x1 y1 ArrowA - x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB - curveto - /Points [ x1 y1 x0 y0 x0 2 mul x1 sub y1 ] def -} def -% -/Parab1 { % 1 end | 0 SP - /ySP ED /xSP ED /y1 ED /x1 ED - /dx xSP x1 sub 3 div def - /dy ySP y1 sub 3 div def - newpath x1 y1 moveto xSP y1 lineto xSP ySP lineto - x1 ySP lineto closepath clip - currentpoint - newpath moveto - xSP dx sub ySP dy add x1 y1 ArrowA - xSP dx add ySP dy add xSP 2 mul x1 sub y1 ArrowB - curveto - /Points [ x1 y1 xSP ySP xSP 2 mul x1 sub y1 ] def -} def -% -/Grid { - newpath - /a 4 string def - /b ED % psk@gridlabels in pt - /c ED % { \pst@usecolor\psgridlabelcolor } - /n ED % psk@griddots - cvi dup 1 lt { pop 1 } if - /s ED % \psk@subgriddiv - s div dup 0 eq { pop 1 } if - /dy ED s div dup 0 eq { pop 1 } if % \pst@number\psyunit abs - /dx ED dy div round dy mul % \pst@number\psxunit abs - /y0 ED dx div round dx mul - /x0 ED dy div round cvi - /y2 ED dx div round cvi - /x2 ED dy div round cvi - /y1 ED dx div round cvi - /x1 ED - /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def - /w x2 x1 sub 0 gt { 1 } { -1 } ifelse def - b 0 gt { - /z1 b 4 div CLW 2 div add def -% /Helvetica findfont b scalefont setfont - /b b .95 mul CLW 2 div add def } if - systemdict /setstrokeadjust known - { true setstrokeadjust /t { } def } - { /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add - exch itransform } bind def } ifelse - gsave n 0 gt { 1 setlinecap [ 0 dy n div ] dy n div 2 div setdash } { 2 setlinecap } ifelse - /i x1 def - /f y1 dy mul n 0 gt { dy n div 2 div h mul sub } if def - /g y2 dy mul n 0 gt { dy n div 2 div h mul add } if def - x2 x1 sub w mul 1 add dup 1000 gt { pop 1000 } if - { i dx mul dup y0 moveto - b 0 gt - { gsave c i a cvs dup stringwidth pop - /z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse - h 0 gt {b neg}{z1} ifelse - rmoveto show grestore } if - dup t f moveto - g t L stroke - /i i w add def - } repeat - grestore - gsave - n 0 gt - % DG/SR modification begin - Nov. 7, 1997 - Patch 1 - %{ 1 setlinecap [ 0 dx n div ] dy n div 2 div setdash } - { 1 setlinecap [ 0 dx n div ] dx n div 2 div setdash } - % DG/SR modification end - { 2 setlinecap } ifelse - /i y1 def - /f x1 dx mul n 0 gt { dx n div 2 div w mul sub } if def - /g x2 dx mul n 0 gt { dx n div 2 div w mul add } if def - y2 y1 sub h mul 1 add dup 1000 gt { pop 1000 } if - { newpath i dy mul dup x0 exch moveto - b 0 gt { gsave c i a cvs dup stringwidth pop - /z2 ED - w 0 gt {z1 z2 add neg} {z1} ifelse - h 0 gt {z1} {b neg} ifelse - rmoveto show grestore } if - dup f exch t moveto - g exch t L stroke - /i i h add def - } repeat - grestore -} def -% -/ArcArrow { - /d ED /b ED /a ED - gsave - newpath 0 -1000 moveto clip - newpath - 0 1 0 0 b - grestore - c mul - /e ED - pop pop pop r a e d PtoC y add exch x add - exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c - mul neg d -} def -% -/Ellipse { - /rotAngle ED - /mtrx CM def - T - rotAngle rotate - scale 0 0 1 5 3 roll arc - mtrx setmatrix -} def -% -/ArcAdjust { %%%% Vincent Guirardel -% given a target length (targetLength) and an initial angle (angle0) [in the stack], -% let M(angle0)=(rx*cos(angle0),ry*sin(angle0))=(x0,y0). -% This computes an angle t such that (x0,y0) is at distance -% targetLength from the point M(t)=(rx*cos(t),ry*sin(t)). -% NOTE: this an absolute angle, it does not have to be added or substracted to angle0 -% contrary to TvZ's code. -% To achieve, this, one iterates the following process: start with some angle t, -% compute the point M' at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)]. -% Now take t' (= new angle) so that (0,0) M(t') and M' are aligned. -% -% Another difference with TvZ's code is that we need d (=add/sub) to be defined. -% the value of d = add/sub is used to know on which side we have to move. -% It is only used in the initialisation of the angle before the iteration. -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Input stack: 1: target length 2: initial angle -% variables used : rx, ry, d (=add/sub) -% - /targetLength ED /angle0 ED - /x0 rx angle0 cos mul def - /y0 ry angle0 sin mul def -% we are looking for an angle t such that (x0,y0) is at distance targetLength -% from the point M(t)=(rx*cos(t),ry*sin(t))) -%initialisation of angle (using 1st order approx = TvZ's code) - targetLength 57.2958 mul - angle0 sin rx mul dup mul - angle0 cos ry mul dup mul - add sqrt div -% if initialisation angle is two large (more than 90 degrees) set it to 90 degrees -% (if the ellipse is very curved at the point where we draw the arrow, % -% the value can be much more than 360 degrees !) -% this should avoid going on the wrong side (more than 180 degrees) or go near -% a bad attractive point (at 180 degrees) - dup 90 ge { pop 90 } if - angle0 exch d % add or sub -% maximum number of times to iterate the iterative procedure: -% iterative procedure: takes an angle t on top of stack, computes a -% better angle (and put it on top of stack) - 30 { dup -% compute distance D between (x0,y0) and M(t) - dup cos rx mul x0 sub dup mul exch sin ry mul y0 sub dup mul add sqrt -% if D almost equals targetLength, we stop - dup targetLength sub abs 1e-5 le { pop exit } if -% stack now contains D t -% compute the point M(t') at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)]: -% M(t')= ( (x(t)-x0)*targetLength/d+x0 , (y(t)-y0)*targetLength/d+y0 ) - exch dup cos rx mul x0 sub exch sin ry mul y0 sub -% stack contains: y(t)-y0, x(t)-x0, d - 2 index Div targetLength mul y0 add ry Div exch - 2 index Div targetLength mul x0 add rx Div -% stack contains x(t')/rx , y(t')/ry , d -% now compute t', and remove D from stack - atan exch pop - } repeat -% we don't look at what happened... in particular, if targetLength is greater -% than the diameter of the ellipse... -% the final angle will be around /angle0 + 180. maybe we should treat this pathological case... -% after iteration, stack contains an angle t such that M(t) is the tail of the arrow -% to give back the result as a an angle relative to angle0 we could add the following line: -% angle0 sub 0 exch d -% -% begin bug fix 2006-01-11 -% we want to adjust the new angle t' by a multiple of 360 so that | t'-angle0 | <= 180 -%(we don't want to make the ellipse turn more or less than it should)... -dup angle0 sub dup abs 180 gt { 180 add 360 div floor 360 mul sub } { pop } ifelse -% end bug fix -} def -% -/EllipticArcArrow { - /d ED % is add or sub - /b ED % arrow procedure - /a1 ED % angle - gsave - newpath - 0 -1000 moveto - clip % Set clippath far from arrow. - newpath - 0 1 0 0 b % Draw arrow to determine length. - grestore -% Length of arrow is on top of stack. Next 3 numbers are junk. -% - a1 exch ArcAdjust % Angular position of base of arrow. - /a2 ED - pop pop pop - a2 cos rx mul xOrig add % hv 2007-08-29 x->xOrig - a2 sin ry mul yOrig add % hv 2007-08-29 y->yOrig - a1 cos rx mul xOrig add % - a1 sin ry mul yOrig add % -% Now arrow tip coor and base coor are on stack. - b pop pop pop pop % Draw arrow, and discard coordinates. - a2 CLW 8 div -% change value of d (test it by looking if `` 1 1 d '' gives 2 or not ) - 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse - ArcAdjust -% resets original value of d - 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse % Adjust angle to give overlap. -} def -%%------------------ tvz/DG/hv (2004-05-10) end -------------------%% -% -/Rot { CP CP translate 3 -1 roll neg rotate NET } def -% -/RotBegin { - tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 } def } if - /TMatrix [ TMatrix CM ] cvx def - /a ED - a Rot /RAngle [ RAngle dup a add ] cvx def -} def -% -/RotEnd { - /TMatrix [ TMatrix setmatrix ] cvx def - /RAngle [ RAngle pop ] cvx def -} def -% -/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def -/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def -/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def -% -/Uput { - /a ED - add 2 div /h ED 2 - div /w ED - /s a sin def - /c a cos def - /b s abs c abs 2 copy gt dup - /q ED - { pop } { exch pop } ifelse def - /w1 c b div w mul def - /h1 s b div h mul def - q { w1 abs w sub dup c mul abs }{ h1 abs h sub dup s mul abs } ifelse -} def -% -/UUput { - /z ED - abs /y ED - /x ED - q { x s div c mul abs y gt }{ x c div s mul abs y gt } ifelse - { x x mul y y mul sub z z mul add sqrt z add } - { q { x s div } { x c div } ifelse abs - } ifelse - a PtoC - h1 add exch - w1 add exch -} def -% -/BeginOL { - dup (all) eq exch TheOL eq or - { IfVisible not { Visible /IfVisible true def } if } - { IfVisible { Invisible /IfVisible false def } if } ifelse -} def -% -/InitOL { - /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def - /Visible { CP OLUnit idtransform T moveto } def - /Invisible { CP OLUnit neg exch neg exch idtransform T moveto } def - /BOL { BeginOL } def - /IfVisible true def -} def -% -%%%%%%%%%%%%%%%%% tools %%%%%%%%%%%%%%%%%%%%%%%%% -%%%%% ### bubblesort ### -%% syntax : array bubblesort --> array2 trie par ordre croissant -%% code de Bill Casselman -%% http://www.math.ubc.ca/people/faculty/cass/graphics/text/www/ -/bubblesort { -4 dict begin - /a exch def - /n a length 1 sub def - n 0 gt { - % at this point only the n+1 items in the bottom of a remain to - % the sorted largest item in that blocks is to be moved up into - % position n - n { - 0 1 n 1 sub { - /i exch def - a i get a i 1 add get gt { - % if a[i] > a[i+1] swap a[i] and a[i+1] - a i 1 add - a i get - a i a i 1 add get - % set new a[i] = old a[i+1] - put - % set new a[i+1] = old a[i] - put - } if - } for - /n n 1 sub def - } repeat - } if - a -end -} def -% -% -/concatstringarray{ % [(a) (b) ... (z)] --> (ab...z) 20100422 - 0 1 index { length add } forall - string - 0 3 2 roll - { 3 copy putinterval length add }forall - pop -} bind def -% -/dot2comma {% on stack a string (...) - 2 dict begin - /Output exch def - 0 1 Output length 1 sub { - /Index exch def - Output Index get 46 eq { Output Index 44 put } if - } for - Output - end -} def -% -end -%-----------------------------------------------------------------------------% -% -% END pstricks.pro - -%%EndProcSet -%%BeginProcSet: pst-algparser.pro 0 0 -% $Id: pst-algparser.pro 594 2011-10-31 18:13:18Z herbert $ -%% -%% PostScript prologue for PSTricks algorithm parser -%% Version 0.04, 2011/10/21 -%% -%% This program can be redistributed and/or modified under the terms -%% of the LaTeX Project Public License Distributed from CTAN archives -%% in directory macros/latex/base/lppl.txt. -%% -%%-----------------------------------------------------------------------------% -% -/AlgParser { tx@AlgToPs begin AlgToPs end } def % Dominique Rodriguez -% -/tx@CoreAnalyzerDict 100 dict def tx@CoreAnalyzerDict begin -% -% PS ANALYZER FOR ALGEBRAIC EXPRESSION V1.13 -% -% 09/2011 DR factorial with ! added -% -% E->T|E+T -% T->FS|T*FS -% FS -> F | +FS | -FS -% F->P|F^SF|P! -% P->(E)|literal -% literal->number|var|var[E]|func(params) -% params->E|E,param -% number->TOBEFINISHED -% -%% E expression, T term, SF signed factor, F factor, P power -% -%% parser -% -%% str -% -%% C->E<condition_operators>E -%% STR index -> STR index+lenExpr -/AnalyzeCond { AnalyzeExpr ReadCondOp AnalyzeExpr EvalCondOp } def -% -%% analyze Expression List (separator , or | ) -%% STR index -> STR index+lenExpr -%% /AnalyzeListOfE { -%% { NextNonBlankChar pop AnalyzeExpr%%dup Strlen eq { exit } if NextNonBlankChar -%% NextNonBlankChar dup 0 eq { pop exit } if -%% dup 44 ne 1 index 124 ne and { dup 41 ne { PROBLEMCONTACTBILLOU } { pop exit } ifelse } if -%% pop NextNonBlankChar dup 0 eq { exit } if 124 ne { PROBLEMCONTACTBILLOU } if 1 add NextNonBlankChar 0 eq {toto} if } loop -%% AnalyzeListOfEPostHook -%% } def -/AnalyzeListOfE { - /NotFirst false def - { NextNonBlankChar pop AnalyzeExpr - NotFirst { EvalListOfExpr } { /NotFirst true def } ifelse - dup Strlen eq { exit } if NextNonBlankChar - dup 44 ne 1 index 124 ne and - { dup 41 ne { PROBLEMCONTACTBILLOU } { pop exit } ifelse } - if pop 1 add } loop - AnalyzeListOfEPostHook -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% E->T|E+T -%% STR index -> STR index+lenExpr -/AnalyzeExpr { - AnalyzePreHook AnalyzeTerm IsEndingExpr - { dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse } - { { RollOp 1 add NextNonBlankChar pop AnalyzeTerm PreEvalHook EvalAddSub IsEndingExpr { pop exit } if } loop } - ifelse - AnalyzePostHook -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% T->FS|T*FS -%% STR index -/AnalyzeTerm { - AnalyzePreHook AnalyzeSignedFactor IsEndingTerm - { dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse } - { { RollOp 1 add NextNonBlankChar pop AnalyzeSignedFactor PreEvalHook EvalMulDiv IsEndingTerm { pop exit } if} loop } - ifelse - AnalyzePostHook -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% FS -> F | +FS | -FS -%% STR index -/AnalyzeSignedFactor { - AnalyzePreHook 2 copy get dup IsUnaryOp - { RollOp 1 add NextNonBlankChar pop AnalyzeSignedFactor EvalUnaryOp } - { pop AnalyzeFactor } - ifelse AnalyzePostHook -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% F->P|F^P|P! -%% STR index -/AnalyzeFactor { - AnalyzePreHook AnalyzePower IsEndingFactor - { dup 0 ne { 32 eq { NextNonBlankChar } if } { pop } ifelse } - { { dup 33 eq%% is there a ! DR 09/2011 - { pop 1 add NextNonBlankChar pop EvalFactorial } - { RollOp 1 add NextNonBlankChar pop AnalyzePower PreEvalHook EvalPower } - ifelse - IsEndingFactor { pop exit } if } loop } - ifelse AnalyzePostHook -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% P->(E)|literal -%% STR index -/AnalyzePower { - %% depending of first char either a number, or a literal - 2 copy get dup 40 eq%%an open par - { pop 1 add NextNonBlankChar pop AnalyzeExpr 1 add NextNonBlankChar pop } - { AnalyzeLiteral } - ifelse -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% STR index STR[index] -> STR index -%/AnalyzeLiteral { IsNumber { EvalNumber } { EvalLiteral } ifelse } def -/AnalyzeLiteral { dup IsUnaryOp exch IsNumber or { EvalNumber } { EvalLiteral } ifelse } def%%dr 09102006 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% recognize + or - -%% chr -> T/F -/IsUnaryOp { dup 43 eq exch 45 eq or } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% a number can contain only : 0123456789. -%% chr -> T/F -/IsNumber { dup 48 ge exch dup 57 le 3 -1 roll and exch 46 eq or } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% STR index -> STR index number -%% a number can be of the form [0-9]*.[0-9]*\([eE][+-]?[0-9]+\)? -%% STR index -> STR index' number -/ReadNumber { - exch dup 3 -1 roll dup 3 1 roll - %%read mantissa - { 1 add 2 copy dup Strlen eq { pop pop 0 exit } if get dup IsNumber not { exit } if pop } loop - dup 101 eq exch 69 eq or - %%% there is a "e" or "E" -> read exponant - { 1 add 2 copy get dup IsUnaryOp - { pop 1 add 2 copy get } if - { IsNumber not { exit } if 1 add 2 copy get } loop } - if - dup 4 1 roll - 3 -1 roll exch 1 index sub getinterval -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% a number can contain only : 0123456789. -%% chr -> T/F -/IsCondOp { dup 30 eq exch dup 60 ge exch 62 le and or } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% STR index -> STR index number -%% a number can be of the form [0-9]*.[0-9]*\([eE][+-]?[0-9]+\)? -%% STR index -> STR index' number -/ReadCondOp { - NextNonBlankChar 1 index 4 1 roll - { IsCondOp not { exit } if 1 add 2 copy get } loop - 2 copy 5 -1 roll - exch 1 index sub getinterval 3 1 roll -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% a literal can contain only : 0123456789. -%% chr -> T/F -/IsLiteral {% - dup 48 ge exch dup 57 le 3 -1 roll and exch - dup 65 ge exch dup 90 le 3 -1 roll and 3 -1 roll or exch - dup 97 ge exch 122 le and or } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% a literal can be of the form [a-zA-Z][a-zA-Z0-9]*\(\((Expression)\)|\(\[Expression\]\)\)? -%% STR index -> literal STR index' nextchr -/ReadLiteral { - exch dup 3 -1 roll dup 3 1 roll - %%read literal core - { 2 copy dup Strlen eq { pop pop 0 exit } if get dup IsLiteral not { exit } if pop 1 add } loop - 4 1 roll dup 5 1 roll 3 -1 roll exch 1 index sub getinterval 4 1 roll -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% expr is ended by end of str or a clpar -%% STR index -> STR index STR[index] T/F -/IsEndingExpr {% - 2 copy dup Strlen eq - %% if end of str is reached -> end ! - { pop pop 0 true } - %% ending chr -> clpar, comma, |, <, >, =, !, - {get dup dup 41 eq - exch dup 124 eq - exch dup 93 eq - exch dup 44 eq - exch dup 30 eq - exch dup 60 ge exch 62 le and or or or or or} - ifelse } def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% expr is ended by end of str or a +- -%% STR index -> STR index STR[index] T/F -/IsEndingTerm { IsEndingExpr { true } { dup dup 43 eq exch 45 eq or } ifelse } def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% expr is ended by end of str or */ -%% STR index -> STR index STR[index] T/F -/IsEndingFactor { IsEndingTerm { true } { dup dup 42 eq exch 47 eq or } ifelse } def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% expr is ended by end of str or ^ -%% STR index -> STR index STR[index] T/F -/IsEndingPower { IsEndingFactor { true } { dup 94 eq } ifelse } def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% STR index -> STR index STR[index] -/NextNonBlankChar { { dup Strlen eq { 0 exit } if 2 copy get dup neBlkChar { exit } if pop 1 add } loop } bind def -/neBlkChar { dup 32 ne exch dup 10 ne exch 9 ne and and } bind def -%%%%%%%%%%%%%%%%%%%%%%%% -%% DEBUG -/BRK {false} def -/BRKtrue {/BRK true def} def -/BRKStop {BRK {BRKtoto} if } def -/BRKEvalStop {BRK exch if } def -/BRKBRK2true {BRK {BRK2true} if } def -/BRK2 {false} def -/BRK2true {/BRK2 true def} def -/BRK2Stop {BRK2 {BRK2toto} if } def/BRK {false} def -end -% -%-------------------------------------------------------------------------------% -% -/tx@AlgToPs 12 dict def tx@AlgToPs begin -% -%% algExpr -> PSVector -/AlgToPs { tx@CoreAnalyzerDict begin InitParser AnalyzeListOfE pop pop EndingSequence end } def -/EndingSequence { ExpressionVector aload length /end cvx exch 1 add array astore } def -/InitParser { /ExpressionVector [ /tx@AddMathFunc cvx /begin cvx ] def dup length /Strlen exch def 0 } def -/Strlen 0 def -/EvalListOfExpr {} def% -/EvalNumber {% - ReadNumber cvr /ExpressionVector ExpressionVector aload length dup 3 add -1 roll cvx - exch 1 add array astore def NextNonBlankChar pop } def -/EvalAddSub {% - /ExpressionVector ExpressionVector aload length dup 5 add -1 roll - 43 eq { /add } { /sub } ifelse cvx exch 1 add array astore def -} def -/EvalMulDiv {% - /ExpressionVector ExpressionVector aload length dup 5 add -1 roll - 42 eq { /mul } { /div } ifelse cvx exch 1 add array astore def -} def -/EvalPower {% - /ExpressionVector ExpressionVector aload length dup 5 add -1 roll - pop /exp cvx exch 1 add array astore def -} def -/EvalFactorial {% DR 09/2011 - /ExpressionVector ExpressionVector aload length - /fact cvx exch 1 add array astore def -} def -/EvalLiteral {% - ReadLiteral - dup 40 eq%%% there is an open par -> function call - { pop 2 index - dup (Sum) eq { EvalSum } - { dup (IfTE) eq { EvalCond } - { dup (Derive) eq { pop EvalDerive } - { pop 1 add NextNonBlankChar pop AnalyzeListOfE 2 index TrigoFunc - /ExpressionVector ExpressionVector aload length dup 5 add -1 roll cvn cvx - exch 1 add array astore def 1 add NextNonBlankChar pop } ifelse } ifelse} ifelse } - { /ExpressionVector ExpressionVector aload length dup 6 add -1 roll cvn cvx exch 1 add array astore def - dup 91 eq%%% there is an open bracket -> vector element - { pop 1 add NextNonBlankChar pop AnalyzeExpr - /ExpressionVector ExpressionVector aload length /cvi cvx exch /get cvx exch 2 add array astore def 1 add } - { pop NextNonBlankChar pop } - ifelse} - ifelse -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% the derive function : Derive(n,f(x)) -%% firstparindex lastparindex -> -/EvalDerive { - %% manage the function descripiton - 1 add ReadNumber 3 1 roll NextNonBlankChar - 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if - 1 add NextNonBlankChar pop - 3 -1 roll cvi - dup 0 eq - { pop AnalyzeExpr 3 -1 roll pop 1 add } - { 1 sub 3 1 roll (x) exch tx@Derive begin DeriveIndexed end 4 -1 roll - { (x) tx@Derive begin Derive end } repeat - ExpressionVector exch /ExpressionVector [] def - AlgToPs aload length - /ExpressionVector 1 index 3 add -1 roll aload length dup 3 add -1 roll /l2 exch def /l1 exch def - l1 l2 add 1 add l2 neg roll l1 l2 add array astore def 3 -1 roll pop 1 add - 1 index length /Strlen exch def } ifelse -} def -/EvalSum {% - pop 1 add NextNonBlankChar pop - %% read the variable name - ReadLiteral pop NextNonBlankChar - 44 ne { ANALYZER_ERROR_missing_first_comma_in_Sum } if - %% read the initial value - 1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll - 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if - %% read the increment value - 1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll - 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if - %% read the limit value - 1 add NextNonBlankChar pop ReadNumber cvi 3 1 roll - 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if - /ExpressionVector ExpressionVector aload length dup 7 add -3 roll 0 4 1 roll - 5 -1 roll 4 add array astore def - %% keep ExpressionVector for later and create a new one for internal Sum computation - ExpressionVector 3 1 roll /ExpressionVector [ 6 -1 roll cvn /exch cvx /def cvx ] def - 1 add NextNonBlankChar pop AnalyzeExpr - %% add each term - /ExpressionVector ExpressionVector aload length 1 add /add cvx exch array astore def - /ExpressionVector 4 -1 roll aload length ExpressionVector cvx /for cvx 3 -1 roll 2 add - array astore def 3 -1 roll pop 1 add -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Convert to radians if trigo function call -%% (name) -> -/TrigoFunc { - dup (cos) eq 1 index (sin) eq or exch (tan) eq or - { /ExpressionVector ExpressionVector aload length Pi /div cvx 180 /mul cvx 5 -1 roll 4 add - array astore def - } if -} def -/EvalCond {% - pop 1 add AnalyzeCond NextNonBlankChar - 44 ne { ANALYZER_ERROR_missing_first_comma_in_IfTE } if - ExpressionVector 3 1 roll /ExpressionVector [] def - 1 add AnalyzeExpr ExpressionVector 3 1 roll /ExpressionVector [] def - NextNonBlankChar 44 ne { ANALYZER_ERROR_missing_second_comma_in_IfTE } if - 1 add AnalyzeExpr - NextNonBlankChar 41 ne { ANALYZER_ERROR_missing_ending parenthesis_in_IfTE } if - ExpressionVector - /ExpressionVector 6 -1 roll aload length dup - 6 add -1 roll cvx exch dup 4 add -1 roll cvx /ifelse cvx 3 -1 roll 3 add array astore def - 1 add 3 -1 roll pop -} def -%% CondOp STR index -/EvalCondOp {% - 3 -1 roll - dup (=) eq { /eq } {% - dup (<) eq { /lt } {% - dup (>) eq { /gt } {% - dup (>=) eq { /ge } {% - dup (<=) eq { /ge } {% - dup (!=) eq { /ne } { ERROR_non_valid_conditional_operator } - ifelse } ifelse } ifelse } ifelse } ifelse } ifelse - cvx exch pop - /ExpressionVector ExpressionVector aload length dup 3 add -1 roll exch 1 add array astore def } def -/EvalUnaryOp { - 3 -1 roll 45 eq { /ExpressionVector ExpressionVector aload length /neg cvx exch 1 add array astore def } if -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% H O O K S -/AnalyzePreHook {} bind def -/PreEvalHook {} bind def -/AnalyzeListOfEPostHook {} bind def -/AnalyzePostHook {} def -/RollOp { 3 1 roll } bind def -end %tx@CoreAnalyzerDict -% -%--------------------------------------------------------------------% -% -/tx@Derive 41 dict def tx@Derive begin -%%increase ^^ for each function added -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% algExpr variable -> PSVector -/Derive {% - 10240 string 3 1 roll 0 3 1 roll - /Variable exch def - tx@CoreAnalyzerDict begin InitParser AnalyzeListOfE end -} def -/Strlen 0 def -/InitParser { dup length /Strlen exch def 0 } def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% algExpr variable index -> PSVector -/DeriveIndexed {% - 3 1 roll 10240 string 3 1 roll 0 3 1 roll - /Variable exch def - tx@CoreAnalyzerDict begin InitParser pop 4 -1 roll AnalyzeExpr 4 -2 roll pop pop 4 -2 roll exch pop end -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% (u,v)'=-(u',v') -/EvalListOfExpr {% - 4 2 roll 2 copy 9 -1 roll dup length 4 1 roll putinterval add AddPipe - 2 copy 7 -1 roll dup length 4 1 roll putinterval add - 6 -2 roll pop pop - 2 copy pop 0 6 2 roll GetIntervalNewStr 5 1 roll 2 copy 0 exch getinterval 6 1 roll } def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% (-u)'=-(u') -/EvalUnaryOp { - 4 -2 roll 4 index (0) eq - { (0) StrConcat 7 -1 roll pop } - { 7 -1 roll 45 eq - { AddSub AddOpPar true } { false } ifelse - 3 1 roll 5 index StrConcat 3 -1 roll { AddClPar } if } ifelse - 2 copy pop 0 6 2 roll GetIntervalNewStr - 7 -2 roll pop pop 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% (number)'=0 -/EvalNumber { ReadNumber (0) 6 2 roll } def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% (u+v)'=u'+v' -/EvalAddSub {% - 7 index dup (0) eq - { pop true }%% du=0 nothing added - { dup length exch 5 index 5 index 3 -1 roll putinterval 4 -1 roll add 3 1 roll false } - ifelse - 5 index dup (0) eq - { pop { (0) } { 4 -2 roll 2 copy pop 0 6 2 roll GetIntervalNewStr } ifelse }%%dv=0 - { exch - { 5 -2 roll 7 index 45 eq { AddSub } if false } %%nothing yet added - { 5 -2 roll 7 index 43 eq%%something yet added - { AddAdd false } { AddSub AddOpPar true } ifelse } - ifelse 11 1 roll - 3 -1 roll StrConcat 10 -1 roll { AddClPar } if - 2 copy pop 0 6 2 roll GetIntervalNewStr } - ifelse - mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% (u*v)' or (u/v)' -/EvalMulDiv { 6 index 42 eq {EvalMul} {EvalDiv} ifelse } def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% (u*v)'=u'*v+u*v' -/EvalMul {% - 4 -2 roll 7 index dup (0) eq - { pop false }%%du=0 - { (1) eq%%du=1 - { false } - { AddOpPar 7 index StrConcat AddClPar AddMul AddOpPar true } ifelse - 3 1 roll 6 index StrConcat 3 -1 roll { AddClPar } if - true }%%du!=0 - ifelse - 5 1 roll 5 index (0) eq - { 5 -1 roll not { (0) StrConcat } if }%%dv=0 - { 5 -1 roll { AddAdd } if - 4 index (1) eq - { 8 index StrConcat } - { AddOpPar 8 index StrConcat AddClPar AddMul AddOpPar 4 index StrConcat AddClPar } - ifelse - }%%dv!=0 - ifelse - 2 copy pop 0 6 2 roll GetIntervalNewStr - mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% (u/v)'=(u'*v-u*v')/v^2 -/EvalDiv {% - 4 -2 roll - 4 index (0) eq%%dv=0 -> u'/v - { 7 index (0) eq { (0) StrConcat } { AddOpPar 7 index StrConcat AddClPar AddDiv 5 index StrConcat } ifelse } - { 7 index dup (0) eq - { pop }%%du=0 - { (1) eq%%du=1 - { false } - { AddOpPar 7 index StrConcat AddClPar AddMul AddOpPar true } ifelse - 3 1 roll 6 index StrConcat 3 -1 roll { AddClPar } if}%%du!=0 - ifelse - AddSub - 4 index (1) eq - { 8 index StrConcat } - { AddOpPar 8 index StrConcat AddClPar AddMul AddOpPar 4 index StrConcat AddClPar } - ifelse - %}%%dv!=0 - 2 copy GetIntervalNewStr 3 1 roll pop 0 AddOpPar 3 -1 roll StrConcat AddClPar - AddDiv AddOpPar 5 index StrConcat AddClPar 2 copy (^2) putinterval 2 add } - ifelse - 2 copy pop 0 6 2 roll GetIntervalNewStr - mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% str1 index str2 -> str1 index -/StrConcat { dup length 4 2 roll 2 copy 6 -1 roll putinterval 3 -1 roll add } bind def -/GetIntervalNewStr { 0 exch getinterval dup length string copy } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% (u^v)'=(u^v)'=u'vu^(v-1)+v'u^(v)ln(u) -/EvalPower {% - 4 -2 roll 7 index (0) eq - {%%if du=0 then (u^v)'=v'ln(u)u^v - 4 index (0) eq - { (0) StrConcat }%%if dv=0 then (u^v)'=0 - { 4 index (1) ne { AddOpPar 4 index StrConcat (\)*) StrConcat } if - 8 index (e) ne { (ln\() StrConcat 8 index StrConcat (\)*) StrConcat } if - AddOpPar 8 index StrConcat (\)^\() StrConcat 5 index StrConcat AddClPar } ifelse - } - {%%du!=0 - 4 index (0) eq - {%%if dv=0 then (u^v)'=vu'u^(v-1) - 5 index dup IsStrNumber - { dup (0) eq - { StrConcat } - { dup dup (1) eq exch (1.0) eq or - { StrConcat } - { StrConcat - 7 index dup (1) ne exch (1.0) ne and%%%dr 09102006 insert du if <> 1 - { (*\() StrConcat 7 index StrConcat (\)) StrConcat } if%%%dr 09102006 - (*\() StrConcat 8 index StrConcat (\)) StrConcat - 5 index dup dup (2) eq exch (2.0) eq or - { pop } { cvr 1 sub 20 string cvs 3 1 roll (^) StrConcat 3 -1 roll StrConcat } ifelse } ifelse } ifelse } - { pop AddOpPar 5 index StrConcat (\)*\() StrConcat 8 index StrConcat (\)^\() StrConcat - 5 index StrConcat (-1\)) StrConcat } ifelse - } - {%%if dv!=0 and du!=0 then (u^v)'=u'vu^(v-1)+v'u^(v)ln(u) - 7 index (1) ne { AddOpPar 7 index StrConcat (\)*) StrConcat } if - AddOpPar 5 index StrConcat (\)*\() StrConcat - 8 index StrConcat (\)^\() StrConcat - 5 index StrConcat (-1\)+\() StrConcat - 4 index (1) ne { 4 index StrConcat (\)*\() StrConcat } if - 8 index StrConcat (\)^\() StrConcat - 5 index StrConcat (\)*ln\() StrConcat - 8 index StrConcat AddClPar - } ifelse - } ifelse - 2 copy pop 0 6 2 roll GetIntervalNewStr - mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% No derivative for factorial ! only cst => null derivative -/EvalFactorial {% DR 09/2011 - 4 index (0) eq - { (0) mark 8 -2 roll cleartomark 2 index 7 index dup 4 index exch sub getinterval exch 6 2 roll } - { DERIVATIVE_ENGINE_ERROR_no_variable_in_factorial } ifelse -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% str -> true/false -/IsStrNumber {% - true exch - { dup 48 lt exch dup 57 gt 3 -1 roll or - exch dup 46 ne%%. - exch dup 43 ne%%+ - exch 45 ne%%- - and and and { pop false } if } forall -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% literal switch -> func call, vector, variables -/EvalLiteral {% - ReadLiteral dup 40 eq%%% there is an open par -> function call - { pop (EvalFunc_ ) 9 4 index StrConcat 0 exch getinterval cvn cvx exec } - { dup 91 eq%%% there is an open bracket -> vector element - { DERIVATIVE_ENGINE_ERROR_vector_not_yet_implemented } - { pop EvalVariable } - ifelse } - ifelse -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% first last parpos Expr[first:parpos-1] -> -/EvalVariable { 2 index Variable eq { (1) } { (0) } ifelse 4 -1 roll exch 6 2 roll } def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% (f(u))'=u'f'(u) -/EvalFunc { - 4 2 roll 4 index (1) ne - { AddOpPar 4 index StrConcat (\)*) StrConcat } if - (Eval ) 4 8 index StrConcat 0 exch getinterval cvn cvx exec - 2 copy pop 0 6 2 roll GetIntervalNewStr - mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Func derivative -> Eval<func> -/EvalFunc_sin {% - PreCommonFunc - { (cos\() StrConcat 5 index StrConcat AddClPar } if - PostCommonFunc } def -/EvalFunc_cos {% - PreCommonFunc - { (\(-sin\() StrConcat 5 index StrConcat (\)\)) StrConcat } if - PostCommonFunc } def -/EvalFunc_tan {% - PreCommonFunc - { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/cos\() StrConcat 5 index StrConcat (\)^2) StrConcat } if - PostCommonFunc } def -/EvalFunc_asin {% - PreCommonFunc - { (1/sqrt\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if - PostCommonFunc } def -/EvalFunc_acos {% - PreCommonFunc - { (-1/sqrt\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if - PostCommonFunc } def -/EvalFunc_atg {% - PreCommonFunc - { (1/\(1+\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if - PostCommonFunc } def -/EvalFunc_ln {% - PreCommonFunc - { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/\() StrConcat 5 index StrConcat AddClPar } if - PostCommonFunc } def -/EvalFunc_exp {% - PreCommonFunc - { (exp\() StrConcat 5 index StrConcat AddClPar } if - PostCommonFunc } def -/EvalFunc_EXP {% - PreCommonFunc - { (EXP\() StrConcat 5 index StrConcat AddClPar } if - PostCommonFunc } def -/EvalFunc_sqrt {% - PreCommonFunc - { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/\(2*sqrt\() StrConcat 5 index StrConcat (\)\)) StrConcat } if - PostCommonFunc } def -/EvalFunc_Fact {% - PreCommonFunc { DERIVATIVE_ENGINE_ERROR_no_variable_expression_in_Fact } if - PostCommonFunc } def -/EvalFunc_sh {% - PreCommonFunc - { (ch\() StrConcat 5 index StrConcat AddClPar } if - PostCommonFunc } def -/EvalFunc_ch {% - PreCommonFunc - { (sh\() StrConcat 5 index StrConcat AddClPar } if - PostCommonFunc } def -/EvalFunc_th {% - PreCommonFunc - { dup 0 eq { (1) StrConcat } { 1 sub } ifelse (/ch\() StrConcat 5 index StrConcat (\)^2) StrConcat } if - PostCommonFunc } def -/EvalFunc_Argsh {% - PreCommonFunc - { (1/sqrt\(1+\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if - PostCommonFunc } def -/EvalFunc_Argch {% - PreCommonFunc - { (1/sqrt\(\() StrConcat 5 index StrConcat (\)^2-1\)\)) StrConcat } if - PostCommonFunc } def -/EvalFunc_Argth {% - PreCommonFunc - { (1/\(1-\() StrConcat 5 index StrConcat (\)^2\)\)) StrConcat } if - PostCommonFunc } def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -/PreCommonFunc { - 1 add NextNonBlankChar pop 3 -1 roll 5 1 roll AnalyzeExpr 1 add NextNonBlankChar pop - 4 2 roll 4 index (0) eq - { (0) StrConcat false } - { 4 index (1) ne { AddOpPar 4 index StrConcat (\)*) StrConcat } if true } ifelse -} def -/PostCommonFunc { - 2 copy pop 0 6 2 roll GetIntervalNewStr - mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll -} def -/EvalFunc_Derive {% - 1 add ReadNumber cvi 1 add dup cvr log 1 add cvi string cvs - 4 -1 roll pop 5 1 roll 1 add NextNonBlankChar pop AnalyzeExpr 1 add - 4 -2 roll (Derive\() StrConcat 7 -1 roll StrConcat (,) StrConcat 6 -1 roll StrConcat AddClPar - 2 copy pop 0 6 2 roll GetIntervalNewStr 6 -1 roll pop 2 index 6 index dup 4 index exch sub getinterval - exch 6 2 roll } def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% literal switch -> func call, vector, variables -/EvalFunc_Sum {% - 1 add NextNonBlankChar pop - %% read the variable name - ReadLiteral pop 3 -1 roll pop NextNonBlankChar - 44 ne { ANALYZER_ERROR_missing_first_comma_in_Sum } if - %% read the initial value - 1 add NextNonBlankChar pop ReadNumber pop - 2 copy get 44 ne { ANALYZER_ERROR_missing_second_comma_in_Sum } if - %% read the increment value - 1 add NextNonBlankChar pop ReadNumber pop - 2 copy get 44 ne { ANALYZER_ERROR_missing_third_comma_in_Sum } if - %% read the limit value - 1 add NextNonBlankChar pop ReadNumber pop - 2 copy get 44 ne { ANALYZER_ERROR_missing_fourth_comma_in_Sum } if - 1 add NextNonBlankChar pop dup 6 1 roll 3 -1 roll pop AnalyzeExpr 1 add NextNonBlankChar pop - 4 -2 roll 3 index 8 index dup 9 index exch sub getinterval StrConcat - 4 index StrConcat AddClPar - 2 copy pop 0 6 2 roll GetIntervalNewStr - mark 9 -3 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% literal switch -> func call, vector, variables -/EvalFunc_IfTE {% - 3 -1 roll pop 1 add NextNonBlankChar pop SkipCond - NextNonBlankChar - 44 ne { ANALYZER_ERROR_missing_first_comma_in_IfTE } if - 1 add NextNonBlankChar pop dup 5 1 roll - AnalyzeExpr NextNonBlankChar - 44 ne { ANALYZER_ERROR_missing_second_comma_in_IfTE } if - 1 add NextNonBlankChar pop - AnalyzeExpr 1 add NextNonBlankChar pop - 4 -2 roll 3 index 10 index dup 11 index exch sub getinterval StrConcat - 6 index StrConcat (,) StrConcat 4 index StrConcat AddClPar - 2 copy pop 0 6 2 roll GetIntervalNewStr - mark 11 -5 roll cleartomark 2 index 6 index dup 4 index exch sub getinterval exch 6 2 roll -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% advance in str until a comma is found (no error detection!) -%% str index -> str index' -/SkipCond { { 1 add 2 copy get 44 eq {exit } if } loop } bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Convert to radians if trigo function call -%% (name) -> -/TrigoFunc { - dup (cos) eq 1 index (sin) eq or exch (tan) eq or - { /ExpressionVector ExpressionVector aload length Pi /div cvx 180 /mul cvx 5 -1 roll 4 add - array astore def - } if -} def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% No derivative for condition.... -/EvalCondOp { 3 -1 roll pop } bind def -/PutIntervalOneAdd {putinterval 1 add} bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Add open parenthesis in string at the given index -%% str index -> str index+1 -/AddOpPar {2 copy (\() PutIntervalOneAdd} bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Add close parenthesis in string at the given index -%% str index -> str index+1 -/AddClPar {2 copy (\)) PutIntervalOneAdd} bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Add 0 in string at the given index -%% str index -> str index+1 -/AddZero {2 copy (0) PutIntervalOneAdd} bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Add open parenthesis in string at the given index -%% str index -> str index+1 -/AddMul {2 copy (*) PutIntervalOneAdd} bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Add open parenthesis in string at the given index -%% str index -> str index+1 -/AddDiv {2 copy (/) PutIntervalOneAdd} bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Add a plus sign in string at the given index -%% str index -> str index+1 -/AddAdd {2 copy (+) PutIntervalOneAdd} bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Add a minus sign in string at the given index -%% str index -> str index+1 -/AddSub {2 copy (-) PutIntervalOneAdd} bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Add a pipe sign in string at the given index -%% str index -> str index+1 -/AddPipe {2 copy (|) PutIntervalOneAdd} bind def -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% H O O K S -/AnalyzePreHook { dup 5 1 roll } bind def -/PreEvalHook {} def -/AnalyzePostHook { 7 -1 roll pop } bind def -/AnalyzeListOfEPostHook { 6 -1 roll mark 6 1 roll cleartomark } bind def -/RollOp { 5 1 roll } bind def -end%%%tx@CoreAnalyzerDict -/tx@AddMathFunc 12 dict def tx@AddMathFunc begin -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% NEW FUNC -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% function arcsine in radians asin(x)=atan(x/sqrt(1-x^2)) -%% x -> theta -/asin {% - dup abs 1 gt { EQDFasinrangeerror } if - dup dup dup mul 1 exch sub sqrt atan exch 0 lt { 360 sub } if DegtoRad -} def -%% function arccosine in radians acos(x)=atan(sqrt(1-x^2)/x) -%% x -> theta -/acos {% - dup abs 1 gt { EQDFacosrangeerror } if - dup dup mul 1 exch sub sqrt exch atan DegtoRad -} def -%% function arctangent in radians -%% x -> theta -/atg { 1 atan dup 90 gt { 360 sub } if DegtoRad } bind def -%% HYPERBOLIC FUNCTIONS -/sh { dup Ex exch neg Ex sub 2 div } def -/ch { dup Ex exch neg Ex add 2 div } def -/th { dup sh exch ch div } def -/Argsh { dup dup mul 1 add sqrt add ln } def -/Argch { dup dup mul 1 sub sqrt add ln } def -/Argth { dup 1 add exch 1 exch sub div ln 2 div } def -%% modified exponential funtion for 0 -%% x n -> x^n -/Exp { dup 0 eq { pop pop 1 } { exp } ifelse } bind def -%% modified exponential funtion for 0 -%% x -> e^x -/Ex { Euler exch exp } bind def -%% -%% factorial function -%% n -> n! -/Fact { 1 exch 2 exch 1 exch { mul } for } bind def -/fact { Fact } bind def -/! { Fact } bind def -end -% -% END pst-algparser.pro - -%%EndProcSet -%%BeginProcSet: pst-tools.pro 0 0 -% $Id: pst-tools.pro 622 2012-01-01 15:36:14Z herbert $ -% -%% PostScript tools prologue for pstricks.tex. -%% Version 0.02, 2012/01/01 -%% -%% This program can be redistributed and/or modified under the terms -%% of the LaTeX Project Public License Distributed from CTAN archives -%% in directory macros/latex/base/lppl.txt. -% -% -/Pi2 1.57079632679489661925640 def -/factorial { % n on stack, returns n! - dup 0 eq { 1 }{ - dup 1 gt { dup 1 sub factorial mul } if } - ifelse } def -% -/MoverN { % m n on stack, returns the binomial coefficient m over n - 2 dict begin - /n exch def /m exch def - n 0 eq { 1 }{ - m n eq { 1 }{ - m factorial n factorial m n sub factorial mul div } ifelse } ifelse - end -} def -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% subroutines for complex numbers, given as an array [a b] -% which is a+bi = Real+i Imag -% -/cxadd { % [a1 b1] [a2 b2] = [a1+a2 b1+b2] - dup 0 get % [a1 b1] [a2 b2] a2 - 3 -1 roll % [a2 b2] a2 [a1 b1] - dup 0 get % [a2 b2] a2 [a1 b1] a1 - 3 -1 roll % [a2 b2] [a1 b1] a1 a2 - add % [a2 b2] [a1 b1] a1+a2 - 3 1 roll % a1+a2 [a2 b2] [a1 b1] - 1 get % a1+a2 [a2 b2] b1 - exch 1 get % a1+a2 b1 b2 - add 2 array astore -} def -% -/cxneg { % [a b] - dup 1 get % [a b] b - exch 0 get % b a - neg exch neg % -a -b - 2 array astore -} def -% -/cxsub { cxneg cxadd } def % same as negative addition -% -% [a1 b1][a2 b2] = [a1a2-b1b2 a1b2+b1a2] = [a3 b3] -/cxmul { % [a1 b1] [a2 b2] - dup 0 get % [a1 b1] [a2 b2] a2 - exch 1 get % [a1 b1] a2 b2 - 3 -1 roll % a2 b2 [a1 b1] - dup 0 get % a2 b2 [a1 b1] a1 - exch 1 get % a2 b2 a1 b1 - dup % a2 b2 a1 b1 b1 - 5 -1 roll dup % b2 a1 b1 b1 a2 a2 - 3 1 roll mul % b2 a1 b1 a2 b1a2 - 5 -2 roll dup % b1 a2 b1a2 b2 a1 a1 - 3 -1 roll dup % b1 a2 b1a2 a1 a1 b2 b2 - 3 1 roll mul % b1 a2 b1a2 a1 b2 a1b2 - 4 -1 roll add % b1 a2 a1 b2 b3 - 4 2 roll mul % b1 b2 b3 a1a2 - 4 2 roll mul sub % b3 a3 - exch 2 array astore -} def -% -% [a b]^2 = [a^2-b^2 2ab] = [a2 b2] -/cxsqr { % [a b] square root - dup 0 get exch 1 get % a b - dup dup mul % a b b^2 - 3 -1 roll % b b^2 a - dup dup mul % b b^2 a a^2 - 3 -1 roll sub % b a a2 - 3 1 roll mul 2 mul % a2 b2 - 2 array astore -} def -% -/cxsqrt { % [a b] -% dup cxnorm sqrt /r exch def -% cxarg 2 div RadtoDeg dup cos r mul exch sin r mul cxmake2 - cxlog % log[a b] - 2 cxrdiv % log[a b]/2 - aload pop exch % b a - 2.781 exch exp % b exp(a) - exch cxconv exch % [Re +iIm] exp(a) - cxrmul % -} def -% -/cxarg { % [a b] - aload pop % a b - exch atan % arctan b/a - DegtoRad % arg(z)=atan(b/a) -} def -% -% log[a b] = [a^2-b^2 2ab] = [a2 b2] -/cxlog { % [a b] - dup % [a b][a b] - cxnorm % [a b] |z| - log % [a b] log|z| - exch % log|z|[a b] - cxarg % log|z| Theta - cxmake2 % [log|z| Theta] -} def -% -% square of magnitude of complex number -/cxnorm2 { % [a b] - dup 0 get exch 1 get % a b - dup mul % a b^2 - exch dup mul add % a^2+b^2 -} def -% -/cxnorm { % [a b] - cxnorm2 sqrt -} def -% -/cxconj { % conjugent complex - dup 0 get exch 1 get % a b - neg 2 array astore % [a -b] -} def -% -/cxre { 0 get } def % real value -/cxim { 1 get } def % imag value -% -% 1/[a b] = ([a -b]/(a^2+b^2) -/cxrecip { % [a b] - dup cxnorm2 exch % n2 [a b] - dup 0 get exch 1 get % n2 a b - 3 -1 roll % a b n2 - dup % a b n2 n2 - 4 -1 roll exch div % b n2 a/n2 - 3 1 roll div % a/n2 b/n2 - neg 2 array astore -} def -% -/cxmake1 { 0 2 array astore } def % make a complex number, real given -/cxmake2 { 2 array astore } def % dito, both given -% -/cxdiv { cxrecip cxmul } def -% -% multiplikation by a real number -/cxrmul { % [a b] r - exch aload pop % r a b - 3 -1 roll dup % a b r r - 3 1 roll mul % a r b*r - 3 1 roll mul % b*r a*r - exch 2 array astore % [a*r b*r] -} def -% -% division by a real number -/cxrdiv { % [a b] r - 1 exch div % [a b] 1/r - cxrmul -} def -% -% exp(i theta) = cos(theta)+i sin(theta) polar<->cartesian -/cxconv { % theta - RadtoDeg dup sin exch cos cxmake2 -} def - -%%%%% ### bubblesort ### -%% syntax : array bubblesort --> array2 trie par ordre croissant -%% code de Bill Casselman -%% http://www.math.ubc.ca/people/faculty/cass/graphics/text/www/ -/bubblesort { % on stack must be an array [ ... ] -4 dict begin - /a exch def - /n a length 1 sub def - n 0 gt { - % at this point only the n+1 items in the bottom of a remain to - % the sorted largest item in that blocks is to be moved up into - % position n - n { - 0 1 n 1 sub { - /i exch def - a i get a i 1 add get gt { - % if a[i] > a[i+1] swap a[i] and a[i+1] - a i 1 add - a i get - a i a i 1 add get - % set new a[i] = old a[i+1] - put - % set new a[i+1] = old a[i] - put - } if - } for - /n n 1 sub def - } repeat - } if - a % return the sorted array -end -} def -% -/concatstringarray{ % [(a) (b) ... (z)] --> (ab...z) 20100422 - 0 1 index { length add } forall - string - 0 3 2 roll - { 3 copy putinterval length add }forall - pop -} bind def -% -/dot2comma {% on stack a string (...) - 2 dict begin - /Output exch def - 0 1 Output length 1 sub { - /Index exch def - Output Index get 46 eq { Output Index 44 put } if - } for - Output - end -} def -% -%-----------------------------------------------------------------------------% -% END pst-tools.pro - -%%EndProcSet -%%BeginProcSet: pst-dots.pro 0 0 -% $Id: pst-dots.pro 130 2009-08-27 08:55:03Z herbert $ -% -%% PostScript prologue for pstricks.tex. -%% Version 2.02, 2009/06/16 -%% -%% For distribution, see pstricks.tex. -%% -%% Timothy Van Zandt <tvz@Princeton.EDU> -%% -%% This program can be redistributed and/or modified under the terms -%% of the LaTeX Project Public License Distributed from CTAN archives -%% in directory macros/latex/base/lppl.txt. -%% -%% Modified by Etienne Riga - Dec. 16, 1999 -%% Modified by Etienne Riga - 2005/01/01 (er) -%% to add /Diamond, /SolidDiamond and /BoldDiamond -%% Modified by Herbert Voss (hv) - 2008/04/17 -% -10 dict dup begin % hold local - /FontType 3 def - /FontMatrix [.001 0 0 .001 0 0] def -% /FontBBox [-571.5 -742.5 571.5 742.5] def % changed to next line 20060616 hv - /FontBBox [-1000 -1000 1000 1000] def % See end of file in /BuildGlyph - /Encoding 256 array def - 0 1 255 {Encoding exch /.notdef put} for % fill the array with /.notdef - Encoding % replace with given dot names - dup (b) 0 get /Bullet put % get the numerical position of b in ASCII -% % and save /Bullet at this place in Encoding - dup (c) 0 get /Circle put - dup (C) 0 get /BoldCircle put % 67 - dup (u) 0 get /SolidTriangle put - dup (t) 0 get /Triangle put - dup (T) 0 get /BoldTriangle put - dup (r) 0 get /SolidSquare put - dup (s) 0 get /Square put - dup (S) 0 get /BoldSquare put - dup (q) 0 get /SolidPentagon put - dup (p) 0 get /Pentagon put - dup (P) 0 get /BoldPentagon put -%%% - dup (k) 0 get /Asterisk put - dup (K) 0 get /BoldAsterisk put - dup (J) 0 get /SolidAsterisk put - dup (h) 0 get /Hexagon put - dup (H) 0 get /BoldHexagon put - dup (G) 0 get /SolidHexagon put - dup (f) 0 get /Octogon put % 2008-04-18 hv - dup (F) 0 get /BoldOctogon put % 2008-04-18 hv - dup (g) 0 get /SolidOctogon put % 2008-04-18 hv - dup (a) 0 get /Add put - dup (A) 0 get /BoldAdd put % 65 - dup (x) 0 get /Mul put - dup (X) 0 get /BoldMul put - dup (m) 0 get /Oplus put - dup (M) 0 get /BOplus put - dup (e) 0 get /SolidOplus put - dup (n) 0 get /Otimes put - dup (N) 0 get /BOtimes put - dup (E) 0 get /SolidOtimes put - dup (i) 0 get /Bar put - dup (I) 0 get /BoldBar put - dup (l) 0 get /SolidDiamond put - dup (d) 0 get /Diamond put - (D) 0 get /BoldDiamond put -%%% -/CharProcs 47 dict def -CharProcs begin - /CirclePath {0 0 500 0 360 arc closepath} def - /Bullet {CirclePath fill} def - /Circle {CirclePath .9 .9 scale CirclePath eofill} def - /BoldCircle {CirclePath .8 .8 scale CirclePath eofill} def - /TrianglePath {0 660 moveto -571.5 -330 lineto 571.5 -330 lineto closepath} def - /SolidTriangle {TrianglePath fill} def - /Triangle {TrianglePath .85 .85 scale TrianglePath eofill} def - /BoldTriangle {TrianglePath .7 .7 scale TrianglePath eofill} def - /SquarePath {-450 450 moveto 450 450 lineto 450 -450 lineto -450 -450 lineto closepath} def - /SolidSquare {SquarePath fill} def - /Square {SquarePath .89 .89 scale SquarePath eofill} def - /BoldSquare {SquarePath .78 .78 scale SquarePath eofill} def - /PentagonPath { - -337.8 -465 moveto 337.8 -465 lineto 546.6 177.6 lineto - 0 574.7 lineto -546.6 177.6 lineto closepath - } def - /SolidPentagon {PentagonPath fill} def - /Pentagon {PentagonPath .89 .89 scale PentagonPath eofill} def - /BoldPentagon {PentagonPath .78 .78 scale PentagonPath eofill} def -%-------------- hv begin 2004/07/25 from: er 2003/03/24 - /HexagonPath { - 0 550 moveto -476 275 lineto -476 -275 lineto - 0 -550 lineto 476 -275 lineto 476 275 lineto closepath - } def - /SolidHexagon {HexagonPath fill} def - /Hexagon {HexagonPath .89 .89 scale HexagonPath eofill} def - /BoldHexagon {HexagonPath .79 .79 scale HexagonPath eofill} def -% 2008-04-18 hv - /OctogonPath { - 550 dup 22.5 tan mul dup neg dup add /xMove exch def - exch moveto 7 { xMove 0 rlineto 45 rotate } repeat closepath } def - /SolidOctogon { OctogonPath fill } def - /Octogon { OctogonPath .89 .89 scale OctogonPath eofill } def - /BoldOctogon { OctogonPath .79 .79 scale OctogonPath eofill } def -% - /AsteriskPath { - 20 0 moveto 10 250 180 500 0 500 curveto - -180 500 -10 250 -20 0 curveto closepath - } def - /Asterisk { - AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath - 60 rotate AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath fill - } def -% - /Basterp {50 250 220 500 0 500 curveto -220 500 -50 250 -50 30 cos 100 mul curveto} def - /BoldAsteriskPath { - 50 30 cos 100 mul moveto Basterp - 60 rotate Basterp 60 rotate Basterp - 60 rotate Basterp 60 rotate Basterp - 60 rotate Basterp closepath - } def - /BoldAsterisk {BoldAsteriskPath fill} def - /SolidAsterisk {CirclePath .9 .9 scale BoldAsteriskPath eofill} def - /CrossPath { - 40 550 moveto -40 550 lineto -40 40 lineto -550 40 lineto - -550 -40 lineto -40 -40 lineto -40 -550 lineto 40 -550 lineto - 40 -40 lineto 550 -40 lineto 550 40 lineto 40 40 lineto closepath - } def - /BoldCrossPath {80 550 moveto -80 550 lineto -80 80 lineto -550 80 lineto - -550 -80 lineto -80 -80 lineto -80 -550 lineto 80 -550 lineto - 80 -80 lineto 550 -80 lineto 550 80 lineto 80 80 lineto closepath - } def - /Add {CrossPath fill} def - /Mul {45 rotate CrossPath fill} def - /BoldAdd {BoldCrossPath fill} def - /BoldMul {45 rotate BoldCrossPath fill} def - /Oplus {CirclePath .9 .9 scale CirclePath eofill .775 .775 scale CrossPath fill } def - /SolidOplus {CirclePath .775 .775 scale BoldCrossPath eofill} def - /BOplus {CirclePath .8 .8 scale CirclePath eofill .775 .775 scale BoldCrossPath fill} def - /Otimes {CirclePath .9 .9 scale CirclePath eofill 45 rotate .775 .775 scale CrossPath fill} def - /BOtimes {CirclePath .8 .8 scale CirclePath eofill 45 rotate .775 .775 scale BoldCrossPath fill } def - /SolidOtimes {CirclePath 45 rotate .775 .775 scale BoldCrossPath eofill} def - /BarPath {40 660 moveto -40 660 lineto -40 -660 lineto 40 -660 lineto closepath} def - /Bar {BarPath fill} def - /BoldBarPath {80 660 moveto -80 660 lineto -80 -660 lineto 80 -660 lineto closepath} def - /BoldBar {BoldBarPath fill} def - /DiamondPath {0 742.5 moveto -428.5 0 lineto 0 -742.5 lineto 428.5 0 lineto closepath} def - /SolidDiamond {DiamondPath fill} def - /Diamond {DiamondPath .865 .865 scale DiamondPath eofill} def - /BoldDiamond {DiamondPath .73 .73 scale DiamondPath eofill} def -%%% - /.notdef { } def -end -% -/BuildGlyph { - exch - begin -% Metrics 1 index get exec 0 - 0 0 -% BBoxes 3 index get exec - -1000 -1000 1000 1000 -% -571.5 -742.5 571.5 742.5 - setcachedevice - CharProcs begin load exec end - end -} def -% -/BuildChar { - 1 index /Encoding get exch get - 1 index /BuildGlyph get exec -} bind def -% -end -/PSTricksDotFont exch definefont pop -% -%% end - -%%EndProcSet -%%BeginProcSet: pst-node.pro 0 0 -% $Id: pst-node.pro 645 2012-02-12 09:09:51Z herbert $ -%% -%% PostScript prologue for pst-node.tex. -%% Version 1.13, 2011/11/21. -%% -%% This program can be redistributed and/or modified under the terms -%% of the LaTeX Project Public License Distributed from CTAN archives -%% in directory macros/latex/base/lppl.txt. -% -/tx@NodeDict 400 dict def tx@NodeDict begin -tx@Dict begin % from main pstricks dict - /T /translate load def - /CP /currentpoint load def -end -/NewNode { % on stack: { x y } boolean N@name type InitXnode - gsave - NodeScale % a bugfix for xelatex, it's empty for dvips - /next exch def % { x y } boolean N@name type - dict dup % { x y } boolean N@name dict dict - 3 1 roll def % { x y } boolean dict N@name dict def - exch { dup 3 1 roll def } if % { x y } dict boolean - begin % { x y } dict begin - tx@Dict begin - STV CP T exec % set scaling - end - /NodeMtrx CM def % save CM - next % InitXNode - end - grestore -} def -% -/InitPnode { - /Y ED /X ED - /NodePos { NodeSep Cos mul NodeSep Sin mul } def -} def -% -/InitCnode { - /r ED /Y ED /X ED - /NodePos { NodeSep r add dup Cos mul exch Sin mul } def -} def -% -/GetRnodePos { - Cos 0 gt { /dx r NodeSep add def } { /dx l NodeSep sub def } ifelse - Sin 0 gt { /dy u NodeSep add def } { /dy d NodeSep sub def } ifelse - dx Sin mul abs dy - Cos mul abs gt { dy Cos mul Sin div dy } { dx dup Sin mul Cos Div } ifelse -} def -% -/InitRnode { - /Y ED /X ED X sub /r ED /l X neg def Y add neg /d ED Y sub /u ED - /NodePos { GetRnodePos } def -} def -% -/DiaNodePos { - w h mul w Sin mul abs h Cos mul abs add Div NodeSep add dup - Cos mul exch Sin mul -} def -% -/TriNodePos { - Sin s lt - { d NodeSep sub dup Cos mul Sin Div exch } - { w h mul w Sin mul h Cos abs mul add Div - NodeSep add dup Cos mul exch Sin mul - } ifelse -} def -% -/InitTriNode { - sub 2 div exch - 2 div exch - 2 copy T - 2 copy 4 index index /d ED - pop pop pop pop - -90 mul rotate - /NodeMtrx CM def - /X 0 def /Y 0 def - d sub abs neg /d ED - d add /h ED - 2 div h mul h d sub Div /w ED - /s d w Atan sin def - /NodePos { TriNodePos } def -} def -% -/OvalNodePos { - /ww w NodeSep add def - /hh h NodeSep add def - Sin ww mul Cos hh mul Atan dup cos ww mul exch sin hh mul -} def -% -/GetCenter { begin X Y NodeMtrx transform CM itransform end } def -% -/XYPos { - dup sin exch cos Do - /Cos ED /Sin ED /Dist ED - Cos 0 gt - { Dist Dist Sin mul Cos div } - { Cos 0 lt - { Dist neg Dist Sin mul Cos div neg } - { 0 Dist Sin mul } ifelse - } ifelse - Do -} def -% -/GetEdge { - dup 0 eq - { pop begin 1 0 NodeMtrx dtransform - CM idtransform - exch atan sub - dup - sin /Sin ED - cos /Cos ED - /NodeSep ED - NodePos NodeMtrx dtransform CM idtransform end } - { 1 eq {{exch}} {{}} ifelse /Do ED pop XYPos } ifelse -} def -% -/AddOffset { - 1 index 0 eq - { pop pop } - { 2 copy 5 2 roll cos mul add 4 1 roll sin mul sub exch } ifelse -} def -% -/GetEdgeA { - NodeSepA AngleA NodeA NodeSepTypeA GetEdge - OffsetA AngleA AddOffset - yA add /yA1 ED - xA add /xA1 ED -} def -% -/GetEdgeB { - NodeSepB AngleB NodeB NodeSepTypeB GetEdge - OffsetB AngleB AddOffset - yB add /yB1 ED - xB add /xB1 ED -} def -% -/GetArmA { - ArmTypeA 0 eq - { /xA2 ArmA AngleA cos mul xA1 add def - /yA2 ArmA AngleA sin mul yA1 add def } - { ArmTypeA 1 eq {{exch}} {{}} ifelse - /Do ED - ArmA AngleA XYPos OffsetA AngleA AddOffset - yA add /yA2 ED - xA add /xA2 ED } ifelse -} def -% -/GetArmB { - ArmTypeB 0 eq - { /xB2 ArmB AngleB cos mul xB1 add def - /yB2 ArmB AngleB sin mul yB1 add def } - { ArmTypeB 1 eq {{exch}} {{}} ifelse - /Do ED - ArmB AngleB XYPos OffsetB AngleB AddOffset - yB add /yB2 ED - xB add /xB2 ED } ifelse -} def -% -/InitNC { - /b ED /a ED % second and first node - /NodeSepTypeB ED /NodeSepTypeA ED - /NodeSepB ED /NodeSepA ED - /OffsetB ED /OffsetA ED - tx@NodeDict a known tx@NodeDict b known and dup { - /NodeA a load def - /NodeB b load def - NodeA GetCenter /yA ED /xA ED - NodeB GetCenter /yB ED /xB ED } if -} def -% -/LPutLine { - 4 copy - 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED - 1 t sub mul - 3 1 roll 1 t sub mul - 4 1 roll t mul add /Y ED - t mul add /X ED -} def -% -/LPutLines { - mark LPutVar counttomark 2 div 1 sub /n ED -% t floor dup n gt - t floor dup n ge % to allow npos<= hv 2008-08-14 - { pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse - cvi 2 mul { pop } repeat - LPutLine - cleartomark -} def -% -/BezierMidpoint { - /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED /y0 ED /x0 ED /t ED - /cx x1 x0 sub 3 mul def - /cy y1 y0 sub 3 mul def - /bx x2 x1 sub 3 mul cx sub def - /by y2 y1 sub 3 mul cy sub def - /ax x3 x0 sub cx sub bx sub def - /ay y3 y0 sub cy sub by sub def - ax t 3 exp mul bx t t mul mul add - cx t mul add x0 add ay t 3 exp mul - by t t mul mul add cy t mul add - y0 add 3 ay t t mul mul mul 2 - by t mul mul add cy add 3 ax t t mul mul mul - 2 bx t mul mul add cx add atan /NAngle ED - /Y ED /X ED -} def -% -/HPosBegin { yB yA ge { /t 1 t sub def } if /Y yB yA sub t mul yA add def -} def -/HPosEnd { /X Y yyA sub yyB yyA sub Div xxB xxA sub mul xxA add def -/NAngle yyB yyA sub xxB xxA sub Atan def } def -/HPutLine { HPosBegin /yyA ED /xxA ED /yyB ED /xxB ED HPosEnd } def -/HPutLines { HPosBegin yB yA ge { /check { le } def } { /check { ge } def -} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { dup Y check { exit -} { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark HPosEnd -} def -/VPosBegin { xB xA lt { /t 1 t sub def } if /X xB xA sub t mul xA add def -} def -/VPosEnd { /Y X xxA sub xxB xxA sub Div yyB yyA sub mul yyA add def -/NAngle yyB yyA sub xxB xxA sub Atan def } def -/VPutLine { VPosBegin /yyA ED /xxA ED /yyB ED /xxB ED VPosEnd } def -/VPutLines { VPosBegin xB xA ge { /check { le } def } { /check { ge } def -} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { 1 index X check { -exit } { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark -VPosEnd } def -/HPutCurve { gsave newpath /SaveLPutVar /LPutVar load def LPutVar 8 -2 -roll moveto curveto flattenpath /LPutVar [ {} {} {} {} pathforall ] cvx -def grestore exec /LPutVar /SaveLPutVar load def } def -/NCCoor { /AngleA yB yA sub xB xA sub Atan def /AngleB AngleA 180 add def -GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 xA1 yA1 ] cvx def /LPutPos { -LPutVar LPutLine } def /HPutPos { LPutVar HPutLine } def /VPutPos { -LPutVar VPutLine } def LPutVar } def -% -/NCLine { - NCCoor - tx@Dict begin - ArrowA CP 4 2 roll - ArrowB - lineto pop pop - end -} def -% -/NCLines { - false NArray - n 0 eq - { NCLine } - { 2 copy yA sub exch xA sub Atan /AngleA ED - n 2 mul dup index exch index yB sub exch xB sub - Atan /AngleB ED - GetEdgeA GetEdgeB - /LPutVar [ xB1 yB1 n 2 mul 4 add 4 roll xA1 yA1 ] cvx def - mark LPutVar - tx@Dict begin false Line end - /LPutPos { LPutLines } def - /HPutPos { HPutLines } def - /VPutPos { VPutLines } def - } ifelse -} def -% -/NCCurve { - GetEdgeA - GetEdgeB - xA1 xB1 sub yA1 yB1 sub Pyth 2 div dup 3 -1 -roll mul /ArmA ED mul /ArmB ED /ArmTypeA 0 def /ArmTypeB 0 def GetArmA -GetArmB xA2 yA2 xA1 yA1 tx@Dict begin ArrowA end xB2 yB2 xB1 yB1 tx@Dict -begin ArrowB end curveto /LPutVar [ xA1 yA1 xA2 yA2 xB2 yB2 xB1 yB1 ] -cvx def /LPutPos { t LPutVar BezierMidpoint } def /HPutPos { { HPutLines -} HPutCurve } def /VPutPos { { VPutLines } HPutCurve } def } def -% -/NCAngles { - GetEdgeA GetEdgeB GetArmA GetArmB - /mtrx AngleA matrix rotate def - xA2 yA2 mtrx transform pop - xB2 yB2 mtrx transform exch pop - mtrx itransform - /y0 ED /x0 ED - mark ArmB 0 ne { xB1 yB1 } if - xB2 yB2 x0 y0 xA2 yA2 - ArmA 0 ne { xA1 yA1 } if - tx@Dict begin false Line end - /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA2 yA2 xA1 yA1 ] cvx def - /LPutPos { LPutLines } def - /HPutPos { HPutLines } def - /VPutPos { VPutLines } def } def -% -/NCAngle { - GetEdgeA GetEdgeB GetArmB - /mtrx AngleA matrix rotate def - xB2 yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform - /y0 ED /x0 ED - mark - ArmB 0 ne { xB1 yB1 } if - xB2 yB2 x0 y0 xA1 yA1 - tx@Dict begin false Line end - /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ] cvx def - /LPutPos { LPutLines } def - /HPutPos { HPutLines } def - /VPutPos { VPutLines } def -} def -% -/NCBar { - GetEdgeA GetEdgeB GetArmA GetArmB - /mtrx AngleA matrix rotate def - xA2 yA2 mtrx itransform pop - xB2 yB2 mtrx itransform pop - sub dup 0 mtrx transform - 3 -1 roll 0 gt - { /yB2 exch yB2 add def /xB2 exch xB2 add def } - { /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse - mark - ArmB 0 ne { xB1 yB1 } if - xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if - tx@Dict begin false Line end - /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def - /LPutPos { LPutLines } def - /HPutPos { HPutLines } def - /VPutPos { VPutLines } def -} def -% -/NCDiag { - /lineAngle ED - GetEdgeA GetEdgeB GetArmA GetArmB mark - lineAngle abs 0 gt { - /xTemp xA2 10 add def - /yTemp yA2 lineAngle dup sin exch cos div 10 mul add def - /dY1 yTemp yA2 sub def - /dX1 xTemp xA2 sub def - /dY2 yB2 yB1 sub def - /dX2 xB2 xB1 sub def - dX1 abs 0.01 lt { - /m2 dY2 dX2 div def - /xB2 xA2 def - /yB2 xA2 xB1 sub m2 mul yB1 add def - }{ - dX2 abs 0.01 lt { - /m1 dY1 dX1 div def - /xB2 xB1 def - /yB2 xB1 xA2 sub m1 mul yA2 add def - }{% - /m1 dY1 dX1 div def - /m2 dY2 dX2 div def - /xB2 m1 xA2 mul m2 xB1 mul sub yA2 sub yB1 add m1 m2 sub div def - /yB2 xB2 xA2 sub m1 mul yA2 add def - } ifelse - } ifelse - } if - ArmB 0 ne { xB1 yB1 } if - xB2 yB2 xA2 yA2 - ArmA 0 ne { xA1 yA1 } if - tx@Dict begin false Line end - /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def - /LPutPos { LPutLines } def - /HPutPos { HPutLines } def - /VPutPos { VPutLines } def -% -% GetEdgeA GetEdgeB GetArmA GetArmB mark -% ArmB 0 ne { xB1 yB1 } if -% xB2 yB2 xA2 yA2 -% ArmA 0 ne { xA1 yA1 } if -% tx@Dict begin false Line end -% /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def -% /LPutPos { LPutLines } def -% /HPutPos { HPutLines } def -% /VPutPos { VPutLines } def -} def -% -/NCDiagg { - /lineAngle ED - GetEdgeA GetArmA - lineAngle abs 0 gt - { lineAngle } - { yB yA2 sub xB xA2 sub Atan 180 add } ifelse - /AngleB ED - GetEdgeB mark - lineAngle abs 0 gt { - /dY2 yA2 yA1 sub def - /dX2 xA2 xA1 sub def - lineAngle abs 90 eq { - /m2 dY2 dX2 div def - /yA2 xB xA2 sub m2 mul yA2 add def - /xA2 xB def - }{ - /m1 lineAngle dup sin exch cos div def % tan alpha - dX2 abs 0.01 lt { - /yA2 xA1 xB sub m1 mul yB add def - /xA2 xA1 def - }{% - /m2 dY2 dX2 div def - /xA2 m1 xB mul m2 xA2 mul sub yA2 add yB sub m1 m2 sub div def - /yA2 xA2 xB sub m1 mul yB add def - } ifelse - } ifelse - } if - xB1 yB1 xA2 yA2 - ArmA 0 ne { xA1 yA1 } if - tx@Dict begin false Line end - /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def - /LPutPos { LPutLines } def - /HPutPos { HPutLines } def - /VPutPos { VPutLines } def -% -% GetEdgeA GetArmA -% yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED -% GetEdgeB -% mark -% xB1 yB1 xA2 yA2 -% ArmA 0 ne { xA1 yA1 } if -% tx@Dict begin false Line end -% /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def -% /LPutPos { LPutLines } def -% /HPutPos { HPutLines } def -% /VPutPos { VPutLines } def -} def -% -/NCLoop { - GetEdgeA GetEdgeB GetArmA GetArmB - /mtrx AngleA matrix rotate def - xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED - /xB3 xB2 yB2 mtrx transform pop def - xB3 yA3 mtrx itransform /yB3 ED /xB3 ED - xA3 yA3 mtrx itransform /yA3 ED /xA3 ED - mark ArmB 0 ne { xB1 yB1 } if - xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if - tx@Dict begin false Line end - /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ] cvx def - /LPutPos { LPutLines } def - /HPutPos { HPutLines } def - /VPutPos { VPutLines } def -} def -% -% DG/SR modification begin - May 9, 1997 - Patch 1 -%/NCCircle { 0 0 NodesepA nodeA \tx@GetEdge pop xA sub 2 div dup 2 exp r -%r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add -%exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360 -%mul add dup 5 1 roll 90 sub \tx@PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED -% -/NCCircle { - NodeSepA 0 NodeA 0 GetEdge pop - 2 div dup 2 exp r r mul sub abs sqrt - atan 2 mul /a ED - r AngleA 90 add PtoC yA add exch xA add - exch 2 copy - /LPutVar [ 4 2 roll r AngleA ] cvx def - /LPutPos { - LPutVar t 360 mul add dup 5 1 roll 90 sub PtoC - 3 -1 roll add - /Y ED add /X ED /NAngle ED -% DG/SR modification end - } def - /HPutPos { LPutPos } def - /VPutPos { LPutPos } def - r AngleA 90 sub a add AngleA 270 add a sub - tx@Dict begin - /angleB ED /angleA ED /r ED - /c 57.2957 r Div def - /y ED /x ED -} def -% -/NCBox { - /d ED /h ED - /AngleB yB yA sub xB xA sub Atan def - /AngleA AngleB 180 add def - GetEdgeA GetEdgeB - /dx d AngleB sin mul def - /dy d AngleB cos mul neg def - /hx h AngleB sin mul neg def - /hy h AngleB cos mul def - /LPutVar [ - xA1 hx add yA1 hy add xB1 hx add yB1 hy add - xB1 dx add yB1 dy add xA1 dx add yA1 dy add ] cvx def - /LPutPos { LPutLines } def - /HPutPos { xB yB xA yA LPutLine } def - /VPutPos { HPutPos } def - mark - LPutVar tx@Dict begin false Polygon end -} def -% -/NCArcBox { - /l ED neg /d ED /h ED /a ED - /AngleA yB yA sub xB xA sub Atan def - /AngleB AngleA 180 add def - /tA AngleA a sub 90 add def - /tB tA a 2 mul add def - /r xB xA sub tA cos tB cos sub Div dup 0 eq { pop 1 } if def - /x0 xA r tA cos mul add def - /y0 yA r tA sin mul add def - /c 57.2958 r div def - /AngleA AngleA a sub 180 add def - /AngleB AngleB a add 180 add def - GetEdgeA GetEdgeB - /AngleA tA 180 add yA yA1 sub xA xA1 sub Pyth c mul sub def - /AngleB tB 180 add yB yB1 sub xB xB1 sub Pyth c mul add def - l 0 eq { - x0 y0 r h add AngleA AngleB arc x0 y0 r d add AngleB AngleA arcn - }{ - x0 y0 translate - /tA AngleA l c mul add def - /tB AngleB l c mul sub def - 0 0 r h add tA tB arc r h add - AngleB PtoC r d add - AngleB PtoC 2 copy - 6 2 roll l arcto 4 { pop } repeat - r d add tB PtoC l arcto 4 { pop } repeat - 0 0 r d add tB tA arcn r d add - AngleA PtoC r h add - AngleA PtoC 2 copy 6 2 roll - l arcto 4 { pop } repeat - r h add tA PtoC l arcto 4 { pop } repeat - } ifelse - closepath - /LPutVar [ x0 y0 r AngleA AngleB h d ] cvx def - /LPutPos { - LPutVar /d ED /h ED - /AngleB ED /AngleA ED - /r ED /y0 ED /x0 ED - t 1 le { - r h add AngleA 1 t sub mul AngleB t mul add dup 90 add /NAngle ED PtoC - }{t 2 lt { - /NAngle AngleB 180 add def r 2 t sub - h mul t 1 sub d mul add add AngleB PtoC - }{ - t 3 lt { - r d add AngleB 3 t sub mul AngleA 2 t sub - mul add dup 90 sub /NAngle ED PtoC - }{ - /NAngle AngleA 180 add def - r 4 t sub d mul t 3 sub h mul add add AngleA PtoC - } ifelse - } ifelse - } ifelse - y0 add /Y ED x0 add /X ED - } def - /HPutPos { LPutPos } def - /VPutPos { LPutPos } def -} def -% -/Tfan { /AngleA yB yA sub xB xA sub Atan def GetEdgeA w xA1 xB sub yA1 yB -sub Pyth Pyth w Div CLW 2 div mul 2 div dup AngleA sin mul yA1 add /yA1 -ED AngleA cos mul xA1 add /xA1 ED /LPutVar [ xA1 yA1 m { xB w add yB xB -w sub yB } { xB yB w sub xB yB w add } ifelse xA1 yA1 ] cvx def /LPutPos -{ LPutLines } def /VPutPos@ { LPutVar flag { 8 4 roll pop pop pop pop } -{ pop pop pop pop 4 2 roll } ifelse } def /VPutPos { VPutPos@ VPutLine } -def /HPutPos { VPutPos@ HPutLine } def mark LPutVar tx@Dict begin -/ArrowA { moveto } def /ArrowB { } def false Line closepath end } def -% -/LPutCoor { - NAngle - tx@Dict begin /NAngle ED end - gsave - CM STV - CP Y sub neg exch X sub neg exch moveto - setmatrix CP - grestore -} def -% -/LPut { - tx@NodeDict /LPutPos known - { LPutPos } { CP /Y ED /X ED /NAngle 0 def } ifelse - LPutCoor -} def -% -/HPutAdjust { - Sin Cos mul 0 eq - { 0 } - { d Cos mul Sin div flag not { neg } if - h Cos mul Sin div flag { neg } if - 2 copy gt { pop } { exch pop } ifelse - } ifelse - s add flag { r add neg }{ l add } ifelse - X add /X ED -} def -% -/VPutAdjust { - Sin Cos mul - 0 eq - { 0 } - { l Sin mul Cos div flag { neg } if - r Sin mul Cos div flag not { neg } if - 2 copy gt { pop } { exch pop } ifelse - } ifelse - s add flag { d add } { h add neg } ifelse - Y add /Y ED -} def -% -% -end -% -% END pst-node.pro - -%%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 -@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 -TeXDict begin @defspecial - - /landplus90 true store - -@fedspecial end -%%BeginFont: SkakNew-Figurine -%!PS-AdobeFont-1.0: SkakNew-Figurine 001.003 -%%CreationDate: Mon Feb 02 15:14:46 2009 -%%VMusage: 120000 150000 -11 dict begin -/FontInfo 15 dict dup begin -/version (001.003) readonly def -/Notice (Copyright (c) Ulrich Dirr 2003, former designs by Piet Tutelaers, Torben Hoffmann, Dirk Bächle. All rights reserved.) readonly def -/FullName (SkakNew-Figurine) readonly def -/FamilyName (SkakNew-Figurine) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -/UnderlinePosition -100 def -/UnderlineThickness 50 def -/Weight (Regular) readonly def -end readonly def -/FontName /SkakNew-Figurine def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 78 /N put -dup 88 /X put -readonly def -/PaintType 0 def -/FontType 1 def -/FontMatrix [ 0.001 0 0 0.001 0 0 ] readonly def -/FontBBox {0 -114 1241 842} readonly def -currentdict end -currentfile eexec -D9D66F633B846A989B9974B0179FC6CC445BCF7C3C3333173232E3FDBFF43949 -1DB866C39088C203DC22FDC758584860EC7BB67FDA28CC6208249060E18FAB32 -204779B5C03C0493BBBBC95CF02692CC4DEAA8D2EA90B5C2E64374E92BCB8501 -429B8FAE4A76C0C6B76D6FF7CF9A7D5EDFBCA0E959541C59BD05B7DE43D25D53 -FC3DDA6EF0C2743978A6D03E19CCED4A11F2EA4BCC3110BE8B8D9E2772361969 -C19258EFAFDC276CB1ADE9208A941A36D18F9FB1C33DEF76AA315DDB04A81691 -6676E5A648D7DE382599A7743325F8403952F71AC144CB079B79EA0F6CC70FE9 -5F3188F983A1F1EC77ACFC7CCF01778F00CCFB385AFDEB4E5A9CE7CC620FF716 -C61C9DE01E055E0CAFD45A716C0BE3FCBE9055D993851DE60E1E573FA960A4E0 -DA00D6FC534C4CF679C935A5D4A5B19672767A386D945B17D996CF36231F8E98 -218CA1C3BBB7D39931D4D50B1D1EF947277C4A9C9E84D419D55550E2A5FF0549 -1FA0277DC7AD9334BF50CC5492D5EAA01A2BD4770AD8B320B546FDD69F0FE7B8 -7DCE3B013AFA239B624C50424184F8B2E6C035CD8D09C0AEEA727DA23EBB0563 -F296F801C2D059FAA56DDC675D141E980EE19E8693DD546BB1EFAF23B25EE18F -401F89336BBB74A63088F8D1EEBE74494B265B6B737BBE29B09C257B26F2DC39 -B3CC5E66AB9A1696EE887C7638A4455C101BA7567859E0E604629B5D3FF0C3BD -9415B98896048B159A2B809B92737580090FE1E59963263B10DCFDBFEFE15B88 -68ADC79BDC0DF2CA41AEBB4338C85C6CC6C21EA274FF5724D26BC8563E63DACC -067651091F0E4F77C75213298BCD391606C39E1C1F37DD9C2C4515172E0DB0AB -3E93275D2FCA7CBFA53CB4D8123F6F54D0986482FE3E98ECF421B3A21437BD9E -E1556833796B0E3BDAAB179595F761991103B3CF06E89E5DDA1F6D91AE06E510 -6896FF0B71F0D2911767CB1DFEEF3500F070270EADED32C917A92CEE4B70D0AA -AEC0F959827BFFAB9A4BCDD270540B157307FC76AA894CE6094B0A399768CC90 -A73760A26EA9F28C74DA6FD1AEE7BD8F21404F8FC3215606F8E3838371563F7C -27C0833ED579C89FF32E4F2275FE27F5E70B4B6D62EBB0E0E26724A5B882D939 -13C29A0FE8B6823CF7E0FD24EAFEE0B17FD81119F9E9E730F889E0E6A6BF83C4 -C3AB5B3335202013A4C07D71EDCB645D75EBE01B6D98DF536ABDCEDFCFE0C622 -333D69C242E78C42BDC2E33ABEAC4122F4596B941EEE41F2B753588999185585 -F81C9AEDA32A0BD44F9524B9507F56322B2F69125FA7879FE893379DB4E9B623 -4A4284E77EC96EB41BD5014C4D2C952C8B879ECDD46A7D6F765AF5CFDC63EB48 -F3F635F1FD8DA05FBEDB7792CC93AE900A7E6D0D5E651DB84901133618EF2A2E -0171B1265CD7728C0BE06A039942CFBCE56565997574AAB2E4D872A51D8BF02B -8C9FF495D51DA88E25C017DA0BCFD68F818DBC70C21B0D1A5BFAA10D703FD9EA -70DB8A6D0713921E6A9F06D18EB8C923D578B49B56B957F2829078137A1654D7 -07092331189B3832622448CAEA135A077CEEFD9F115DBCF8F8EFD10A7E9ACED8 -465CAAB3C01D7DA2DA499E4356F15DC5F39D92C89652D2076DA4156E2F6FF1CC -CD25F6103A1ADA4D804AF9713EDC2E735305BF84268AC987D25E618FF5830ABC -664C7D24F5BE04A94B10508F995F25551F09DDE397411C32DFE1DE7BB4B362EE -F0E89BCC857F6A90A2E16A87B235EA5F907D242886828533DE028CAF26599169 -51786065E65083F6E7998D450209A662EBBE0F47FE9F857830D0A53FB713BD10 -1F617F1534AC91EF42C29F809333A085CF82E28FD4C4CE70E005C968FA255598 -FB48DCDB10D59E0BDEA6E48DB2DC38A73D7DDA26E4DC6C20D789C9DE0FD07DBE -77C505C5481790BE351E82B2E71797BC63C4FD2E5A3D2200FC869C8731D1C4D4 -52927DB2FB6A9A9D94E5A9B82386BD671317D335068F327B80A76B76821197ED -7477E1A0F3E825319F38B5B19D8D4254A568404F573503A98486EA3FE9D90B49 -B8FB9A14C78C398FEE336C6C06D26094253CB3C05DE94D479246F98955525E5B -D396DB0463D820EFE630E45FDE82A1AEC969005BBBECF953A4E4D36FEA40774E -257696BA1AA6893D8F50A739291882B49D194AA6CB52B6A9A5A0BA572D888611 -1D820E39A37484CB2F59442267F69CE3A98AA183B301EF970EFE0CBA542946D2 -B9A3376F2EDC866218B68FB3B04F95DAA1414BB2044863226EFBA073668EB743 -D77E06DF99647DBDCCD31821EB3FAF7FE8492230D69863CBA258F0E0AB8D706E -32C3D545CFED4D6B3EC8D75B6D44B0CBD3D101217C9188711C50D7F96001B86D -A6FDFD52372F09F7D4F9AD059B4C16E96F4E4B7956D7BC1A5202FCCD97F69580 -EAE80A741927F939513C39258BEBC1336F60F2F9E1BB946CCB222BB5F7923A0E -54AB540082DD231B11E1F262EBAEA0E01E90D212BF3CBA3CBEED477CB1823C4E -B98F9D1D10B4E036AD5E21504A2B9257C6A0183F194E9C048CB520DED328F39F -5BC23801CB9668D693FBA408A32D9FA99A47FB3B29D8 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMMI10 -%!PS-AdobeFont-1.0: CMMI10 003.002 -%%Title: CMMI10 -%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 CMMI10. -% 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/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup -/UniqueID get 5087385 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 /CMMI10 def -/FontBBox {-32 -250 1048 750 }readonly def -/UniqueID 5087385 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 CMMI10.) readonly def -/FullName (CMMI10) 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 60 /less put -dup 62 /greater put -readonly def -currentdict end -currentfile eexec -D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5 -45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4 -7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7 -72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E -BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89 -974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674 -11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBC7878DFBD546AC2 -1EF6CC527FEEA044B7C8E686367E920F575AD585387358FFF41BCB212922791C -7B0BD3BED7C6D8F3D9D52D0F181CD4D164E75851D04F64309D810A0DEA1E257B -0D7633CEFE93FEF9D2FB7901453A46F8ACA007358D904E0189AE7B7221545085 -EDD3D5A3CEACD6023861F13C8A345A68115425E94B8FDCCEC1255454EC3E7A37 -404F6C00A3BCCF851B929D4FE66B6D8FD1C0C80130541609759F18EF07BCD133 -78CBC4A0D8A796A2574260C6A952CA73D9EB5C28356F5C90D1A59DC788762BFF -A1B6F0614958D09751C0DB2309406F6B4489125B31C5DD365B2F140CB5E42CEE -88BE11C7176E6BBC90D24E40956279FBDC9D89A6C4A1F4D27EC57F496602FBC4 -C854143903A53EF1188D117C49F8B6F2498B4698C25F2C5E8D8BD833206F88FC -BD5B495EB993A26B6055BD0BBA2B3DDFD462C39E022D4A1760C845EA448DED88 -98C44BAAB85CD0423E00154C4741240EB3A2290B67144A4C80C88BE3D59AD760 -E553DAC4E8BA00B06398B1D0DFE96FB89449D4AE18CE8B27AFE75D2B84EFDB44 -143FD887F8FB364D000651912E40B0BAEDDA5AD57A3BC0E411E1AD908C77DCE3 -981985F98E258A9BB3A1B845FC4A21BCC54559E51BC0E6C22F0C38540F8C9490 -88A0E23EA504FA79F8960CC9D58611C519D3ACDC63FB2FBCAE6674357D7F2285 -4BCC9F54D3DA421D744D3A341DA3B494BB526C0734E1A8FC71501745399F7683 -FD17EC3044419A88C3979FD2ABA5B0130907B145A8462AAF0A9B511D2C8A7C7F -347FF6AC057E6512902BFD2918E2CD31DE615F5D643764E900B60287670AE18F -FDE15545D8BC69591A8CBBB275AFFC9B14BD68DF0AAB32268FB84844D4DBC7BB -C591C1AC5102C50A9C7BAAA848DA88B0519F0F5F0813BF055CF0E3C86F633A04 -B779D2E8E656DB1E09A66A85FE21CA8BA5523F472A229E83F2C4E91ABA46C733 -F3C7B5775B06C97782BC225C46385BEBDC61572458EFC5CF4190AB7A9C1C92DA -29F84BAACF552089195966E3AD9E57CC914D20B6962BE80429A16D4DF1ECAA66 -36C4343FADF0B2B48F12E2EB8443C4AA29D00949255F3968617F98B8ABD4CC12 -048B838EE243A21AC808BD295195E4AE9027005F52258BFCA915C8D9AED9A2C0 -80814F79CF943FBE3594C530A22A92E11BE80FCEC1684C4F56712D5846B0749C -9B54A979B315222F209DEE72583B03093EC38F7C5B9F9BCB21DBE8EDDAE9BE8B -75ACE6B12A31083AC8348EC84D1D29D2297A266284B7E9734E207DAF59A25F4E -4AA38509E993C5394FED76E6A2F25462685C4C86C6E8CFC9863338EC1428BDFC -74616BB1BC8948B0ED4C87C15B4405F3A7796F9DB3798FFFE8BD0A94E834817B -D5E9812E308D0CC920470A6F2CD088FCB80462BF7CB3F039A7DF3DAF5B2B5355 -E083A385CD2EAF0FC181E40E96DD7E9AB9EF5C7E6866A13B8A54718E950FE097 -EF0951A357114F18CE9933D28B3A77AA71E3CE884661F13284BCED5D5FD1A86D -543E588FF473DC2CF9A4DC312500135F29C2D0174B32018C8DBD40EF9A232883 -710A1F2AB2CD11312300ACDF789A9B7B93D2035D81D1C84984D92D78A53A00C6 -EDA94B24BBAC1AD17774A4E07E6F74ABD90415965616AD540C8ECD8C3A44EE4F -7F4F6BB6238C5062D63FA59B7BF08BE93FAEA70A2AB08FBEAAF7DBF56B95FD93 -03CA406543BA6C9527D0DF01F5108D31A51778A5EB1C93F27B72B46146A353A2 -01CACBC829603B9989A87CF64528682CCBA0562A8165B185C58A5C6BB72F5E89 -500ACCAAB8ECEFBB2640E99EAEEC4EA979AA793D013D61D8ACF8784FF8D9398F -F6A252A709324FB39509F0B3A4E725E82F53543383C6765BE556CC897C758208 -AA3AD37B0406E4A79F8F0A6C1983FC73E71CD858C0DB66ED66D5D992978614EE -1EA91EBE191E082EBA1FC040AF19A2202575C2EBEB8058833E3520FA03D2F915 -85C1ED337E457B9FEEB0C6EF2735EFDA6E0D05FA641BCF698AC6B97751E8306C -4DF00A39B8581FF53DB8F8525FDB196D85950906CCB59B8EF171349AA3B567B1 -6A00819947A995FB383C3C1709C9A2C113B2E40BB832B7D4A0FBA0B16A2C455F -55809CC425C403E9668DC66BE45B71A81C332FD4DB279D22A2959962304A8F18 -085893DAC61317D24A8F198FDAB95F3B86F0AFD35047B868A9A17037A2829A02 -BAB042F75F349E197A7EED41984C2859754CAFD0251439921C248B463B516951 -2E1322C80D73F9CBCAA63A585450275AC2492E4D3FB78E800F788254DB5E610D -CF788DF5C70FF99892BCDF16133E34B24B77C8F097F546B87C603DDB8998B66E -BACB68BA27462AF54AA405682EC96D701F0D474DECD5F95CA2102DF639EB169E -D518162C2BAE45FF698B6DE15FC6E7DE48C336C40A670FD26952A6BAB09115E1 -991F0073419F2CC2A1C08BE91096936AA0C37E4ED3CCCEE235476074B8FF1125 -6BDE3701F85532D8BB64CCC927CC335281C95EA689706F0AC717DC2CF680C754 -E5EFD7FA4BB8880B2B727A964C876D4A223069D4E6001771F0E23EAD2A4BBC80 -E76675297B2EF05F52BF4E71B3EE2BE3048CF088C79540113C66AE98B2FD3CB1 -B0741A215FD070882C52765009D7D711DAA2508F19AE7DDA15229A856AC49BC3 -4DDF40814FF96500E4B9B02D412E94623C5FDCC76C0FB8E42DF56A904FE49D65 -1DA7C53901B2EA71AB658A464D3ABDE27D9DB8D9E0B48F64E61A2495AD5D8DAB -B5E72424AD017DF37964AF911BD7FA21A5EB4775DC8E95EF0C0EB856B00D89D7 -8172A1DE8530767D317B8256103E53CFB877E10686A04F5A08F8DC58D843DEBA -FD5F40597588663D103689F6EB3EB14D06E18C8078F2538B43E712DF491FC5C6 -AF639256C8C6134B64D560D8476DEA6329D995E46CC4BC78841C59E73648B47E -BFA7DE0846422F738454AE77E822A083405289247BD7C478BE4974F742CD6051 -E99FBB1D1B3FBABFEE855174734EE45E87D0AADF32B1283B911162A9955847FD -38944D70584FAA6B1A7191C5C134B73F98EB632B69E2F0C0F94156787C34C8A3 -7622A029D58F9626B74F8A8A1F3803E0BC20E0EADEB1E99B70F1BD9F980FB751 -2A842843DE42EB142A84D5D3138629AE9EAF6F3479C423E8829C8816FA6EFA27 -DCE5580E65AA9854B1C64163DC318420CD993C15BFD76A8BA1182860A6B03D6D -22B8CF43CFE6C8AB27C64842E239CAE707D3086BADDE1D7C94E3BC96319470D6 -8D26915C575CFDD03271D6BB9DE86A0EB6EEA6E768B224A626C62A9AB48A6EDB -44F70BB5AF991CDF9736D65933E81CC57A78F623F33EC9AF535F2F25FA4EEC90 -D50DB7E87F31E971A75A33A301CA6013EEC5A4E179D695B33DADF2C98364434A -42926776000B610E17524162253F6FA638D6581C18F99EA0BD1D2E24D2424ADF -C05010D08192485153DD03930C7BF45237593E484F9851E6D464FA10FECA5D9E -0C8CCC97DE029030900CDBB491C5CF226DBF903CFE7735D939C3FDF3A20B70CE -66579B28B99313FEE914E295388C7BC8E055A2E54EA3A8206D3C8F4F7C0BA5E6 -E519419FD8CE215F7B8E9BEC604A9E3FE272A0328A24E31997C8A91E0946BCF1 -6943A97CBED2AB9FC636B49828BBB8B89E0BBC2653796431224895ABA5DAC41E -1854BD9764E86147FD7624F736F40DE3B7582EDDFD15C2BDE3F22B5A54D7DF10 -B87A1301CE85CFC061689A890A321412A13314AE96DCD3EDA75035FDD8F4AB9B -897A2C68263A68457032C469987970648BA2D88B1C5375DFEAA35A917B8A952E -EE670427942AEDB3CB599C5746180E392837D371E15D860620ABDB6AA7772C40 -A5E346661673ACA530BE3D8E3FFB895E5DA3DC23B1B43C080C77F7E47847F0F3 -F3AA5CA9E4BF75FC5EBD18D19F21A7DAA3B11CABC6E4070A15F7DBC8B05EB6AA -A02EF1B078EB66D61D6AFE41DA9B36FE7EC9EF94D1EA26282A9871E2CACB3126 -2AD49C2D9B50A6E47D8F2CCAD50992D1B430979A45FD9E76182A19964BB2A1F6 -51779A2B258DC1DF4C2F3074621286831F3848AC152DDD2BA561E6586ADA88D3 -598A2CE2CD048F027CE0008B828BD915887D7785341E8305DF2346ADB76BE99F -87B02173BDC334E9221C8DF54114A6B24C1C5340299512FA6C8C51AB4C8778CE -178CEF531C6D1B5FF0A1BE8EFF767F959BD4C345C52699A29A17B2A230842BF6 -4B011217D6D24EDAC3F6D53482786F1CA33169B90ECD499407D37CE9B70DDF78 -7B7547B32952535BA9ACD1E244447AE3FCED3AF28717083CF9590A09780984D6 -AF0743C82AE4FB3E2BB2856A4153A3967A023FFC35382D6C22D84A924900B6A6 -3DDD400E6D2418DA6C27F2FA34C075C902B89EBAE658B3C9A18EEE449DA5A379 -337DE95CB7AB3F0970CF1A5D8FAD8090E495570FDFB2FBBA79244780D8035547 -C5A55BB21A2270F724BF5D442CDC5BB9F09BE0CAE59B1C2270F0BDACE698F2C5 -DE8F66BFB9634904B161F5BA2B1950048300D69BABD312D58D89C4ED527AF7BA -7DA2478EDC2CDEE3473DD8A8ED9D891CD1FC21F23013228BB3281B71FCE959BD -6F8E9059D682A7FCC5265A0620992D4FA8D78377EB34CE3ECA070EE3707239BC -98907DB0120CE42ABA32CF97127E28382BDDFD685674279F588D4F951216C355 -821361790F64C2CC720DE97E8ECB57326C43EE47367628E05769E106868B54F4 -C33C9951908DF6FC4F5ED2C7787BD8FA591BBB3E9C6C1DA94CC5E38D9B20C886 -7D237572FF46DD896A4D6163408EA6CEFAC398EE041EAE29D577E75326CA17A6 -B072D47A7B13EC441CE6DAA042ECD02134CBFA6809A435050413817193DAEB16 -A5882C8AEA44BCF36E74E9ECCDFE7E19FF5A5DD7A94E5AB4F8702C3DA7F42325 -23C808670A0490F5B373DADE40814FF9650241D3D69C91FBC5ECE728F827D9BF -C928602E05477903449E079164CA39859C4BCA60C579F490AA455F82B5050BB3 -969AFB478E0D4A257B3356EA3CD62051FCE6C6B1929CFF85BFDF166BEF658E10 -3A55E007F38EBBB248B3F0B8ED1925106B499B762E45113AE1AC9DE09644C84B -9C08034B297314EE69BC32DB6E7D7FB9913CE5AC17E7335979E9DCCE2BAB3725 -1976155551F9706A576FE0E3ADCCF72C87683291528ECB749CB0ED291966E239 -B5E3630676BD409E08F85BC1AEC9A2D4135376284A96EA24431243BD6FE8B966 -95F11A4BB53F392E0AEFEA623064FF8A7002367B0A515635CB2D2DDFB9B4A8D7 -FE721754E81BBA548848A235B91AD4E4F7DB19CCE2F61D277FC00AB956EB93BE -44AB4970CA56BF59506C94ED160FB1E25D3DF2988A532BDB787BFB8539D22986 -FDC378AC31444E63C4727FEE121A43751043849E6DCAC5B59D0FC703AAFBBFD4 -E8B7C268F21615AD02CE9DABEFA27B5FE6A6441B619539CAB1F810F1263447AA -633F5DAF483752EF1A0421740E3A811D2D2898CBF53E7F686C9223FD7235F02D -6F90D2D48CC20AB87778DE3C6FB335E0F0EC20B5DC5B65223FE117526DE2C72F -FE839DF93CB2A7D66CD900CB325F891E311BEC932F703FB4FEFA29DB8B9C88DD -375EC71B3D58C7BC59ADA91971A3BDA1ADEA629CE6CC92BD542CDDFAA7706FB2 -6CDDE2DF07E56D6741916AE8E8744339816F3E6C38062747AA9FDA2A2678A6B7 -EFEA870AA3A4D71B25EE3013EAB1DBA34401B867C7A41AE51E0421D41D3BB83C -E120C8FEABA6E5DEC53A689C21426D4BBCB68CB37568761C360E6D4E3596FB7D -F4DEC7918E58C0293D12D6DDA7E9DCDAAD7C939F55CD1BC4A228B31E9A904156 -DA6B40B08E6ACE674618B768DD681C772A3E55FE096CF949CF3B0460ABDCD891 -D17B37B355B29AB5137899C036F31DA026244FA25FB798FBE5105BDA29F46538 -D3D3AC1001A7BCECE64DE94FFE6C354166A0F97256137BDFA07F6E22A3D1D2F4 -9588DBAE95E895BC5E64DDCBBAA8D0A22C229B42CB717FC711E7E9DF793DF80B -9F14754585A3C7E17F37B32924B9F9870DA8635E3E18BD1DCD81EDF01834D9C6 -B33F23C956C2FCBFA47D84422F583459D827D1E120B97694D12F1F54D02379C0 -D288F7104F3FFCF4F76E3494F4ACBD1BE3A15543CC680924C78A473F8E311ADF -8FE00A04C6C393DE61AD3EDA5BC031E2353076A2489391B52632387CA28A7B93 -FBB065A6EF3658AE80B1ADA47E9B2539E73A71FA75645F85ED8ECC257FB4CF26 -B6C912DE9D0F9899E70BECCB934AD32CF49A093371A9F73DE6255EBC39DE1E7F -00D0CBDABD4D0383977E694890E71FBE5C376BE5F3A80C28987417504F515C50 -909F3D31178BB9B1D085BE514F71B910A9085BD6122DDC72A150BFE266920E49 -5661BCB4BAB51D6DEFE32B616963DBD989FCDD1637B294CE4E288655FBEFA1BF -7F25BBF8CF17C2D5FD161A7C2CC9CC7490D9BF15A1D35B3BFA43ADE256E88BDA -BD490D92907C57BAC408A575EC84D6AEE070148C7C9A91C03B09FDBD792E8FF0 -C0B886AAD2EDD86541E5E579359D40E3AC312ACD3D8FD49F71BD533DDF8859B1 -BAF17F1884E331DD07CEEF93B71D492AEBAADF7A263450A7A72210CE630A0D37 -BF024BDC09ACC882816B8C22C62AE38A3A8D0F6EBC2B1B2C0B8161A8B076DD5D -4B779C0788546BB4CF57332230D237856B00D79C28A7C01D11F44B7304F69075 -94B97A745DA43D1BE561372CE611C345A843834E46AD9DDB16CABCD3FA33D6F1 -F6B5C0497F5EE5400B305CDC16A7EC286AA4D45D0EEBB9DA06AC9C5294D68EC9 -E4DC3CA2B92CE8FC0526184A86EDC7AB34D67E60AC12D9CA8FD300235EC968BA -92C6FBDA47572BC5600F25249F60AD287CBDAE980E747FCBE7EE5CD323E733F0 -63553B494D3DDEB9CC1480B5C3BB79A28E419AA65B18CB297AB383419E890E2A -CE6F98C9900CCB4675280A10CF060B8D220DDA1BE55DFA65715EABCC1AFAA271 -B1F8732341613E17B231231A0D24D4D7FC198AE04D89A99C4536217769C6FBD9 -5EE24A6302F97438F7C0E311C878F674B4477A5ADA3952CDE4055AC408B8174E -86F8FB797646DFFFE0ECA25D1BAB9A9F71F3926D3D85AA63E7A8C931D71E79E0 -AF1EAC26FADE468F4FF7F3861D14C10E3BE1F9EAFD6D3A544E8108D5DAB5B180 -3950C74818BC8AF4758A108F462EF1826647A49667F5E482038C54716856D9BC -35F29922846D2148F92F943E951D7438C73D6A60459A8003174036C64E1629CD -155D47FD04B03C023AD67CD5A70C98AB556EEAB8C48169706E5B352F6505D580 -AC945171BFE62E81F8F500438AC3B64D857BA5BC54C2C4BBB237F8FA51296255 -E66A92A61FE13FDE781D393557EB72CEBAD86511035F775FAC39A0479CCD400F -226709118F887F47CC2ECC8F79816D4A945B2845F50AFD62D8C9A9BBF4739496 -9E644BC9F7B04803B7EE75A09EAE94365F6F374B4FCEB0B506C76297564B9B6B -8B812BC3A33929AA94692572B010E6210AEAA312BDFC88BF302244AB9D587A9B -919823FD01DE12438D960944D1977800FEB49E638C32E5B188B1CA033E0C37EE -A142F746367888AA119535F0CCAF7EAA461B790EB089D2D6962E28A398439BB7 -9C9943654D7A2D765B46BC0DD1F915327F369162E1BA1BA83110B93F442905E0 -523BFF5E279508A98568CD5CFD18FABBE9D17265A9081E7BF64155A2CE3C0DF7 -88D00671AD65654709589BAD7EA65BBA811387ABA5CA0BC3F66D3D48597A0D1D -2C268375DF47CCF62166262AE4840AB03BF49BE67A05EF66328EC729F03CA5FF -AD3937FC053E223303565DC771ACF32E63DFB96D5030E787961D72D02C195C66 -B48E9AF0309DC169CFE8D16E2818DA94693A18F027DEA0D9173633D9B50449E0 -F9026E7A4CC1A3694D6C030E5AE53C0DAAF90B0046E22E14FF2787AC8194C42A -4B8846856AFE4CA20940A4E53896A851344E2E5538B9550721332077A972C793 -89CE532A20FA4A52F80B5D7EE0FF0915523A98E98B71B8ABB4D7F35DA6C05364 -A8B3D5DA9B1716C5C4D4402847C5A9BDA2F668709D51041BD566B7E1E675DCEC -1AF4BD172F05A73329FBB30BC7D1D7EC85FEAF5CF1ED6BE70F7526E115381BF2 -47D955C5032404DA2FD82824C73F530E15E157EF023A2D9B50F4516A611B3F99 -3803C6EFE49E08AE983B4D15CE6699B5111C0A45913DE61EAC437709143AF4ED -0D5136428AEEEF3776F9BA48212963150132D63DB4098AC124EE86C3AC7138AF -B90A504A1E15524BA2662D7E0FFD6377FF7CAA3B6113DAB8AF64837C4A99D99E -A499EC597828133A4C6421E0707E7E978C9B2A459620D0CB189775816D1421C1 -87110675A765C25DC2FB607ECCD8C53F705B406932F41A9DFE08 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -{restore}if -%%EndFont -%%BeginFont: CMTI10 -%!PS-AdobeFont-1.0: CMTI10 003.002 -%%Title: CMTI10 -%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 CMTI10. -% 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/CMTI10 known{/CMTI10 findfont dup/UniqueID known{dup -/UniqueID get 5000828 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 /CMTI10 def -/FontBBox {-35 -250 1124 750 }readonly def -/UniqueID 5000828 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 CMTI10.) readonly def -/FullName (CMTI10) 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 110 /n put -dup 111 /o put -dup 116 /t put -readonly def -currentdict end -currentfile eexec -D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7 -5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99 -8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716 -EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C -02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D -46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A -4B60D020D325E4C2450F3BCF59223103D20DB6943DE1B57C5FD29DA32D34C95E -2AB2ADB3F60EEB0600C8ADE15A2380DE10AC5AAD585FBD13097B1A7E8E210D4A -EE96785449E07F0C8EBC2EC5EFBFD0897DFDC15E5BFAC9584D8DE95C5AB288CD -8AD8B9BEF0B8E5F887B3B0B331542FC8184DCCB753DB6ACEEF98B85756B988DF -CAF1AE0DBE7D37D5F44A2E760AAE3A5197C27B15E32275A64946C3E4D0476FD2 -7FDE148C788DD2106F7C825E270588AC05B57E625AB17BDD02306F9E5FC851DC -32A5A6EDC43C770A71419B2C0C8074EF3F222C8A2097CD81A91F333A521B3A09 -482A4FE1CB231CE344AD126AA284C3280AAC3AD162CF0EE241BFB4C8F20502FF -118507F5D1B5FD898571015E73E5CF2281085072E00D401F6F59761EEC3E8381 -1F26F75DB66C504AB6BABA87D121B1E7040A07AA2FE01F80DBC246CC03C4B2DC -C2A715980C52B7F96BC1A78FCC7F4F52EEED5F705E08FC1E5BBFCAD121FA88AA -8EBE58172C162AF409DBB0728F14923ED02A65EA24E5D52B6AD07777455A70A4 -61833D3789C719BA92E901232599767E423D5AD9C807670BE0E7B5CFF8256A20 -C7BF7214FFE0342809570F5966A2C43E784F35015D9040BA34FEAB6A6F089504 -3A40A9E9D711A2721D3F4998371430FB3C94BFC619559B97D49627BB630F4B70 -9D0A8FE4E916235335C3962F3CFDB04C4A3CF714DB5E260F4E66FFF2F27CEF2A -D4AA26BBCAED23B8BDC98F8F453BA27AD7758537561E766B82DC3032E92A9EB0 -125D98A22C5466AF069BF72A9BFA052A8628FEC6A6AD0B711DFFEDE3AA2D7CE8 -34EA487038EF50F953B8B4471CBA6FC3C53877EC1BC94582B1123EDF44B4056A -30F49394BDE22CDAD7F01951C7013D26979277D18EFA594E8F4F2B5E615187D9 -39E842EC28461B9ABA52020A127D2CB9002A673A435B13C10602EEFDBBA6BD49 -9DDEAB9E68D655443A5C2492BA061C1391A51592BA8C353A6F6A0708E8860184 -2B5D031D2CAB87D618E9F6F7A0BF3F66B3FD5A25BB91F7F1F5F99CFF56EFF4FF -0A35C55658001ED2E97B26C869292F6274D433A5443179DBB8EE987196306348 -3F9E87C6422AFFDD30080C9AC4EE7FE5E2DCBFEE4974331F4AAE479FD8806D4D -9C2B85FC69EB0453AD827A1E767E5C484BDFBF5C8D6E2B3C96298B390F22D757 -802643A79D5E29CF3AEDF0E12CFBECA4663444FC87F2027571DBA9ECF688BF28 -FF0DDB3AEDBA0FB28447CB4B5D5205F40C1E7A525FD7373392EEFFD910AC82D0 -98E71660A1B3227C4A2592F3E853CA4CDF64DF19A52582E167234F4036FAAAB9 -5446BE102DE2BF43E82F0112C2A20F15A3F92C6571AC761665A905362C4F8BDF -AC8705519C99862CD9C0D75113C4AB5FBB83C880E46B82715B5628890D9103AD -A2329638B95D93C4DECDC5E6C588C9D5183EE6FC28FAF9825F02DCA567306D93 -5440987A81B51EE7291107A08F201C609FEF91A8F0587E8B13D4BAF74A5A6815 -DE9E4441F46AF8E1DDDFA2D611C889614040B144A5EC064DEE4638C04EAB2E37 -4CA8F50FB8C4D65BB296DCCCD39F1F554CFBED96670A91F515CA10EF896874BC -8EF48C6447752C70FF5A06F928DB55586354076773BFF7E94C4C3A7A1C1F421B -A9B4E3936EC26E0C19BBBFC90F021E877F54B62108F6DD1C7F6D5B8E64FC9362 -E173F01BF2904B7E5A08B3543611562C2714099DE7D4FA330DB148B560A9601F -42A84452811CE213DCE782A0D7809CFD954D6BC1EBF2BA4D1B18F50FA8174C96 -3E0120E266AD5DDB40B3F6798AC28CDC5C3C4BC34583528F5B5DC8A222B80B59 -A3A93DC715D061EC6915E6E6E21A25425C25E8747C60F170D61047108826F96F -7830E220C108B441B6EA3198E33C49BAD8D43086E49F5A2BC7958A1A8CD011C4 -49045193394696EC3DDD0BE084E8F2E9F0B9496F035C0DEC1CE11409DF566428 -D50043CFF5CDD1092F6E0807E660B68163BCA738E8D98FC6EE3F713164CD204C -0BA84FFF4F33F47BC31750B448603D7ADB9AE92FA91AEBBBEC0DCD66980E6955 -CEB425ED07115B24E40F53B29B9D840842EAC691B4F591F866DF27556474B485 -1C6F53DD72499847109B16C7093984A6B8487D4F3870DD517945CD90E648C1BB -8A6861E540FCF9D75B984B5009B5CC760CBE297042C240DD624111670B703388 -6FE6FC0E89C6B4C88F51DFF3913D0CC1FB4770C8CBEADD4B86393605C0B6C468 -83CA5594754411B6FC331EF56D7CD6D247FAE42E966583C29239A8F862348D29 -60B177984B6B957E733DB4D275015691D91443BBB13C2DA96097A29733CDB284 -42F89C85A7A743338C9DD3BBC4EE53F695E5163E6E1ABE5791ABF100B198B9B2 -1C21E2FA2FB4AFE7F9BB2D381260CDD3A2CC05BF513AA1E80ED69FA27BC5ED5A -21445BF00BC2F997B356D94AF13736C6D3B0613EB6F4CD96A685FEB672661DCA -206105EDC3CA07900676EB2FAB37F48D2E8207BDE1463894DA3C5B1488AC1EE9 -D39DAF691648048F5D7A384B8927F8DA2BE3602669F71D80686E427F395134E7 -7ADCC611BA91AD4B7A0237213C60CF2C905359C90795230344FC3C50A22BD44B -55B2044792509F50F5C21F53D9F9E9F063ADBED3AB99E2613B23334FE8DF70B4 -6120F2EDF69F50BE793EE145B9FF9C73179DE640FC2ACEB5C6617F918CEEB762 -4CD81E665B2E544864D13230B058717B207D3CC5D6647D5343DB4D0356082392 -871EFFA896631A7E0D6477942B632074A9A4EF7B09D4701B1639BAAB4E03A40E -9B54A7A4F845CD63F88831EBFA4FB847847CB98F3455CB5957F2E0A0F5623645 -DBB5C5564C7F8B117D6E27E65C0F3EA81AE67B4AE4B201E7C4FB0A8364FE53F5 -41A7CE8F834C2C4B322809B353A5E63BBA7BF3B7DC1A85EA700BD287C2BD3FC8 -2832B0BB4695FC937FF5EF06FCD87DCE6DE793C2B1EE10E6450352C17726155F -220D550B1759E15AB2C1D5968E52C8080CD280E99D3CCC0E80C2EF8BBFD96001 -A226FEED7311EFB4B67F424B557A877379A15BCA54780F0CD2CCA00400B9B39D -981C6B552AFD2506D1B23618FA9AE6D8143CD7198A8482CB416CCE62B992347F -337D505A4078713BBD91E5535BD58EF0351EBDCD749CC24D4AD39F8CECD7D6C8 -139756680A4C03A58B3374CEC658D30160AE4863A3938A891BB59CBE02BB451B -1BA4B2B6E68AB61DEB85F95E3C909B8B66E220B9F18280161C279F10F7093CDC -100A53D542F071CC0A5AF834DC1D18738F5DD62A5573E884E1FFD22BD810828A -1EA47F8218C15A2E97CBC609927DA3CC2B802EA4A0D7EB57627C135E3B065905 -F97597D818A2C5CC6F328AD25AD11FA50F1E4FE637980B7474D6F85A521892FB -72989AABEBE02A2D0EFE88A6F67AC29F5D8DDFEDAAF465C439983C6B84389FF7 -A6434462BEB7B07DBE4BBA61ACD4A60C55B5C0AAE527DE381DFECA2E6BAFDC8D -310364ECB42CAFF72BA93C067B2F02D1CA7C34AE7CDC46787A0E234C8BE8A928 -7A6F3DDE0338FAD532A9886E8E3525B85DD39364AB03EC4C0DD25DC179CC1989 -1BE232E387E857C78332D834679195E10F1E7B87B7966DA3B2238F53D1E13FE2 -8F55ED6A92A750C7250C9B91E29796621E7E9520373214D7DA81B2875A986D33 -80382AFF6DE1F829F048E57664D9C4ACE91E4684A51023943A4964AB5657D610 -3A5405EFD4CFD1EBA684243E15093C9667797BB47617B66054EE02C41FFEC45C -C1BAE8AD56B00D323FCB1D2744F061FA16E161988741A319B1564E04BA210996 -4F9F02A3268CABE450D166A763F5284954564A1C86B76544C5F5ACDFE0D758DB -865A1CFCF9FE8CD5F9C3B2998C56468FD52DF8EE60C6935A3D221EAEC7714E3B -301371C7DDA0B03A2416238F2B47BAD3A2C5021C886DF51C695AF9C87A864B48 -3BB3FE0B355EED5454B59B25A0D8A1B8CBD356C24F64D9B55E16C30C011365C9 -1E0380753BA3EDC0868788D5F50B9353D0227BCEE1BE36998B2622C0759BD66B -E4444250589F9CEDE766D8B940770CB6B89503E925B35C00CBEC2873D2DC4A29 -0823FB7A3717B69A7DEDBAAECC067949932728E89BEECAA91DE3AF9BF070B9C0 -30EEFA8C0A55C8388CAA2F0515915C98E67FA095BB98967D14B0DCAFA9622E4E -2E0EBFC768D80585ACDF28D8A5C2B6EE2FE7AAF62FFB90F569F84A0903996DF0 -C1D5723366C436E4088F3E2BB9B47F9789052A71CF5C49908CDC1DDA194BFB89 -14D7E3D7D4D72A150FD6FFD8303E9DE5A97A71B808B8BDF2AE466F31BF5D7A4A -44F81230BBE2B456A221E2F72A8B59F8FEA8D31F8A005A5BD93B9F49CFDC3DCC -CE2B67090460F632271C7157BDC2F05BC2749FD562FC28682A616A52D1B67654 -DF78B7843A9EC26A7DE2EB168F874904C2915B97534B2D4D9F74A9573A771D34 -9F7BC855E8F794621BF6AD471BCC347E2DF5F620F5C209E33A4CBF1EA85AEA87 -4492A77342DD33EF615FF34037D660B713C908786D9022051B825226545827A3 -2AD1B05D654DB6E6D261B4E8AF0933AD1F0FCFC7201E1A7C1B4199F160C38676 -21ABA2DDF1CEB655B3EC3226E0B122976EEA998F7A5241F062E54AD1DFD6ED26 -47C99A439E0AE95415059179867CDD3F0FF751F3141309F40E00A6C7C28433E4 -F649BCD5DAA64177580E05C495EE7BCBCC5FBF104DAF360CC2711386655B26F9 -D349D887EEB32ADE595241560FD5924A1745A22E6A01DB9C285EF14596EBFF0F -03F36EB2E0A7C3864F819EF7B0855121292D49482F046A55CD7271FE03F02EA5 -886864D9D8EC22A68C23089EAEFFF03DED6484D8C341861EF8B6FD3C5BDF5AC8 -352DA4E13A1E30D0CB71E090E9CFB9AB2CAFD0CA7C34AE7D8E3B2EB4666834BD -9CCD1AC2108348AFEF6071796F4BB2FFA4A67ED917E76A109FA2DC2A30D744A0 -9AE653A748C1D18FB52595D84E87F1C1FB6B2F32667FE203262C66627AEFFED3 -92B23861E5EB238BB4EDCE09DAE1C65BAFC198CDD1B45D42CDF93E16BB82D35F -821E9E49067E966AFAB2AB52928F8DD6359984071FC37AA652FB834A09E5BD93 -3AFAE161140E74C6531E413E8FBBFC42BFE8A464B71EB1D8CAA93B33D7BCC3B0 -47C7EEFCD3E9FCF26FF9441DD9BDE68D77AD7251C06BBB9A2103049E8827CAF0 -F26BEF33F656A690235DEEC623CC519AFA82DE2AE16FB99F780FD7D8290DA40B -9B604AEF36B529FD184239E7D50561A07428D28E51B55546590A1AEAD4B7F2B1 -AB8C5B9022C1FA03E33F8F409B24911AB8BFCF6EF4A8E415263C789F89063E71 -C0910DC20347469380B7FC1EEB87D4CED7F4A361E58B61C91AFCABA35C03F978 -B9FB5257C31657EE48504C355CE893FE3C553274C641DBC4004F5D5B879CC5ED -D3F21F867F6DF054127067DE86189F0B59A1B90FDABCDFEE61423609D888EEFD -F4A1367129962110C651D9481CEDDB8C5C2576A59AED64E95F7ED042AEAE2F7E -81AC0C408E593DC30DCAC334EDE9EE27D932B98F040DDCD195D6155607DD2038 -970EB78221A94C52BD4F0EAC65F1FC10E5DAA93C17266F351669CAE56F42B68C -6D01E1EA03AE554D63CE76D800FDD9CFD89F80A241EAEFF7EDFA41794EA25CE7 -97BD5028464D2CD45B53834B4AEF8BF0B9E7C6ECDEACEC887E8790A47A93F668 -A9095E5FA1116A122C0E5B74E2226C654D3187C6CFD8807917820423DA3EC1DE -AA020EEEF2280C44A15209EE2F3FC1776875308CEAD38571E7BF889F287E4594 -971A83605E0B4169D4A23EE790515223DF8724054EDAD905F57918FC0BC64F96 -514B4BF7DC9BA79E763C22C977FB6146B10D26FEA1BAA7BAF21312F78D1625A7 -8E242D743471DB5821408AB786E4A7EA9D35E30E85533C617689F95758FB2C7C -392E759C299DCCE36689686DE0C4DCE32649493650BA194A6208C5EAB670B170 -3F2C70BF0EF0E3BE2FB0A79224FF4ECECD6BB3388C6D06867A0E5E3DB93C1B2F -464C23E44D3132E7D4086E3B59B1D13F49EB4772DEDF8EDC4F603217233FB7BE -C13C28648E9AA51D53F11FB896839F97AEDD8834BCA53CB0021AE91FD8E95E2E -F8A094093AF556B9639F508A401542B06821FF9DE1A745FE9AC5CACD5E8E1053 -911442FC15CA5333751ABFE2C617D38FA1DC332BFEF44AE569DC631C93EC54D6 -261583A695F5A392867A57F59B741EFCD2DCFECBC55D1EA5F2317601C9DFE9ED -D1EA466210FFA905A8F85BD58B98991BEA58DFD1CDED5C9B086D42CCE632DADA -147941917B879139E016B0DDEB8446BA017FC8EE5A354533D667B0835F5D027D -C2D580C16B80B3D05CC92C0465CAE077729F0A15B2DAFC89DCD349B3F81D0516 -C65526EB5C10E45A8A85D716EE35FB9AB201FD7C89ADE5AD925A174169DA20FB -61E96C73A143DF964C20589EF24A0FCFE6195317F2FA0D2249C0D8E649C3D9AD -FF13332EA2E4C9CD36D8443EC8F027B61CEF92C6A6B72DD4ACBACC16E429A9A3 -F5F29C1631360E32F8C1C93ACB22F810B86D2969A7480F486F62F8488BEEC74C -2C1AF13BB92BC578E8CD30BEA6BC8CB68ED730F54CED0167605FA76AD7B7E88C -7AE7688E598F91C471BD65A542E96D64B1EAF19FB4F1234308C48C2DC86E2193 -11ABDB4C6189C6F201627C693691A86DD07FF55C30FDB3F72381E09C6080FD7C -9182762E5001E30F52A216E0B71E4D2D4E2F3B20F95DF3A11FDB2D2B5B5FAA66 -C46226D5E0C77066349770514E5675550FAC9394FB27CD2C2F974F1FD58C04A3 -1EF53A8AB3B2202CCA1CEFA66228E1480A0709436C44BD3319C40CF888AE4692 -5DBBB52B15CF3A518F627F672135A24D5DB9B2EBEF04C860AECF231EBB5A3BF5 -6DCCD5E72FE4B6DD29E896691868A7DE4120AD06AC573F5608B8449B38E71CA0 -EB5CDA3F942482EA7973661170F81DC88D54DD5B92323F46F833DFA757107E9E -F62A47CC50FAA1B68ED535C3E0E1073532A05ED339C8D70B3B9864808ABACD23 -AA95E9FDA43D54C66A675FA074E0A5B8777D3C07850A09087F36852B5351F35D -8BC4DDFCA35CF29CD5E3DE118A741FAC4DED36847F2E2C6CFE08669301722D94 -376F540982958074E7F1383C409652F6C99DA39FE90B38221E75BC1ECB93ABF6 -B00F410A0C5651DB418566AB350FDA1789AFD88286AF3BCB42B98386F7BC144B -02DEB8940D20A6B3062F0C4244EABC50923390064F1D027A8BACC3DE45156E56 -4A942D1B87F1C4A76B0D4D6801AE792CCAE3009BF25368B31B6AD5476FBD3BFF -9759EF463EF5E78E10B7BF64005B2ABE0E8813950A08A1808587A98E0021D0DD -751AD515E8278F1A0759E85D8A084490BBB0F8206484AA36388B1013643D3198 -3509078847BDAE08E76FA5BF3E3A73C323CE093DCC148E3C02C2DE1E26C94D5A -40EC8308ECB02FF7DD04EC1005A2A0DC74D4E587F10A3EF349E828F69FD38962 -2F0C74D5DAB3ED6CC9F97008ACCE74C086A503948DEF1AAF58FC8BEC703CD360 -D32098A56AC776B1BD08442052A2A4EF6C8798F7CDC102AF1A2009657254762A -0793F79A39DCD6ADBAA5EC84A7ED6018BBE727E5D477893D84F157074B24C13E -8D4881C7DF8ADC13EBA0D89745EF93B7616EC5355600BB0D2B630AABA3CF2946 -AFFD0B2B724EF0F28393F3DEFD59E05F83ED622EF1906B1A24A599C58E9CB8EA -E9A28325A5DD621EDB3642FC06FFB416FB3029ADCFE5D7D23192C650FCD7D1F8 -ED7AEDC7166E26191B12F8E56F060D2D08D41E533813A8D64E5B7F2F151EC8E7 -E2333ACD6F78ACA804CD809616BE4342A5047C07E7421CCFAFA7B057B6F5A801 -21254E447FB15A8D020E976D8544D374B3A5974A7F194FDB147A2350923DDABE -457B7AA8A2D05B2B993D1E3D64D048CEB465BDDB93249897B7470D7885E09640 -0C493522A4B260106698DC076B24ED70A29B29ACAD8E0976BC0C4C647716BD75 -A008490BD634504BD01639C0260C04DF791FFA51D5BD6DB0B4881071E7BEA3B3 -B457217E778ABF7E5CDFFE6E0408A8414C68F7BB0D5E2DFD34798763D6EC004D -0C5E1CD575A379579F80E0036A8D3CE7C9A033D993567AF9959567FF8FC473C2 -A2545ED18E039847BD1FEBA958F0C9E5CEBFBC3EA8301823629A588F77AFABB6 -5309BAEF9A4E762A1C56434E83FD96ADF1129585E409D3148E4BF724A0E0FB52 -8655FC71A34655C85F6D8A0CA2801A97547AA83ADF8C829D0392B985C9F2D60F -8105103B2EB1600189CD93ECAB2449CEBC5D364576B73EB26E8EC760AD31848F -065DDEC8D51DB284D7395A719237CF2262946EA7A90DBF818272ABD8799DAD3D -98FA7ED773708399D198399306D44717CCBF6030C5B68A5FA420B0132974120B -D9C8A6FA8D096854AFBD4DF4E9188CA4D9CD3AFD65DA452D7B642DFA305F8627 -2ED7406E4E11D522C3B700C1C5D51131D6A8813D89CBDC469AABB4E8EC4A5649 -EA75095BEDED116B9CA61D884285A326F1527686A507912D8B44333032BB168D -58A2B5532A76142B3B7F2157D17E70FC65BEC4A9DF1830F40A19FDF862001A66 -EF30F571470D58962352EBBEA70134564F6BFA8D0D3E5738875018EA87587137 -990C1F817EEBC1C5EE77F4001F9B9AE40ECAB505BC87EB382E6D7D1328E391B5 -6925F46E63D26EA1539FC422C4E7C70D6F8B3EC291709E3E38E4BF8A613D5973 -FBF6EEA30CFCD0EADA75E9C148EA563A0EA36DBC72D99E72D3EC18EC -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -{restore}if -%%EndFont -%%BeginFont: CMSSI10 -%!PS-AdobeFont-1.0: CMSSI10 003.002 -%%Title: CMSSI10 -%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 CMSSI10. -% 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/CMSSI10 known{/CMSSI10 findfont dup/UniqueID known{dup -/UniqueID get 5000810 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 /CMSSI10 def -/FontBBox {-97 -250 1077 759 }readonly def -/UniqueID 5000810 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 CMSSI10.) readonly def -/FullName (CMSSI10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -12 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 44 /comma put -dup 45 /hyphen put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 53 /five put -dup 56 /eight put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 69 /E put -dup 70 /F put -dup 75 /K put -dup 78 /N put -dup 80 /P put -dup 81 /Q put -dup 82 /R 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 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 121 /y put -readonly def -currentdict end -currentfile eexec -D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5 -45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4 -7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7 -72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E -BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89 -974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674 -11453BC81C443407AF41AF8A831A85A700CFC65E2919BE7E94DF619E5D4CC604 -78288A019B254A5A0A8E2D5ED465C9DB3CFEF0F444DA2A7DB2022495EA1B3FF8 -BA3E769C503BAC77336BAAEFA8F7B4BCF9BD63253ABE621C7C696DDD22E0EDDE -ABDE1706338BB5F604B4F42356E2A96751B8EAF1112A1BE30B618E7F7BAA96CC -A264B5EA7138FD007E2CBE19B1F008AE13B47252D2956A06299FB28035624C39 -08E9E5A4BC08DADE08861DB9940F6F0FA67E97E9A73C9F41525E865D0BF68F8B -6D48D1595EB69B3FF78F5F4B18470370BA219A010F9B5EA904289205DF20C7EC -91A2B866BA05251BD3D00FE5229CE2D2F220B6E25DA5B3C0EAC68979BB312E2C -532264814FF214CBD46C8B9C8E45878C9E28FF334C5CC7DF9D378EA5A37986DF -0450E2D5645371B8C577C28A008AB7A702E89FF337A17D05AFB0FDC55856AB3D -FFF997FF51AAD70FED81A5D307FFBE26E862070E361DDF6D162934B7852D2FC2 -F3FE611F218E28CE0B964BE311E59D8729C7C0FC2B2D5781F73C87D64E6388D1 -D7798FE70E74E76368174F5E055FB8CDA3809536768B0E6028826436C7E6454E -895EB7E435FF8AA342BDAD46A2C7BE5FEC83B8AD16F2C773F55F58870E70F2D4 -FFCA12D89B06A706CC204383C0238C17EFD01E0118FA4CB77681CB7260BBACE8 -30C8E7B16669700F884F234C36EE9694841EDD4FE5644949AA28AE2745FACFDC -CFEF1590F99B0DE494BB0851205DF4E7F2EB88CFF794DFA7958F6EC9197021DC -D4C3590B2729779345143AF6C349CBD2F17AEDDDC23AA8F0998C27170C44FE2F -163C1E2FC314C6CE27D6CB497C3A12F6D10B92D699E1578C23B5D9A907EEA297 -4BF7D5C4ADFACA310E61EBE5655745FDCC48B661CC2D3EC016A87632AE410B69 -C2B98B87D3F46491EE8611E31CE17843B05C05924FA42FBAD7687003C14599DB -08D72670855271EA55082BBF6AC146D452C1531338138D9AAC7E4D2F0CA1FDAD -11E4CB830A9F38A83999F6F0ED15D12FA631B8604D4E3018E625C8BABD8E1075 -93F5E17CAD3CADA2210088E71C02CC6654DB4E12F8C2B6B7EADE37E52FAD3FD5 -83E45B62FC9B573A6068EF3B43856CD4B6C3E096BA93728B05AEE2BB96C60AEF -58214FD24DEFA63E3FA299289B211A57E4B0CE9EB58414FB78E20151BCED3F4A -9AE6B1D7ED559B3B619385AA8496D6F56D2B353E4B1BCCFA0A50247E283B1540 -4300E1119F710664ED5DECAAE9087B8C0CBA63F3FA09F217757B8448D13648BD -D16FEAB50D245C198EDF27C8628CC7BD02385EEB04AF8F4C76308BEF4D640C8D -6F2FDA7BED98F1498CEB1226F009BFAF6425265EC0D13FCACF4909B7495F4211 -BA32B04A3B0BCBAC89D6A9088C47C47B4BAC36FB59D9B5D73B2E9E926A9DD183 -1AE00AC58E9485379FC6DA119EEA3F6E478F22B60A464F192B2F43379407D4A8 -795073B4309C27D8E945468055493D0204B4A57C39CFDC951A04E0288775FCFB -DE3993852671BE697999C9831A33CADEA75B369C179EB8A807CFEEA5CD97BC55 -1B0EE49DCC4B6BF4137124123626A5C91603B01B4E0AC759526C129F6AC5BE74 -B77B4E431B596E29C17BCCD1CE8279E9C00DF7557AB25770FC9B02762D7EF141 -84FFB4730BB8451A485F784A34647741D9B8D2127D158283E01B38BDC39BFA8D -EAE249871ADB347827989E11FAC23F76C2389F8E883B01FFD1EA4968B44D1B1D -760A1FC8F79B50385D8327D6A6381923BE9A2FB8AB0CC6ACAAF5C7701C8F7BDC -81424F63D2CB312235AADD050FC4B71448EE02B7B25C82B6BFB070261919DC1E -32F5E6DD4C38691581D472C254BAF83D7F568016B5AFAEC895187E88AA4D05C8 -FEBB3AEBC348AAB84907BC4D85C1F888ECAA5ED2714598384D7369F5FBA0B92B -ACA0B6BCD2D22F9F10B27FBF11A8AF204794CED402A3597D2D469A99CE64BF1C -9242867251B8EFEC0001A1ED0F470A4346BCD9DA22C005A079EE1DE3E33970FE -56620C318D2FD3DD9DFBB773B4FEA7FEECEA9FA1923AD4B2F49DAFEF48E1C529 -DBE9EC77299E02DEA39C7B91F9E4F6D68EB224F4555F53E66CD00326CCB5FBAE -70243CDD407BE63DF7BB85E70A99F8B58BEC1562C290D8E50666E1E4EAA484DD -487C567B7BBFEED34A65A6407E3D8925E3C667AF40DB0EFBAE2C07EBE60A83DD -C1A02842861C994C4D314A87986CC94EE74DD4E29AA9E70F393CF956D3BE586B -AC618055571DE00541BA60D022DB49CB62C13FFCB3932DFBFD2D52C8F0C72F1E -9337D95767E376B80AB35264405CC5C385ED6DC9F95535E00C5252DE66961AFC -BC7C83ABFCFD5E0A055E37E7D261A19039D47EE792CA30EA673F80C48C0EEB20 -DB21686ABD169A45DB94E35FF086C9946F51409E9E0836041081B04F861838C1 -87157DB76A983928BB4122798551318EEB70A32C11A412FD56B7805BDA93AFCD -B11D35FE799224AE30C3BD09D971AC651D06184FCE45D898D09685009DA35EC9 -CAB63751F8241297562AE2FEB577AB074D36381B0E5FC0DD5572E3A3079B166F -56C42FBE6147FBDC7EC2ECF6380A70F87D1E44CFD02A70BB3AF4BD9D350C7B21 -5DDFD4FE288F0D9EB2FF4C24612FA759B41D0854C04163DC973570B974BAD7B7 -BF766AD59D543E808E8F56F831472ECFEECFA7BEA74CBCCB025AB04079AE0838 -75852BDC83E1D723824761459DA6A8920A27282043C38BDDB43157A70D552072 -400E84CED5FDFDA0F09DF94431956F304F6E92F3DE5F99874F995B467E2038A3 -B9C787E650C4A31B2FEFF078BCAC93ACA5816F5DC3FCE322C9DDB15E34856182 -BA15F2D56FF4E91573BD2D8B34767974BE928F10EDB3525C2B259F320DF99B88 -87801826F2B6AAB2C178270B27730496C44CC83C8036EE6D7D33D6D4C0D871A3 -62B7BBC8D8A4E86AEB2CAE76CC7B091B7DF5516EEF043C7D2727FE569B2E28FF -F6BCC6FD3696A85CF5ED26571BFD346494CD6C0974BDE257EDD4A2C53C70FA89 -C81F9D32F5CCBAB39A7C00A1BE116FA1254F291AD26C1DE4CBA27BC03C5E5561 -8E960A7169F86C0DF884419ECAC607FA82B00CE0B41F7696B2C384582AF6A986 -5A9FF800D3A1F4B6C2524F1A4300B9FCDAE2C2050B9882BE4F512FF539FA6BE4 -C9577484EB323E7BFA5BDF628875A3634214B14947F7C16541CCE359F72A0E27 -C0DB4CCD1653693F7D0BA68D02D5A61AB516173E794BBE4C2C3F34ED9C33BE3C -4A9E20A687498DA1DF7BCB1F6C595B90A5730A10070A54180318A1BD01844585 -E78C6EA28EEACCDCB49F1CAF1D21EE97B1DF74523291FCE2ABFE2C000E8F061A -7CAEA494183B9261307CEAC6CD13B362130AE56A651DFACBBE7A6F6747CB61BF -F94BF393769F2A1BD493E1E6502A3507416984FE0F7E509D901A106B857E2448 -7284E7ECC2D316EC1C54EE4FD7DC9972DE33B46356E414C92CF8DF9E472F7FE6 -7404362C8DFF6BE223B8886503A83A83348F7E9F88726CE068C904D45496494C -641E4443D9474344508ABACF3FF3424383D79A8BDFE6E9D9138E660EB3FFCDCF -8F4E01B24B3070E8B480064D946D0D200F4468EDDF7BDE9D3DAFF03B6D8165F4 -0CCB584D542D40DC72554A7597A19EFF3BD72B8520EA71A51048F15E2CA53F3B -C3432278CC19751B38AEB52534BE6CD9BBD489444D313F8C78C2C252AB25AE6A -5EC7D05F3FC21202C4B30A7FF9E1BDC6AE3F6B39B1E09F65E95292FBB1915D20 -44D7212A60408FC0F5A2E957BCEBE93DDDAD35D05D23F7E58A3602FB3FC1D431 -754A3A21F181C437437D7A22C402DC82275DE903E256979985B6E794B459FEFB -393317FE573DAA5416AC52AED36AE9E79040097E2BAF6A0C6CB68C346E4EB059 -5E8A6AA1C751CA4A4094257C39ED48FE4414BE73B4E0BF6394FAC05CEEFD1C3A -F5F5233CEB4625752057789ADF113E1E2F77F5B471A0AAA761AEB46CF37C2360 -E701B0DCAE13D4583D8DA516BE2E264230DEEE5053AED15368B6CD81DB761A49 -9987A07FC48E1EC246D04D80D86B32F7A093AA23B769B0DBC554EE48DA202C28 -55847E3D36D80B7C8E779DFE6EAFE3EB35811A1EF80DC639195D5810D90B4DB9 -6BABF8F4468AD92939567DEB43BB00CADB46964B73AE13ECC82C3A57A63A23A9 -92A46206C70B027CE34FB81E6919828462F8C2166AEBE9663259CE5D4CD8084A -8BA479CDB203F1B0C3579B3E0B8B8E7AA616D798970A11423C391C25EAD95351 -A46A856512518A92C7693B42BE92C2E375047E9DF8620B624AF8DCF2836FB1BA -801C822472AAF5AAA719038D3B53D0AE481753F2EC689394CFF9A911C42BE535 -C5B4A187712D487C63A0C8607D67D1DBD0EE766B526184768A93416366B2CCF6 -364F2D24B44021D0935CAEA289B120A613378399B53E2B50C11F67B7DC4BB1E5 -861D745B7FA3C7906AD591765884FA7D746A19EF86C30309DE0F43D4747EA290 -8E3C68BAF4D5F4C0C4E08DCA301E46AE3A0141A58074BA2EBBAD8B3F326C240E -ABE33FA5AC689444E7E04B78C29E49D3A128567D08E712C5EC42EC1BD3D95E19 -5A7337B8AB2AA410EF1C0EB31D5766575340016CE477CBA3478FB68A98362C60 -18CDC9BA410A545AB339B2AAA2934222DA734F6A1AED9942B43B18BAF77FB63A -71059FA66EE04B76730B499FA022A52139BEFF9CA6CE3F9855C7706E3F804F6D -D622A6929D049F921079DF979F31828C31A73CA0238C0D2F11BE2FD68F2228EF -BDE9837348C10E9F08477F754F6343A39736386912D6BC865BE30D1862BACA23 -0DF2061049CDF9F894D73A549C10E7BE7790043F9A642E4676F9DE2B934A7F8A -7B0917DDF3255E6FE122D88DBD80252D0C1C8047A13F835E3FCFBFC0AA1D92CD -F1CAB8D1C673EBDC5601B84615F513E4D9FE1F8CBF2337C9FFCDDAC85B6922E0 -0BCB0DEF0FA647E6828DED2F5B20F227AF3A792C0C63AD888D7AF39B10171FB1 -A24840EDC55158FF3D8513C89F666A2DECB4AA4A1D46503919A4CFD911977DAE -4779F23271C23BDF14F4EF8352D9C66A7C24100C28CAD7BCD89E6E344EEE173F -CF8BD462E1C67F06D73A9085A2AD1EA3DFCD19EB5FE217406771B80C8A3EE798 -A4CBFAB9AA93672B8FC9D02014F7076FBB477A777867C6A6AF2E6FFE3CBF3917 -1E4F68BCED22EC345F87A92480F4568006BAC16A2DAB940CB9F3462D254614B7 -78ECD86F7C3B3A7DAF06DA2D790F353D9254133C38D668C38082D0CC1BDC226B -4A7EBB1460735A5CB04BCA4D71995483CDDC9EA7D3E070C00D5EA6DD4AB539E7 -E5C8E436656C99F30B3B464E5BA6CF7025E098C1FDED8B76260ACF62D1A08DB1 -F126517B05C47376D20C999565399B06CC686A817B226101AEE3644A706F3767 -372117607576BC2B9AD2637DD13C76F9CF2A356F1B9101496868EA8875C94C3B -D181936A02D5387D1C3C285F2DBEEA25457F6A74FF7E00449FA41878776C0DF7 -C58FE07009574AE6B457F3BDE448E71CD04AC7E3C22E0CC8AF56B8B5611C4014 -3CC20A39A5FA3D9F6A5599495BA0457109823CE71BAC2B7057AF826DC623213E -A6738E640DAECF08E69FE365741CFF8858337131B53A0AF9E49C3655F62E367E -DE824A37A5DA853E1DD5970EC07D3594A59DA1AA85D4FFE3E9E7745FA7FC7F2F -AFD4B9405C7907F383A5149D4DEACA083B457151CDCE3BA5F0C350945E8B92A1 -635239241B8FAF7704E3013EE5D21F421254F23194B537C36F8B673E70073189 -8B2DE6C30159232A2D054AB8254A450759ACE9C0B94DE035D9D6E5024E8AB56B -644A5C3EF00A5B2EAC0F89C5FE8D7DEB9BC817EF1F87C2BBD956AFE4DD4B50C3 -A3BA4931A32827E612DC3059E97069D3894234BAC0E9AA1DB7B7EEE7F97C648E -0B7E7012CA4977258733C72CE466A2EBA8F2B391BDB7652BC07C2343FC8A4B5F -7C6B926D1B751BFFC6FCFDFAB9CBFF6D630CFC8BF374DF4DFB4B0845237E1E0A -E2D044324B4F05C8C96970451C9348E8AA6F1153EAC8BA1C57FFA09B3A181CF1 -3EACE89F204BDBA7884FF6F90D1D0CB578DE1CDE56F526AB11F9DEC4FC09642C -A68C8F1DD2EFC7BB301279F474967B1B10DD7FBA6B09B95E7B4D34F66CAAE07B -F792BFE7755882FC790961FAD109A7C35258021DE25BB14410828F9122E01428 -D72EDC917C835553A30FBCAE5D067266A205DDD3AF3A4734371426968A7BF7C7 -9F48A5D91B596D765E15356F388E74D100B2243D230BFB33147BBCB298320930 -000670CB15B7EE9C787EC751621851C3BD5EA6E70FDE66C9834189A9B0D796C4 -1FA4179D594B7E8A39987A3DB806F337945A02DDD2B33D43F1E39FD20F41CA25 -BA3B5ECD3B32F961F4A98BE40604BF61732690F3C8B247C6E381AED4F277788E -223F8EBECE8CBA7F48801118966E39D4EEEE3F04B254A87EB21C2E4B00F15AE6 -F1E2E59DA6353A45BD0A5BF4B822D86E0E7237809C1F0129B83BA2DF82D5D54A -522697FD78DC73D8A75DC6BEE09FC523E5DDEA837BEDD90DEFCF214640DFD4E5 -477FD73B86A08885AC44CEE72F0E27AA63A901F2DCC7C42EC261EDD9699A278B -507ABA7BE7101057297C6A3D67C37D61CA4015E7A46C30202617F3585D719309 -7DFF48AF4FBDFC7DD9F66E9549B8B800DDFB2D8AD69B3C6D2C3410E982559191 -93498926825E6A96A2CB12F8FD15F858AA28E4F9A9D1457D7B9AB16D9B9D4D45 -8FD6853853DF5851C529D134CBE17C6B99A8286519535CC1368407909A5B3CF3 -C75B4F86A40BD2EAB1918F03D93A283EB119A8F63E346E7502F0CFD12369B2B0 -09A2AD610FD210E8CBAEF4C0498B0E53BF4EE1A00B0C067C113F88E5E000E6F4 -FACE37B09D72B4242CD320E4F72F5E123E5578ACC48F604124A0A45559E1DCD9 -B58D9EE14F3BC6B4452B9236F6A3CAD7FB7E7D5C949DF2875CE44537DBA8B1D4 -C7ECEB76F55EA06D56209E0BAC984AD37A459B6C45B4D7F8B84CA66BF274F1D8 -02BF247751733715BDCAFBD55854B0F436BCC787F66B44784838F56AA29F83B7 -7D46F0D88835E45159413BEDFEC525BDEDE44291003D313CD2268E240C2388DC -37380A430557D988332DF505B16CE488AF68C8F8626B7EA790121D6ACB87D94C -83418919E0CAF58E41A3E036DF13D13C6B107500902A747CD7D7BF12235A766C -00539129C31EA3E738733C4E443698673AAF4E9588AFAFBD00577721011A12BA -D556591A82E2739AC4234917DD7A850C05F595BD87E0F7719D42DCBD9D724C85 -520006A9069E1CB2557D2F97D7A0C54AB564DC62759F793D60A4760854AFB05B -AE445CB9131D0C14B6A6ADFE12DB225684D8254EFD295E7542031CCADC4B27E4 -F579C84F35DC502F17DAD24C1775F15F505888F0C3E0FD42357ED07FB5076E78 -E862016F7E5835CD5BAF87CECAC4BC92375B426E9512928E748E0328947B1844 -E251F3A6E99BAA5B97045D1ACA798296D0CCEC2044E59F32075BB7CB7C636BDE -755916CB59C802761A99B211EEB550EF9BC14AADC70818D0053993C9F299B3D5 -AB1427B463A4D76459385F036A95770A8157D225FB75B2C92CA39D1AE7411AD7 -19AB8DEAABDE9A2F7530B474CC7119E4335AE12A9CE84BA7FA92AD46D6A7AD54 -A676EF1B2B0F3A73E6FB24B20F9702ED522DB7BC30DD2212ED63C88128ED1FA3 -7B05D70B0BD95BC58F1330343EAD91AED48EB4252314CA3B7FF921B61E040858 -EB3F545F8A8ADD86FD770249BDAAD02613AD5A45C3997E33188E59E004E2255D -BDC14AFFD80F49365D5006821F2A4A2F801820D4D1DA9D11F02CA514EED93425 -742D97CC8F84E529FDE0BF4C6437A849A6630BD6760B31870D69C4C15EEA09E1 -831354F7C4A70C5F04DDB4B27952C3745B76EE5B168F047E59360CDD5D084D3D -BC8BA0C569C7DDE62033CE401D65C35DF34D2875D4E6E83E7854E73F44EDBADA -9368225C6160F4B0C4032A9800198C83EABDE656CFC1C1B65993D629A1BE0263 -41D83EDDCD589F05D1135AE5FDF759260CAA81FFA75E52E7721686F09ED30B6F -A7E3A8B23FD647A7156FC46A098835E130519E9B03D51BE72D93AFD1C8E26369 -1003E8DECAB113FB42AFEC3EB1B58E4D4C57DA6A7EFF05766E9640AD6221244D -863351C7E11AAE874D2C37B6AD9F9324344621662E0F626F85F2466C4DD58751 -8CF9D2ABFFE134E2281BEC8D06F7B41B1E46873EDDD6D5EE7953B988399A6C98 -57B8186F02ED58B05FA74B94FD084CB58F31EBFD5EBC64404C2DAEF49047078B -06C8A968F278BA7BCA00EA900B268D520162BD000C1F8359A11D488DCE3E1240 -72620E53A10E1A0B555FC30C8CC126593508297A962130FF121C9621988B5909 -B8DAA24AD638AF9C9E4B9A8A99F13E8E0E1A1C7666BA3372C3432B5BD650F404 -BA14C3E9EAF67AD47B14035E4555E73E38D51BE87D6819BBE989CAF6F7B670C5 -B0D37784AA64A2F9636175C36B9997A071BDD275850A4F13A09FF65D57BA71AC -87EA99A7C3C898D707553AA905E009F13662C2CCB8A22A4D6A236642F9EB8BF5 -65CFC666A8087C4B9D2B67E91911E03F9D9898B246E414AACB8CA8A22522A688 -2F513EE7D3DA11312A2B33128BDD0D9611564C99CDD4218B6097B1A8D527250E -D06D7A6E316CC400C43D101C708062E98B2E3E6F0C2B4843A7615CB8F7A62B41 -1B6E77C241BB03BCB2A0FDF5C777A91F0B28330E00E9D2C9BF34F9861C47C420 -B509E436C446CCEC37AE97A88E17EDFE1C1451E1F922E7D6BF1C07FCF5BA55E5 -086C44F64DC8CF01E5B7329985500E0843243FAE19FFC776DD40D3CDFD3F3F5E -380A603BE26E115F1581FA37FDBCBC3F74BE8B7481B377258AB9883A9FAF4AE0 -2BFB5505446BCA1A571E27A0D6DAAC312F7F5893A55D366E629237CD018458EA -ECD90980C2E25FF13A928153E48347A50DBC46E60BC23F2AB1A25255C7C43B56 -ACF69FE81D608DA6A4744E88A4E6B3BAD37085DCAC470CFF413429B3CB33647F -DE74E89C657FB6E95DFF863F70B0FB9C9AEA84AD4026907A4F2F1F5B73394E54 -5F24857D07F27C2B7F05565BF9B8227CCC870E578EDA8333B280CFAF6AB53FC5 -986EF9B3DDD2F97418526B89F3C166735F1E9FB8DCDF274326E41A9475789638 -29DB011B8508B09FF0D016ED1993382FD8B112AE89215955E34DC8117544FF86 -9BBEDFD821636C4666D5F85A6285B4F072A6B2BB39983E940AA149335E5CA57C -9227EFDCAC25D1389D048192A848E2B57A0DADBD54D759E24B73CF56A580C38F -6C0A41FD898F28B86A7E35F1D9C6301237C35828229C43A10D5C2F624EE80616 -CCD087884A919301754DB026DD7B5D0BF7F92FDD3663935D92716C0A6D73E432 -55E60BCF8E257E2B16BFE9BCEB5E1CADB082EFF5BC8362760F9DBF482AC53550 -DE8E7307CC94A17269F4E072C214C30965FF8001302A33A6682FF1B646E7FBD9 -82FF696174772548F04BF5703272CC5243915C0BA12E1E16A8A13FF1CD91832D -14EFEB996D87395BE57985614DD69A438F06D3EA35C1984FFB124253DF153BF8 -7A23E50A601A34E20EC2ED6060B4A305BFF150E99F8C1DFC5FD0B149AEA55338 -4CEAB0B7673B8B33D18E2BDD3BFDE7A0B0269645E99D74B913CA74225D35F3F0 -4B7B868BAA796203E6FC720E6CD5753ACCC84BE4A4693D83A216C3D2EBA24606 -EC2AA7D30ACEE8DB8724D14D4DA28FD3D0BC8CAE5F05E8F667308D5D291DC1A0 -6A04107B93A6F3BC4F5C43DD989CECCAE3C263F32E1D87BE884203FFF304CCFE -AB8D782E001263982E436750E53C5A21BE7B9F25D6B6CE178C529CD741BC14C6 -A9DD3CFBFBAAE1381BF375F622054AB84E487A9715EB718C09072EB43F173BEA -EE0A3D981DF89F3E2911C8D0180B2FB117022CD3BD2728FD7A2B210D22863741 -5B67D94A4512A6CBF00F451E27AED24BD1E94D2C33CC1F5BF10618840106C79C -0A70C547B6A739AA763B975C5AEEFAF3ED37DFCA33BEFBB6F17E8DE96E6E9D93 -DDAAF22A7F369F9564E688729112E25BE2C8952B496196705B72AE20FD65DC7C -177B4564AB3F5E2C0D744209BCDC6E7D732071C9EB9F35386C29174C110D3714 -00420597CE811D2A891F845029FAC350278A79641FC2E62D8EF85DC4DEAD6362 -0945B22B25EA8ADA8AF3CDC1B907510BC028EEDEAC9EC1048B64B576D3B95FBB -0864D96DBFE6408C5E680717A4C6D6BEC5D997699DEAD866315D28483F96CDAA -490643EEAB079C47836DA0BE6EB432467BA84AAB278888E0E3520072AD999759 -B3BB99066BCDDB347467C1185CDD9BE1B6EBBA0D1348D1F4E41A78FCDBA97AE8 -D0A3A4619754685259ED1F24CDC39E36651307384467D51D7E15707B8C0EE506 -1C9995949B334E4891E0107BFC45849AAD5D13CB0500106B9E35D30F4C201AC4 -6C7F64C49DFF7921BF765BA7A840F757C192A21986765CC69A0B8B5678BA03EC -06392E18756AFE81DCDCF2303EBC515E7314A2F030D6D5982E971B6E76B75553 -6EE103CAEC61923735BE23826E6188D2026B9BDE6D5EDCE539AABAEC01D390D7 -1036913A7D9149AA8B386999B5A78B7EF5315A0A07D6125CB2A3E0C6A6FCBD0B -627325730E613C31937DA670530780EEA08AECA730C1246DA651357B7E4CF808 -ECF5E9E2ECC28357E4F5857E21396BC04582D0CC7647049A830AEC277DA82E31 -FD28E305C18C408AF4C2EAAD1A780BC7165494EED0B109E7A61265441D0FF0BF -716E3A275DDAEC49579CEEE0CAF3C1BDD39DE0E958848550405962DE23E298F8 -EE78171374FB6D4ECC267AAE3A44E986CB5067958AEA67E2F5FAED6F3455395A -C9D57CDAC571B5225619FBC801C322004589CB676D04CE4003E534FC74AA77FF -1A400A6888EE3A1F395D31CDC412C39B27A758835DA380D319A7C4586FA682DE -4C2C311F3CFA0AB281D2298B97053039AADA6136ACBD090582D552F7E5DC2335 -2F3920C0B7AE12AEFEF44EBE0E5C46F1C8723DEC22F8D4A4081C88105D41D305 -99F11751E1CDE4F9A4FD1DC5F46620B18ACF5273A0556B046C2CDF9272A6B093 -9EDC8F4A07457095C29D741DA644540C97C8CD4DD6422931A875B7D508ADE031 -30AE4E53B076358780D154B8DEC44CD4634415BD6F6A5ED4FB67B6C8BFE46E04 -0825E942E3372DC12364DC4258D4581A53C84F7B40FB8C2AB487C40C076FB2E0 -2119C09604DA55D04A3CD71A64FE3CC40630FCF4526CD23D9209C38A63CEB5DC -5A38AB584937F75DEC7849C7B87B986D2557EEC20A621101055EA371E13B0F44 -695CBC4E1399DDC577E9B254F10144357C88F1F6FA97B2E7C589BFC16A4EED08 -85B17967429FDCDC16A22EF656935BB2C5AD7C1F7730EE9CAAFDDC680A876555 -0039AB74B913EDCA4B4847C9EC328BEEA65BB634FA3CB8A830E3D244C25ECADA -9C3F7B64242779AC2CB12A43A90994D3233D447EE89AA1439FEA5A924AB77B15 -0321BC42C8129FDA3AB471AA002F9EC629E0E59D792A6EC43C7DC815C83BD7B3 -E8859C3CF707C700300BF475F585B2E61599AB988728DE07E8FAD97794F7F72F -FAE04D436AA069C28DA27482F62102FEDD78B0FBB3DEC60EEF6F3B34CAD38DA9 -4C580279EDA8B9978315805539D3FA0F91E8FE31BCC0D841EEF75CD810F95714 -19CF1FD5834AED4C2ED817B62E571D4C42971788692DD2C4323DAA4032323A2A -1F8E91BE8CAEB35992C890159DAF1EF50FC2A400CA13F716A694FAC7EB165714 -68133A6889C968D989CF9A3130AB5DB9EB2403D07EA6B6A9790B31F54FD5D039 -749D2B1D5BB579570600B5C051F83E2EECCAD8C087879270B60AA966C3FFE28B -C8F7E805074D665524205E93B828909410FEC4494FE71D2935EA75B8231CD600 -B13411538D73B2EDE351F5C135A4138F10EFBC2EFB255FA3583B90014BFC5476 -5D9DF52DED61C7B8D1D03D2AE323E2F97448546BD4EEE26C24AFB1F0F07B461E -7DFF0C40040385B56080F2D4C0F9614450A26A73FF410FA05DAD6865E207E3D7 -CA06CA08FACA85DA4BD5494E2F6E59040063AA4D5554DDA97AAAE956C340D46A -04A3D90448FA9C2E4D803525F04FEA55FA48FF888CA9859560F90EA2884F04BA -EFA2ADC837D0C3BDD94AFC36171FB44FBF6C9410115348A4A0C3CBD799F05C60 -AC944711AF4444B5C1B9A3A4D8486B036E8EB5E0A614FE46D0BD2C851AAE1A62 -E6BC80F4DF23D2E8219D124D0EDA1A1AC4E0F6826F90583D1FCCE6072E3BDE39 -D7AA16E0F84140812F906A63F1BD8693FE1F60259D3CF28BAEA60CA4F96A2243 -C09331B283F4825A85FE23D27093A102335ED62571FDF43760A5C0B6780B8AFE -BB793C128307E65058A06B9CCD1FBBBAAE2A761179C4C4E1AE06743178940C58 -FD24711ACF0B16C0A1FE73AD4A2D43A7E986B3C401AEC31A1282BC489F8B2856 -2671F43D11CC7120789CFF12384E8048502BA3C5550635FE41F4B53D2B14FD50 -B4531FEACBDCBEBD7FA6F340732F0C820A5FFF7A1C505E9B82AA5E805CAE5E5A -A979CB66A9821A8443D5A0C30C459ADE51B87B2088A12ABBDB85B12E8044F994 -900FD73E924A4EE76A9FD4C5B72AE3278143C79CAF1C58993C575940A6CA1CB8 -5DF299A27CC978DBFC845517A1F45DE76057CF1EB854044E1F0DEEC492842C13 -C46509DCD78185EE8C702826BAD9988370CCF24C7EE4F64866BA4D61AA2CE114 -153FA58F17B5EBC87EA46F2F23634ADA8957101340092A3703C3E7AD3A7C2C40 -73FC655531DAE01E1901F71C2920F825D5BD2E60A8B4C4D05518C631CCEEA92D -729C8ADC9359D1C5B8CDC769D945A11E7B7B0B5A7136145DD77C84EFD04DDB7D -AF1305234C5235D94FE416BB2DFD7342C8FF24B11A07295240C9E4519B4E3ABA -45582FE5007A008602885FFA8D0C0C6E4929724EC8A1B1919ACEE2A84BEF4E04 -182BC6D6687784B6DE7FBC853AAE9A30F903FCED1D16EB9B5FF9DC1E5E6EDB2A -D43F7E6497BBD11C5A668E6D76EB494790816FD4B3AD01F7FE4DCD3D045DA8E0 -8D98B214195ECDA182F6052E443B71AB6EA5D68086449390B613C69D3A0DAFEB -2F29F4F306A47200CA7C1842E7F329A77F9D04EFF1636899B3CF49FAA3260ACC -9B278CB5E006A172134D2423396B476758B49C4B75E970F179936D2FF45887A4 -04E9A6D932EC8AC7B3427F44D0085C80AA5FF08C8BC5FD470EC499AB11772920 -8B1868513D048867337053C886F4D5048210BEDC4C589375CA9A1440414F2FB9 -E80F9FD5729157E6DD07B2B0068F6AF9394E9C17252AB81FE68DEB609AD8A42E -50D5879D4D638EB76573BEDB6E78C3132F016BBC547D4391558D228FAFEE9A84 -ACC27C6981A7294C55C87F6E3C4B4226C86D99D17E12FA91DF9CD0396B740874 -7B3401AC08F2F3CDE7FFC1C95B8CC48D63AF009E4F6FA1D12576EDE381B150F4 -0372997921D0E0B55C94169835A7091A4C335CEA972893D24386A1934F9DC7CF -31FB39CD70EC9E5D29D76BB9E12D3012F1B771D0B0F5E97C323332F4F89BECD0 -DF217CE4C2B0FFC095FFF3DA9644FF0DF043562D3DB1E40D61D2236E43245232 -F48C21CDF7E1E7C7B67B823784E45A178C724199532F5832916E44A0003A82A7 -6119AFEA841CDE11182F04E133033CA72F75BD1C911D914455D9B1DE47B93E80 -F74593BD8385E33064F7524BFE81BFA79544B1A2F7E96885054DEF9FC36B52DB -7ADEBC340616BCA96959170EECE50AB2961DCB39BAD3C648028803BB5DC10090 -0F0AB818841F736B268E06EBC317A45905C9F723078561177D580BCEAD729328 -4C987E6071267252AE217839E7213E96170EF8B24BEF73D40A65D501A63A5E7D -614F88F7B00A0BE3BBA4AC04F2704D9367231BC7D23C353A264E6191F67398F4 -83FF7E7E9365B476138A083D378A4C448436542DA895CACA5F1A465A188F55EB -B9BBFEA0AEFCEEAA5F2536AA8EE03ADE16A1A1B0B34E53ABAF34E4311FD26FC2 -81557A04F4D890B6A1E26018FC3E28DD57E46109A30A5FB65AD121C182672DCD -F45D1A738E62B64B4224FA20FD0F22E492548B07CE1F6CBA0966ED1D86914424 -C0BCBE258E38F5A6972122856AD38F87840BBD154EDEE7DCD9BACB834E63AD7D -3862D8F37BDB71AC595D8378DFAC81BA749C7CB1687ADF5F05EC8A18A9C57075 -D2D82275CC9B8150054526BD78284B43C6DC180468A386C655503A3EDE694FBC -7905C8DFBD8F573BAEB0839A3C85E9434F19BBB569827FBA207666FFD37F1BDC -F0CC71A277FAA9E3C25B5D6E3D24AD9FEF1782169ECE7CB2A2095613095232FA -60CA70D962AFEEAB0199759B917D83DF7F695BAF5FB55DFF040C9E18F219D59B -A0429CA824B655448210888BAB47F407E878EF29933577268FA8CF3BB764DEC8 -0337BF121ECAFF024EC0EF18B56617CC47A7F7BD2030C6838D5DBB67675C7A79 -D0772A8B515DCE57C04DF173CCD71159721672AE541B91A1BF7A45292D95FFCF -2062E7E4A01693750CDA8B9A09E742D96C0A9A17C5C39C0EAB3B1214182E7D55 -873BCE23E46912F44EF6B9E3C7E50E340926C30A1FB1AB638EE15617301B4197 -B85C1C703F9A54D51CA10FD6CFD0A7659899D0B3525A8608A437279160D49393 -88E6E3FFBA88E5CCA8F833B6FBC30F32DF89E717347C464619E0EF172C72ADE9 -628FC3F22F6FE185ED66D87C992823EE779316BD7016B42A8B31D5C08A4C77A0 -24BEFDAA4FC771A54716DC19BA9A3FDE31A0127AF69730A5C038C96540980E34 -A60C64683997CE491CAA40829171EE1799665B3DF16F8A3CF1E4391EA3FE2E55 -41E19008BACD478B900CA9CA3553F854F6C506CA466D9CD85F77092EBAE37D77 -B6217ADD9C1E70A20988F3DBCE74FA45B0FA5A850A051A216A090F69BCC1AA8A -2C5494E79DC7A74355D890F2E38301CBA018F73ACFCA9CA9FDD84D870A1174F7 -D36FD7B1DF9B668CC8399924E5AAAB1C1D5EAEB66CA9A45DBE10073E35826ED9 -863EA4B88CE8A3E0BDAE1A709F951230712B0402C670C17C886919154C974220 -935E16E146ABCCDE8EB50E7E1D569C03E1D8CD3CA1D2CEF7C3D5596EF61471BD -0071EAC87F998209F6B77EF4FD8CBAF201F96BD911DAAD9AE38D4474B77F222E -DCC9D0BADFEF1E5683884511DDE519ED77F655222C54FD3E6C6689AE542CBCAD -173D609CA323F55DEF622D8973FF50B0291D7B29D5AB1B922BB8DC0ED492A49D -3FF1590B5F01A87BC4E40D3A2978D09927DD0C7081F48C967EBCCC49A9DA5057 -78CA0C -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -{restore}if -%%EndFont -%%BeginFont: CMR10 -%!PS-AdobeFont-1.0: CMR10 003.002 -%%Title: CMR10 -%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 CMR10. -% 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/CMR10 known{/CMR10 findfont dup/UniqueID known{dup -/UniqueID get 5000793 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 /CMR10 def -/FontBBox {-40 -250 1009 750 }readonly def -/UniqueID 5000793 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 CMR10.) readonly def -/FullName (CMR10) 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 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 58 /colon put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 73 /I put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 87 /W put -dup 88 /X put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 124 /emdash put -readonly def -currentdict end -currentfile eexec -D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA -0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 -51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 -7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 -E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 -0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 -C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8 -569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079 -24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A -2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944 -8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E -3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26 -D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24 -D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B -03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685 -767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A -8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B -DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E -94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004 -22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7 -72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C -8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491 -344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A -64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B -07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC -1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8 -78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51 -CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120 -7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782 -BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462 -4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A -5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D -EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE -EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622 -4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE -0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5 -C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904 -314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E -DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029 -EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13 -DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E -DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084 -7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91 -1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155 -69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE -EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5 -7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67 -CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D -38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3 -22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C -0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1 -BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D -4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F -3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD -B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE -15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9 -849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3 -FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84 -4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76 -1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798 -84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF -7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122 -CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA -4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B -3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394 -F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D -F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140 -DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7 -D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886 -56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4 -8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53 -59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED -49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86 -87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B -8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60 -C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342 -D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64 -D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1 -F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178 -0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B -5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448 -229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC -17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4 -01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616 -F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662 -3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0 -689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20 -4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F -A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03 -DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D -364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F -7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F -26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1 -43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD -8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7 -C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08 -94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5 -C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1 -B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56 -4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5 -7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01 -204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE -B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56 -7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6 -279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB -E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346 -CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A -65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78 -BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285 -6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7 -B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3 -63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89 -4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A -A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6 -67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C -DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A -5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9 -C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C -9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D -B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51 -963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0 -D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB -B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B -72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE -B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358 -8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB -3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0 -668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152 -ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5 -69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118 -C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754 -3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13 -407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01 -11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF -2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87 -4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40 -2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF -9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889 -CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8 -DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973 -0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362 -5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7 -9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A -EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2 -09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A -2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2 -AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420 -324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786 -486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A -EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660 -52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5 -9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3 -4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D -B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7 -BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14 -6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0 -B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359 -16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED -E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6 -546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED -6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507 -559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B -C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A -ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354 -04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B -7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A -8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B -A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02 -94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB -C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC -41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654 -7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5 -18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76 -9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD -E5ADA5E217BE24851180E9A1700FBA66C7D2B0D7BFDE4F4EED1D24B821A40947 -5620363657F6D048E651A689822CF815E72FC8AE9D835BE31D1DD8B54C9A717F -4DC319B4B59AE073936EA40B070524C7E71D5A7B64436DA107749746B516E29F -E3BBCB8F8C473E706670E11E5B221716F315FF097CD1841D0069FA69EA1898FF -9F9EC2518C77806A19730C97F54BEAD604548D553D4A6EDB247853225E24E7E9 -89D71F6BC94DB986467E755CCC99069B313F5745B02B4BB608A39F0A0A732B87 -7EA2DED68219754BF1FBCA350327572D769C962EF9242132D93A5C8E9725D8D3 -AAAEC15ED0F43F9A1290E91C463895BD12E8A831DAD661EF23CB9AD2C26CFB26 -71B72D15270CD8CB1D59CA2D9DE884C96BB923B1EC8208BD7DCEAB0FC2293629 -2AA1F72C6B470701C381E335C2364CFCEBACDD20CA36182CA7E70AFF5B14B02B -75CBD0738E35DAD8E60CB3DA4DDED557FF9ED386DA52D10615E700751C842FBC -85D89C0E713F556814E051C6CEFE7E83C2F379B88A801DDA565BE73013DD56D9 -44D97798564787AE6D5A6A9FB777EEB850C7481B4A353EB9279731512C9B95D3 -2ACA3A0D44585E55AFD968135F6492A9381FA2D126CF50373AB7D47B509AE6F5 -C4B100BE8334ABE2268DAFB7983BF339540A8D8280F3576CDCD4F21408AA7D92 -BBB218043ADCAB60ADF6385516C2A5A9BFC5C3845124E0954EC5C627FA7C65AE -AC1A283A5A9670ED2A2073826941E9AAD904A05CDB5B692AF725B6B9102574E2 -461D2FAE65B7321C0093A2A34996C214331F7A91B4F74898E2FAD14576F81B1D -688DD9ADCABD51FF07C966B61B0118F09E24354A9F75277B03026CA1C783CF92 -76255E2A560768B3A8764F0BBACFC2BCEBF870EC12EF096A2BE42692EA401E2A -3A12BA99AA66F8BEC315412BA9A17E6574742A624447122C877F80740924F346 -0E22CA288DC767537CFC7236CB28E31AC2C563B89563D0A57F798CB843680E9A -26A03BAD01DA05792528BDD89944986C15BEF8D3E84C08B3CFD68AD25993B6A3 -903A215F9BAE352E428CA0E862EBFCED059D65F3C47D22B2B8E48E97507E8399 -AD4FC0BE438049A369F1C68E0430642B5CA02080DD55A96E34ACFAC469B18732 -655CE5C09F9E499346B2E0DB6FCD5D64384C2F529685F91BFAED8E85CD5704A2 -54E457F74B77B97BC47EBB0F292F8B9839D248B20DFA40ED6AC6C136A7451F9E -57FE699CD9F0CABE94AA602DD5F17214F05886AD032731EDA504B76A19DCB8C5 -02B38C86D8D507AC17AA803E5A22632DD205AF07F8AE35EE4129EB0B37E20231 -463C95CD9943F718E9635F8765BC693AA01D8B18E0318D56BE2225A82EAE9027 -257F2186CF716C6853EC7389FDC1874319631E4C662C9C68868890B42D93A44F -4F90FF43CABCCE04E27E3D9DABF95CE121CA4B3389E3FAA8AD725CFCC84AA3BB -820A654E2172ADDF88F7AAE1EB3E34869AD5A9FEE87CB3C125AE6CC4F723DA9E -6E7040E6A0131184185A428C37E133A909D6CBEA24B0C9920CC4A8F933F7D7E7 -1505B73C16EAE85FFBAD53C403EC4BCD0B75DF8008633BCACB1FF8C6275B0025 -F5169291029FE697BD123AA4EF021B951DAEE133E2A1C17F6B89FAC0D0D8829B -994386AF7574278AAE385AD7B587A7E8E59EF92E6CC1D2BC815E17AC56D1946A -608EA2655E2E2A8DCCBE54353F36F4E774CF776840DD148024FB210E217E0852 -031A7D7F36BF1B708F787EDD1CAA6A64AF0E4738E5785A13DDAEAD02B13FBD8E -CAD50825E0805A6B7C6A9B3D9363DEE1FF11AD7311DE1E29EECC0B3B592C4E22 -637826FEE4F51D273ED865B89F6E1A6A781D86A0C662DA545F41320F1BC615E4 -2A6E79BAA8C8D4127BA30637E2548D045FDFCB7879A80950B920717296570932 -E1456B873972DE35878B25BE36FD03D80D7F0FAF3C270451B5A9923E57A4F551 -67FE8A2F947030413B8C42BDC2E33ABEAC4132883FC9107AD8C633ECBC2EC7B5 -5F467F12BB61BF99669E3449EAADC717918F45CF83D8C5A955A34E87ADED2BFF -B3A4972640A8BDB9A8A3593C10F20A118BA6B85CA52B36DF9185814B65B339B6 -79F5830E4BDCCF6D32E9BB5B03E860B59A297D7DCF797C8F18CC0644CFED52DD -450B0D34EBA62E99CBD1AC1A0CB1E7BB27C347E379817760012E134F225CB1B8 -A2C0F7339B45431179AB4CC2F2E6B107A0F419AF8DD2D9B46E1F8C42A3D70C7D -DABE98B213EA221F1129ABDB9B85AD5549133EF4D6C4D74EB5448642FC41D20E -9994A1F6C35E1C0A7E812419A59B5310567A38E88190011E19389EC52BABD91F -477B06FE855C45A924199B057DAE78F8DE0451BE2D39031BCFA0FC4F604F7F00 -EC0A18AF6E0C71CB53D01ACFCABB35BD34693C21BD24037CA7A96E3C66FB6A93 -CD041D9A34FC79121E46873EDDD6D5EE7953B988399A6C9857B8186BCF91C21D -63B69BF99C8690A400D1CA2FE0E78ED83CB3D71908740B1CAEF5127D119986C6 -0E8474360DD1D3A7ECF49D9E6EC014E952660E9E16109F9CC8170475C298C715 -49E86B585CBD2B71DFAA94111B892DCA762BCE71DA37C609A831C2C5739F4629 -05B1C1244304606C26777E858635C1A842070CF69B7333D58873663239C9397C -79645EE1471EB95D5ADDF0821009F5686D8E1027A7D7B9990F04DF98ADD8468A -EF74790EA23BF76211CD865F328F54DBBEF0181E9379C2A199464C4E1550F7B9 -6BD586A956F89B8C0E91891321A1DDDC6B39335C85E12121AC8CBABF042A6A15 -7BBCC127E2E2011181E9DAA9C0E01D0F11FE571BD75E0493A03EF1D6982AC51B -003A4D5A6099CFD9D88FAC3D958013F8DE7F22E7FB13ED50BD3F26AA67B8FC1B -1350787B084ABDB846B808969D529740949C437A7DDFFD4C18A858C2ED18D068 -E2C6C21E7D2A1403C4ACB7DE2DFA80E34A90B12646B3A5FECF77538CE55BF99A -E121F495A9135BFF73C1A531D5F9AE0D448ECAC997FB83DD9C099B73ACAAF2F2 -9B7AFB6D1710CB6E2D3C5E05D7A90B5BBF36845CD641E85C4F6D5103FD92791C -A43F0AE5BE4ADCCE414B562824672DCBCBEBF7F69B2C513EDA46C9AAF35264F5 -A590CE01ABC8EFFD9B0B6F1AA6DAE282D69E25CB2C0BB3B039CABA8FBA79D946 -765AAD67418EBCC961ED8FF9D514EB7A5042D9D52A210969CF48AF899CF2272E -5D4A4C2001B71D52D3E83FFC086397EABA35C15A5B0610214F0A6CBAB285A0B9 -DA9475D34528238F3697113D936DA8B01806128E41A91EE43C4EC19A0D63112D -71A72A8ABCF89071C9EB5BEBD2166E7CAE33C7522AA1AB43F5D26BB072F2540E -9612D605E39346DF44036D0E11020AF2C67BDE0D385104C7C0839389DF2DE45C -75BA94A27BD08AED6F66E7C536F6759ACC4C6FBF1E3B70E1A00E87EDA4C7B9E7 -AA036CD174EAB0F5CBE249C234AC0A313FF090EC82E0BF9FBF432EF46FEE4E36 -2E91A4B5F518445A66CE1C1B433FFE0DFA8F2BC135B4DEB7D540E46CD2824DDD -A8CF5C7004C2A603DE8D88BC029D03BCECD2516B26D8C8D2A4F3F90F622382CC -9ABB385D300EAA72C74E18A9670D2576675EA38B6FB6CE8134B888F972723266 -4259182202DB21A73395BCA830DFEC0A2252A1F976B7A48101ECA141ACD68FCF -7E1E3791E910896957AE263EC2EBA316F10AFE92048510BFB0D09B560FF43A19 -CA43E66167AA9A49D8948ED4D54325986EE678833815E2F744AF97D7C02586ED -B98FBE60B6F7491BCC891E8688AA96B495873B270AA3E60391407D31B5C62854 -B3D276E1EF1B97C67A3A2A384C92029F3941F8768E3FBBEFF11615453BCB4D3A -C46CE7AA1C6AEC94CBD224C35F11523178F724DB01EC7E67FCB37C0796597233 -D90A21249238E0092A1708B1A968EB32FFE46340DC10B9EC7590C31F3DA4CB96 -A4B4D3F47AC0B592C30DB09B415495635BDFF798B9CFBA71FFB5F4FCFB4ED010 -74C776108CF5F166883E54D1FDBD0316F104DC95DDBD1FA5CC26D439A9687BD9 -F33D19327646851E976E986092C6850FC3B010EE523352299DA2A2209688963B -35C3521EBE7C5497413D4BD74244CAA8BAE0E25601F2EDE3CF3F028E00965DEF -CCE3E144F053F55B75BDE37DFB709A424799F8DF33D9271E20F0913AEB920AC0 -3641019D7735DE32DC8120E63045002D044B71370D2195B07457A646A203D58B -74C3A4A0927374A0D87992244FDD432B79605E1591E19AD0E79B616787F348A0 -66401EAA31ABFC926F03982C54D7D03E02278C3CDF154D1DCA305FD1D602269C -73C8B107D49B98E5E0C823066636932D3B9A492B777A5246BACE613DBC2CA3C0 -30354B824DB613D561C49C85A31472E074183D3427FCA4CB60FBD2CF9261DCA3 -EEED67EC08D704A5C76187E8FE00747407A1C3C0D2CD37814E058AC017CA546F -6C4C6B34EEA836994665A4E41C750E53E61A74BE0CF33EF1B7F5B2138AF50A52 -AE4A7EAA8D51402EF8AD97296C73BD7041D048AB23E6A8DC8F1FB53400CF2CEB -91C815998B9080882620469AC4D0251F21FF313C69074164C253326CCDDFC28F -B32AC6A369680233B5F65CD966D4A24C782DDC09305942D9D5334058573A75B7 -2F5BB465941B59D8ECFC37031A9DE46A8FA9ECE13E0D01EB0532153D5C6216D9 -C9F43ACAD6C5DAF01B737E30BF4312B139CCEF00722ACDA099D2E3B026BB1896 -3A81D696FB4E01A4F028DC5EF2E073BD163C11B1D33DA05721E17313490F4CDE -233ED8AC7E69264270AF05EE7FD59641A99D3529DD3B8224D77F85FE0C0FA84E -5982631047678177BDB1EC93DF74839B0D2B28C3EC7D6505E47D6E76BD5C9CC6 -EC08DB9DEC5670442C353BFF38589785CF58BD802870D89C85F9ED422C5FDE3D -C0FF5DAD20F71DE5A8EA592AA84FB05F2673F4CA1A38DC169CC6B40412A7F5CD -26A041E7FD808475B0E9F612EC00075FA5D1419F9A6EE0D3DEF420127F7C3C3B -405D04931471FE89F97A171C4E8118331723BB811D3E9C54875B2146E9555BE7 -87A8BA43CB32D81E9A0328E93EC7C5D9F10B663B4A29EFCF6A0C6CC0E315A83B -AB96B42A9792F731C249271CC9FB13F198D4B2A61465C958D38C79FC41348ED9 -C56652892C0BD2965A1F5B6132C363163D1F60CF7601DEE167F5F2576189EA61 -289B87371E8089D21977D5E9611F4BE039132A78B7F60C1B896AE1214578E550 -75B781E183F46FADAA2D1C235B021121ABE6D0F3F07AB62D3E9AA5858D29458C -9FD93DAA342F7EE545CC302E87B5781993A3571B347735CF8743EEE9BA042D9E -09F44EE4854F5312AC651BB7042A1DEB52F28334EDA5BE5A647C3C98BCB9E123 -B8520BCACCEC7E44C1B460FF152DADAD834A4337A4F3ABD7BD597B4547380FAA -E6D63A5452671713BCC9475BD6D9DF05E57E2CFA6521C575FEED4BDDF41F3DCD -EF0A62D30B5D646E907407F6671708D2E93CB86E2E14E7A13680158B6369888E -623215498F8810A77688D932305700C0BAF6F531D0AF48CC858945C7AC4D2155 -BACEA3DF2351DCA1E675A9164BD9E45715F46574FC956197B0DD7B3689184396 -DA726793683C16CE628F19377CBDCA9497951EC5A5380DABFF783CA37491E90F -E85599447DEA5FB3CB6C2EC95CBFFF9AD28992870613722CF009287F2618A354 -56A0137B99EE21355A7A2950955D1483F5FEBD36CECB32C41E234840D6B3E15B -2B858BC442594669827B752E4F0C4C21E3120615A67A445EA6BB8E192215EFE5 -B63E669303FD91D72612DC32427AEB32AD1F48CFA187C7D08E41191C9CBB1DE7 -0DAB1289079E84AAC599CAF4692EC27C297C2F419D579A5B46B0EF83532AC9D6 -854D8CA02890BA2948B126BB018E2FBEB9E96F3B52EC41A7776C5A35140F3893 -EFF849FEA4963554D300193E89B3879BA0011B35EB850B78D70E85B5BF8C2C22 -762B35F4478601FC3AB06413D6C26AD26D57934033B1AFF5245946F87B6D8307 -B0BB18EB1C848C6F6C82D5AB21E42F25506C090F9B89CE5047476F2034FEEC96 -E6C1847416A0543775F266E73D534E7773871FFAAF646D62315F5E3A47D09445 -B18516E452AE332560A1793F80D9F65CF464223A9740A7291F8314EA87FC11EC -E41D489A1C263A0B11C7D838FBD8C8E13DFA6F3CB88C163DD95749AEF53B2C52 -18A0D7E64AA1ED89A7B7BFBE653CF5B287636A94809540D7197900BE39D18C7C -D060BEC1843ADBDBD5AB1F8DA35720A7D4133C14C19C81BDA35BECD81AEBB4CA -E45903E6D944386B92F56165F27CAF7B20F3440AE425E167D2CC79CD5307D190 -8F288BE070103DB7B3C506BA455A223744CBB0D921B270DA922287758A6D3912 -E32CF5EE0121CCBAB5DA252B4BABEF2C61908A21E2BA209750ABD4269034FF0F -3980002CF653AA398268E8E2560D32C090E3F6D90B77A87C08D82444D0AE000E -8CC562C0773B8E0AD16B9B82D177B6ACC21E91EA84CC8AE62F63EFF6D632F30C -27CA5B9A3E6EA20CC7BE934007F73B056E4CBB6041935806ADC46D9AC3AB7AD1 -15041F513191DAC59745AFB67A821BF400F4C41EF7E1D056016248BA883E89B6 -260C62AB9F70090D04D91DBCF3D315C9E13DC7141AE73174E152632252F22CFD -DDA96F8B25840BF6C1FDEB6EAE57E6DDC58399EE8540614F2862475E273DA1E1 -CAE15E7F9AF4C9A74A66BEC3854BEB1196A3E94E53E2C6BBD98C291719E53030 -BBA9CBB1FAAE31389D324A0B00B9CB380694149D74EEA7186C27A87CE961E0DD -15B5D3C1E452E1E22AE11250737C5215D5F187B7739A5EAC13BDD829D1081131 -AE6CBA39DA326A846711E5E33E9B31B082A6A7A7AECDC771B8F2380073A20803 -4B14B7777705CA83AC0ECCA867C89FA4B2B654BC5EF0654DA81DE1D9B03729B8 -0CB0873477B739476D4A23A81EFC63260FA461611960F689B94EE9C44982552B -02D710A283E84A67102B57B53942435D22F798F5B4F164CA3B17C20B9D94BE97 -3BBF2D7C7220CC6D41C71E83A013104F5AA9F7E1353D115B622B5F5EFA95296A -0C97FD912206C8C7C467286A685F713FE527D94B04426DF78DD44A19DB94A158 -5F66F8D1A93152E465827884CF5693C5B69C7AD7A104AB1A27FD74784F0378B1 -2AA00C7B04FC5D788F0BA82C81DEC0CACE755181DF72E231D46B8E5A97C88681 -0CD9F476FAD370FBB2668E48B31D55BB964A078D40ADA170A17263C32E35E40C -9C27F31BB31ACFA06261583D4224689D53B61A56E252F0A936BB747E0167EB64 -18AF31F967DE4878F3B4B354A43F8A32B703424E9614F26D67F1D3B2BAC82C30 -C25830F63614D85B362E0EDB01A2D46D8C16D6D154116EAA6310644BE814FCC1 -E5594C05D6A7485F7433176651F1B8329AA5334CA26B3501654E770B3C00176B -4E34B6AB7502B668369F81BABAA8C34ACDF5C02D3A7B72A972D5F3631D12B3D8 -04F5309F74D52FE491ADF7B0FD4C79D452478F055A5A7AED37B374190331C1E9 -32795E40596E940DA034BF1BD6181A2E7D84DF61B4D1B72FDD793C064693DBE5 -8152EEE1752C8B38F1A0AEB2089389CB7BF2C353334A805204DA8496B5344059 -E30CD43DF34C5BD40FE52D9D90E2713F0CA5E0231E06423B6F62688EBA17C137 -5C2DC50BECE8AE23D030FF1D8371DCCF73F1F8BA83B6FAF26FA8F675967EAF0F -4AB529600B0A1781FCDFBAAB30F9DD313E834EDFFB1F64512C1FE701098F77CD -8686F7BFA53730CD3BE819315492E77E135677EF09CC71B1A4DFFB8A491FA2C9 -052783A8FE7BD599F8B1D47B3E440C6CD94DF036BB823110AF7F7EA4A09BCCCC -B8093EECF3C734294704EC67269E3FE3E59DC6DD39DD5D0BED8080B2197BEED9 -E164ED36CC893993A6484414DE23A4F59E4323C3E04C15A992BD7256F98F8113 -2E3BE53E4F79C03BF22B934B64B7153E5EC55F0FED4E80940A1DF5ADFA515426 -38A87F84FBBF73C0CA39C0FA920D784CB39E0A482868B102C93D68BF7D2321F7 -3DF74F937A890A342025958C696919E885BEC8BD87889ECEC76D739460DFC5D6 -357FEB46D7393341A4C50D4E99075883343516D912BEEE2C390F1536F13B2CED -965D302CAE3245F40EB6241068A36D0A63724AA3F8D618C4AB110D2E40B33CE4 -918962E7D2C367D69C4B930C8D486C3A17EEBCA33BC20DE3EB505CF188091216 -14BD6620BDB1CF205DF5CBEAE4830A480E1F616E14D022C92034E628848A1B17 -8646CA6CAD8A94292781DA0754C4A117678089E04DEFF6BF2A3942656EEFDD0D -E1E47F92E822BD83FB9C492B67137C4D01FCEC010A2019680A7B179FDB772223 -932862E227D0B25249B5D5DA3CC1EA8C07BD0F89D723D2853D6ED3A2A504712E -53550F30F9CB9E587C16AF687A0F5F8D444C2AAAA08D270BAD2CF27F14B6A918 -3803B204EE11FD092415B90633E98F3F73BA7BD790F084E337ABB96B056B3F24 -6F061F9AF1C33D69FF08CD41000B9C8F592615E8AB55A05C9E68B7EE0B47644B -35239B81663A5E6A21848E7AEF7AE5FB1523DCA5496C277190FC32E4020AE860 -B797EB58B8FC4ECFAF926B627FCCE7879FBDDDA998AEE234052AB98B6AEE3859 -5CE50666C056B32A85DA0CEB5190B246B52A27E8F499989B384B6B0DDFDA82F9 -48E0E8A7B3F1EEE51D66A0E2F6EDEF3D0E095446BA683851D0B89120918EF4E9 -E5BAE8ABF8D0ED16BECC8A14AE5BAA50A6507512690D2DF6A339B703BE33D035 -794EFE575ED176256C9CE036213A7D85ABE09D942F1A81D574E8CF5A5F289528 -E630680B44CFD4379E15E6F8E10373AF66786767FA3BA060C0A60B6A6BD7DFB6 -FBFFA93BB13F75B1148751D1EBEB4FEBBC4E5AB6CED0373EBB31819A3412E544 -FFBB67EF665BFC7E09D4FFC65DF77538E2515C68DA5228107A5250C4E586391E -9F12EEF67ED37562D402E5539504F49435C6A8FC38D3E69325DF1C381CA3B18B -4BE3185DF2B0C95C1078F1A1BF01C5E6294A15F56874D348792FF90E5C150C18 -BCA828B1059444B2EB9714779F128F503606AAC7E1BC04EBD0CD799D8DE68E68 -5A26855C559F20576740910AC79CD410EDFDECCAAB44DB171DB6CDB0FCAE2978 -3E078B7C99DE96543C338F2040C8483C8FAE98C21B7E8DD17C48082912B2A04C -580E9B9EB6784848C00BB1EAB3C6C08819B80E0F227EC8F4230EAAEAE8E95809 -392E23E62D96F7F7024C75B312709B8F2ABE6BB23F57B5C52F41C934AC395EE4 -DE5D574D44CDBAFE76C414AB9A57A5FB6B8B9652CA2FE6C2A8F9ED3B0F63C84A -E13640A6EE2A32B2950F54B61EEDF443C3A5EC2A3748249DD2FA0426622BBD13 -7B7F3A5E2C5CDC2F41C57A110705EFC67D28D26DD05FF4A75EB51AAD244F8CA2 -04D4D6C2B97770B1CB1A31780BE0E2DB62B8E22CE7E8FBDC0D99AD3EAD3C9BC8 -F6A1E01EA13DF95F15051F28909650EDD5CF2A39DFFE7BC67B814C3EC266F53E -D8298B663E2E98E96B18EC7AC95CBF828E195AD9C2A816921E0DED82A9D002C1 -DF25A3AD7DB63C076A64C40344350397869C01E70CDC0110EECE0C4A0CFB86ED -99892DEC28F4357C165569373DE0E518D7A6270E9BECD50BE18528261984E026 -37E83516546DAF23579C03FF778DF6A5953B3229E46EAE38049EEC99AFCEF595 -1305A40F82391CFF8DC915EA884B8F24386DED2DC26C28A403BB6D84417A38E0 -BA9DCC37764F44E80B38439E12C85CAE8CD62C2672D74CA554FD16982CBBAA62 -F05AC754DA56C395B64F66E609DAB1E7B869F293CAB2F8431A91315B81A8BDE6 -7F564A054443472B8900FC9A096ABB404C016D2BBBBF08F538376EB6761375E4 -690280C2A65AF639E6F884B0C6A98BE4D4F3241B29D6D90505B8C5458DC5DAF2 -B71D37D3BF0E6B0C5982FD145FA7B1DEB84BA31F9CEEFF193E098AA125E63B22 -037AC5F33A40740C97D869E9DE483E26EE6CC605D6D37C62C3EC5E2D70731B7C -1C1A810FCE38719CBF746B19A6B6407A82A5CA6CDE5579F331BD6D214600103F -2CB1DB5E4EA115A2B7FDBD4AD3711F76F0AF388A9C0842492692C9FF85311A99 -2438A7BAB685F0B2D595356DF8900149D3DA7CA2B07D5CC1137196FD6DCEA0DF -9ED738DC0E4EBCD7E89B19CF453B751ACB6EF68623036CBF47D49012E2D05F0C -C4133842495E939E3825F22804B6D40525DB77FACCFCD9686E19E8280B1B0FE9 -97C741F3E31E8343F77A96D73680AC7D15FBEC9FCBDAC770C7074ECF9B9E27C2 -A57CF6FADFE0A853E39C904FBA7E72A361726B359962FA59D3BD0239821E3334 -E2A244E66440804188355C2F92C5B096FF20A9AAB29ECC193557ABE31C9AA46E -A964F52EE49BF794083FAAB661F1A114A83550DE9DAEC62AC24BFE480AF01107 -E7C0E1D17955049D48A4C82485E0AAED3855106DFFCC1EDDECB1F002E8C1BA6C -84628613FBAB88D412B456EA77B3ECC04F8F689086BB7F43F4CEEE2AAE3444F4 -63C292726DDA4CAF38788B1293A733B4FF579B43C3C82739B7A12346B442CEAA -DF67303018171991C7702B4319DD83367635BA74A5233BA0487820F95E037B1B -DBA168CB85403096205F625E8E4BF3143CE998121A2022429B5F314508328199 -60364E00D907D1F8F0D81F4896F6611F85AC2C2538E4158477ABA1B2C26DCEC4 -75517A0A2400D35FB2D63518E33F23C5A4F7210D38AEB82542BFB6EB7E06BE80 -EA27362B337D53F340B0ABB809CB20EEC536B9CBD9399D9B603C94509A050D31 -A685B29F16F3F2ED4D8E715E1CB28F0E4D2897F7C1DD466AF64590F4AAAEB337 -2E4154FCFBB5F5044D046811B66F16C2887F3220802589B3A6FD9819CE72307E -63EB146B4B76F24403DEA09456D8613A8236057D1B0FC6B0615DB595EE64FE13 -22533431344B59D93BC85B572041C47FA26FAFD56023EEDCA2BD827E2AED7D25 -BCA2547A6DDA7799741699E5B55C5F9D900FF10C9F9837A9636A47208122D144 -B6EDBE1849A0FF8764066A277F9AC4F670657B2297FD202AB52A0DEE3F42C3F8 -22D060E7E12B68655E7BE0FD98C8F9D9EA2BF6FFE8D56EBD3A475201BE41FD57 -CB378D548E0F60C1B39DFA6FDAC87144701477B9D5D95C8F8221684CD1CF8410 -8765B9E53345A7B4EB6D93A246F0AC92F2DFCA5608EB92B3D623DBC69899BB7C -20175C86EE09D92D2283CE74597B93E684111F97313C2CC1E607C1EE5D387200 -A16A545C4207CB5A0853FFAAB66363A505D13F9455734A2E4AE72FCE46AD4953 -60EB6D986792CF5865BEEBDD9628CD910E6305B9E537910C36FD2A4EFC35BD7D -75C8B2A3544FE04DE229A9F5613FBBF36AE361CDDAE57DE5C41AF3237DC67736 -B4DAFC0AFEA42CD956E6B9B53D3A013986B49FA8BFB1D8E179BFEB990C439CBD -E183F7B34462E0EF3F3FAE54C37A50A64C0423C61DEEC1201B57989FAFB71310 -68921101D459C1E637092B31D2A9645742C236E019B65EB8CF51F0281F2AF327 -45A9CDFFB267301075930E104A86F481958E3A1A97FB52B606950F5A663C1072 -8B50D82DFE3CE783D1708C7BC1EE5429923889EF180BD52AE93C907B4DE30767 -27084C5815D99CAF65EB5B17DD0BD989FC77885BB82D0F58B7FFDB8556062D14 -F5B0E6B44C5467F1B0BFACF7D41B111DBF57A03D28FF4F7488AE938785F56C21 -84FFA937ADA59F1ABD0EF17D05D0076F444EC3BA12E2E135B0EC8D61458BBA60 -E44CD9AC676725D9E256A1A97C462E9685353FA83D1B12164DDF740D71DB4ACF -E9647570736718BDA388244D96ED6F22ACA77316ACC455064A334049FE24CAC6 -A031EAC85CAA93DD1CDFBA587818820A1AF7459EE70422024A7111D902068F83 -9C9D431C6CF675FE99AD3DD83C941D86AA50DDC7A991FE7D7AC375142E1330C0 -8160D2D92096E90B00631E609E77A6B19542D3D8C62FDE9901533D876285031B -EF6DF462373B595EDFFC36E585621DF391EA65F7DF3EF92E2CD268F9368CA91A -46E040C184F9B9F4147F38CD0B55DAC9D5CBBDEA0F9A2E1627FB9D1BC8391553 -122154028E7E48BA9B29244C1674A8D3BACF50C70C8B2C2EA06CC77FFDC3BC37 -DD535985BA830172D0204028CCA20EC05F494E5EFB08A37584141C1222A4E214 -9B69F1647CED393857B574E3F16C128EEB36750E88191E381D44835FF636827F -EAA630E13B47C2C93FF668CB1F17B9ADFB497AC91FA84C78DCBF083587330523 -811BD811CBD8E4FF4EB894C7396183087F8445A451BB8D5CF86515FFAC955548 -E7BCF576E064604DCF9E142244EEF7B5561BCCEF28AC11F6AF8154FAFB8A75D9 -F89BE523BAC02924C2099C316E331CFC39DF04B952067853692DD30CC84D3E53 -9E55253BABB9662EFDA1D26007A117082048F15E7C809035014C5E4B546CEC44 -C1F75A8FA429C7B567605F0F9C3A0ACB86C6AEB80D0EC6640EA518AEDC4ADE86 -CDF9DC9DF91A1523C0D3FD6B532D07B72AED86742DFFDE8BE485E5CE0141CF2E -F7DD73E2F0E4C14CA03F06F1D11EF523F72AA7913710624D1BD536FAC0BD73F8 -C8B3E07C89D6AA0F28782D5FFF7E8BB3108485C51D0EFD13C7FCC532947843F3 -72AF0C42F480BB0CCA42B642F47D97BB14E2F183B5E14CFD14B774CF506A8684 -3E75715C44A5354A3D1C388DF88B5FF977BFB1EA0AFA6A9DB641DC86D3322E80 -18491B35AE50C3DA3923A0998BFCDDA0B23B226F2F7266D530EC8B9FA8A3FEAA -54C6F30069F1F075F348B7207CC2A4D881F7268B79B064839320608126FF6A3D -9AC1E4FA459094363A03D6B43AE53D2B5E6692F65BB35B2500EC243DF50CB14A -8633DD76882E6883C19C7F06E1406DA82241BDB9F204C02BC2E7C5CA389FEFFF -F842670BD9860530E7376108C089A67B07657932ED08098D84015360D1268865 -E92644B365827C0ED09A1B2043F297C603143D57477D8F1777370D9417B8CCAA -A29B707D61A273589AA16C9D854173DD8F0A384393A1DDF2F3DFBAE60DBAC13C -52FDDBB4521FB8AC6EAF0788ADD6414C1230E3A7F9426BB5CE7A755AC2D95987 -4FDC1248E830DF7388FC7D459DBD219126ED47366297FF1A54950572FDD07A44 -E9D6D28B569884E2E013C53EC0D36B6FBD675D62415B0C8B7F7E4387145F4F6B -6706847CDCB928701934132B84A25577680B36F76B0FA9DF164524BA090D97AC -65551A510C67ECF3258FB3BB2236439B2FA1AF55AB4AC70897E2F3B015D53344 -2E218ACC544D88860FCFEE30577A9AE910F3093E397117F79FF6949595B9FA23 -35FE83BB2D964310674BAF62144DC98A91EDADA24A85049B03B0F3D4FA9BC452 -B51FBD53F07BEBE5CB31A9A06CCE0D3C99B9575854CF9F5595B56A90863642BE -F3CE7A131083215226F3748E0F427ADD3C952C8982357ACD7CD7B6F5F4E48FA6 -74C13E9154AC725E5AB161386FC2B2EB089064622CB4E96E5D55BCD90F5759F8 -AB42B5C0FCC592363C839F683348AEAA0A20A0DAF1FBD75AC1233833E1995272 -A3EC0DBC8E2DF182E44F9DEF9BC76804ED16305F8A431B757C0F5459C2C780AC -3451C86C9650B6A1A6922EA91C9D57945796E6141347D1B66005EBCC3B0A327A -90E16092E78B5F2D98632B99991AC4A127D4604914E113429635889965CE8B3A -F587D96C71F213294DAB6560EF1913CABACDD05893531360C9FF47B42FB26349 -17685C52DC0255357CA502AB8AF4B6F56331F44DB16319D401AF8374F88A2619 -89FC1975C5AEAF11625F935B8A8D86FE7FA475AB8CEC2B023BDAB07D750E56D4 -6A73D5F985098AE8EE5A90E0B177E48F9D6B522B869DFAB57BCCAD899A3107F5 -66B70F9EED4C1A1B18BD1316034E69C4F6D2D71911577ED1E71C29277E208680 -FC5461C8F746A8CE09BB2A83ECD32F2F16E7FE65505CD5371461AAF620EA7AFB -A5E6B75A94BAE9DF3A64737FE596D7DED0E5DC8DCF4C32844B999E057AB3BDDE -B344F9931F57B59B61A29A88687F83B36056CCEDF294BF50E4EF9EF1301B8FF9 -09A6D0A9F82D0D1E077787BB1B8ECD8C90BAA891E7D8BE930E97F60F8D701E66 -7B9B3BE513063B2B8CF5404B22855BEFFED8C74D762B45A75F606AE16BA0A7AA -B7947C9A55FC77A9A1A2B6EDC05DC5E056D5A2400E0CB20D28648B152E4E049C -509D38C97550753CD8D47FE1AB02E6737913F8CEE99D40D075DE0C839BF4BCA2 -98413EB9AAE34AF3F7CCE9ED39E3421AA0F101BA284DAB29624EA761B70EB436 -D648FEF00EB1AC11ACE5054897BDE77E3371520032301CE52DB6B9E0393289B2 -0F38B51E7E459C4BC65102E834B12B905227B0E83828CC83A5106F702F0C7890 -10DD4AD72F4B46A107C222D38DE41A73F7E7CDD174EEB4E844160D80B8B30BB1 -D7D4048E5F4BC0A40C37B2512709447C377D29754F33C51EF8BEF48CDA91BB94 -0A3273D31BD51249577A2440919206A031F3685AEDC1DC219D81013BFF457A53 -0BC8844CA44E513FB470B59846AA40A4127955BABE057B586555F018C131166D -11087267B05AC994CA6E4A120D7F4B83241550988CD20CCFC8AC30D4F7691BB8 -74776B791AA81CBAE360E47C9D3E1AE6CC53ACE31AA52AE615864906AE7DF80F -806D1C1805D030209F38B908C179CE715FC3DE41E0DAE8EAE6021835E3271437 -9A39BB9317E5959441B0C274C396A0A23BC559E9C487BE315D4218FCCB2F4B77 -4177A43B78976D9A772D58F707A95E77F301D7789DEFE284EF1C921710524C68 -D58C46DCFEF1AF5BED73CA78CC045C193CA472D316C4AA5F8171365626392397 -7C5BDBFF28CA3CDFD75E4C4CF7836E8C5DADDC733AB5EB3B3011DA456B979544 -151577F38DF3888F45330801FE208ECC29503191ADE4BB98C9BF2F2B0999772F -433F976168DBC18E928682C90108C38F54E9E2EC164A17899C88ADD7348D3E65 -2BFFF124FFD09FF0355F7A30258359849AC8B955DD11D417CA487F3E7538F278 -358E2CE00BAEB9FF195F542D2F5F7B09F8BF5F04BAC7976155C3A0DBEA415682 -D20F267E76B0886865DB7F7D34B4CAED1A5CA8EA2CC276CB18F663FE570138B0 -444F4E61DABADDBCE7D501BD4A9E06C947B93C44B028053D52F933FE4FD397A0 -F1A43CAD67BE4B97069F84FCE6BF9085335FB7FE6A65420F93879A00ED5EC1D5 -5166B6DD5A1F0BBBA087007B69F3431B400DD2AA8211283B9F26A97116BA13C5 -2A96078B665AD62C60BC10E5A9748B2C7CF049F688CD1AFDAC13F82A6F2F5489 -062C9DEE23435EAAF352C22EDFF7BE110938B52077A6E1306C90FFEDB6933CE1 -384FFE323F92AAF5314AAB2B29BD85A2222275102ECAC3D7BA95913E317ADD3E -85053BE91937B2EFBA797583F59884D2EE1675F355A6EDA48DDB894CEBAB9DE9 -70B50D1F2F02B033ACB7280D22A2E538FC8CD4A5C0F7E1184DC534869E707B35 -5D257495423B03CFE7E00DF966CB5AC5D877CA87A377ADBF20271815570988F6 -563163B440FA92B6C8D48DD818257B22C997CB2A9E3882D30D132E83037463E0 -C1AE69D8F29DC825DF19C0F1DD2EEEEAB6F8E2C02D837D9D71BED1FF77327EEC -79738DF541913DDDC18DF5B5F75DF06A3037B078B288C197F12057CB0A418393 -6557014E5FB2201F77EE19D1A1247577FCC26128300AEC98E69D73B86C622870 -FCEF2E9AA65BB6BF2A790883DDB1D3C6B17747DCB177E6DE97D98B81DF5CFBE7 -DD609CDAB8C2EFD920471013908BD8426A8F797371FF7A379ACFA1EA334397F7 -E589BB9307AA7DBCB06FF7915DF8DD21783BFE27B679DE290EC0432048B3289E -C1A6D07A355B8E4DE93CAD903EA3AF7D01BBAA1B57E2AD9806279FBA6743F3F0 -976EFA1E424DEDA446CA1EEDC0557975DC0AEFCFCC1DF586E7E6DCB23A94AC1D -D345FFB1194F23179355255D757DBB00FE9D09022963AD06D3DEB5DA2ED62F8F -53D63F4541EF8CD1570FF54E5CF93EEF7BAA0950FA0B564EC0F769531130A51F -AAEA05F0637A988EBB1F615347B1FAF64E4A03A38C76F6846C8B8B8A7C02A54D -A981D08A948049E8FAFB8B5226695974A3B69B79E45726392D398838012510BD -20875A839E7243CBDDA8BD71B2ECF2D02A9A3C73F5F859E2AB66E9992FC9F9B8 -F6CDE75A0EF66FB252F3E18A7852FE2373722421D7AE7C37A6EBE5591EC81DC0 -F79A89F76A94BF1B421CE8D1E5042452B582A46C2263E8961974CCAA1FC44CBE -8841D70C177694412822E894C7330D833BC0DB52A442E8BE93BF972DBFEF76D1 -341E66FE8D9E973FCA21E7F06595B200845E0D53EE5C41600A6D9B127C5A90B3 -3249FF9EF55343A77DC6071369FDCA3985BD8AF29CA7B739248C6290A279ED35 -8D5ADC7D2B54426C90D94337472039AAC2C6DAC946617D9C7B5AD44AA702B6A7 -E216C05DDF46B5741BA5E190008DFF1D952B3C7C18CA5AE940CB9265DD577C9C -65D7561A6790973B338194B5237B5D9948A86FDE27171A3BA227BF5443BDCEB4 -F330604421130276C0D5C0AD3BF73076893929B7982C59E76E657172BC6E0BA1 -5402E65D6812F1BD0DB84E9B28B9F86FA6708AF865170BFA902F717C30AF22DD -DC6063C732A6F428C0930FAEFF1D2470D07AB6581D4B7DBBD6D9E246B5227BA9 -8D399415D1A9068963D707C29504B8730E87D260984760C4C7B7E0B4AC08A96B -B4909B3BE711FDC8581C8834EAFFCFE045B1D45A327EA56BF4A61EAFFAFD5F29 -A99E798A521D8114490670E527BC95332DBF95DE70C076C137D3D5B0AC1B80BD -C75F147276CF75AF31700C32F301848A6039F6F5A164CC33E4C8320706CE4148 -855B50E3C37C4F8ED4CE7D79B796732724A0A8F2F828CB1DD315C636253FCF3D -6026D040A2D8BE827E39E7E0B06B1B0C4E7685BE712D925656D23317D0FAD0E6 -3EBEA4DAC99574E813AF4F72501D78FB92A8A32F408C758F785EBE774458D65A -E1C0699D9F64D0D6F462A49979BD6FCF474E97B4E0A7FB9206B33F7A59A17A5E -83794F56962D76B876D11CD33C610204905422080A852323A8834D981922AAAC -2D5F2BCB0A0BA66719B60B37801E203754E1785D185EA29513F3C9BE6191F255 -72452B3698C34C32CDE4AEFC297530DBBB9E8F402FBA40C3D2E93BA0A6C911D8 -D3B73AF2689026B2F255D95FA0F097430840CEBA3C00838CCECF62709DD989B3 -8BC03B5A233DF75B7D1213329980CFCFB12A1360E9119B536CA3848C620F7645 -5B20F2F4CF50B1139F1DB6903AB982845710838B729CEDB7836F1EE1809E80B2 -6C85BF301606266F400204C11B430C89BAA234E6D354688EC1014A607B2C51B4 -2E9F464124C8F862CF5758AD7CF1415B5DDAFCE95E8AC06FB0B847E0C0E26E07 -4BD48BCE629C4D9BF6117DACC9A9972CD0CBFE537A86AA0E6C1A0D3635EF3AD4 -D2DF2A0607C0019A3B7CC9292874ABECADFEA3F3DEB90A2D99517A35BC451831 -7C673BBB207594EDA347E486C3F70EC67C55649BD4783EA351457683186BDA68 -0794703B5B337E5C912707E4122CB2200EC7E672B0B13B3D0DA532D2F7087F32 -05BA59D9C0BE703CD07CBF7A8C6EE352B1C4CF7CC990ADF8D81A672772807AEA -BCEB36F56B59D8230C42647953A07169127F3E85B3CD2B2D3B2D06A940CCD5D3 -BACE10C323F429126F5AE12739FDE06D9DC43183C48000BEE64228990E59D9F0 -B282F6C574262E4622B2CA73405E82F418144ABA58E5C033AD0C0FEBEF8F330B -F6970510A30E39212199729BFBEEB59B41D106B9C8C491C94D59FC570FD31858 -FE93591098CBFFF2285604FD976CFFB42CB4E3E7BDF00FB502F59237381069E5 -8ACD6FA8A324649434C09D08EBF19C7F02C11FDA51250502EE600EA717D41B5D -65EBF066867A98793E5C1360814308E4B74EE3510705C3A105527BC7379B8129 -CE2ADF113BB01E9009E16CB43D886805437AE7BAEE8D109C4D529E6E816F7DDF -A1EC3D79388DA5BD29DAA58AADFFC1B635F71D4280D2B1D5A9B62919F08EA188 -264EADE8D32AA577415897DE9345C42308A90D507106B457CB841BAEECA71950 -CF5091FFE041426108185EB7F58EB7F3D6C684FB216A6B8A4AA9715A93CAC34C -6D04D0ADB51AFE9B73054A41BDD7BB24BF4A1024278687CD3E343B8650B550FB -B706205C4705507BC67423E7214B7EB04EEDD30B3FA29048BA3C0392C196B8E3 -8BE3BA3E3360B7EFF8542CF72DD07FB73D081DF6B6E562D863E959B5972DFE80 -3B7E68DFEB6CB76F52D27DCBC3286542D9EBA6F112F5C0C747A30500DF890462 -18FA6023A59AD8690D5B665561EB70D54236782119D73879441DBD758C96C041 -9A36E9EFF7E397AEC27F49BDC1B0FA9712DAA076344598AF7AC32008EAEBB9F4 -0CFA76396A6678176BF27AB8AB22293AD9A13BDA7EA5FA85929735D5F5AFED43 -A04794308C1A55BCE37F79482BD65D5AD1E47AC669EA276620386E6323031479 -0060A65AB8756A92EC055CEFDC55BE91D24B4D7680A3A6EF4146FFF03F2E396F -E8FD53B43EADAFF1A63ECF0D268A11F2B980E1DDB0E0A926919509712901FD04 -4F3A3D6B69C9C081F089F66796D3559FFB24D0F977A1177F8B88A42469E7E5AF -0FF0E6EDA585E1095E6A9375BD675B202E24D76C86A7472CE931C39A9518620F -31F9CC61496C397A1A46C69FA1888DFDF4DC5424339744836CB1C0A13F013D73 -D0C6BC868A8992EA2F747FB603CE960D43B48C4CADAA902FEF43372D5D1D92FE -7D143FBA8719B87AE4AA8D7BF8C1F65FB2CB2D603A722684D2FBD652D747CE86 -2CD3C06E30B3566E444084682D76C854B7A997D157253CCFC757EA239EBF3A1E -728F64F3C092477F1C44C8D723454C4D98F2369FEFFA88B1D4DAE41FBDC7581B -60F3ECC73743D7B7E81E4DA90AC98CC9ACA77C8C7AF106C1C7145DC5D315D8D8 -2E2017F203DF0A8298F4273AEAE0268C8518A3288EC8C56D4CCF898798FA3350 -509335DD4D051015D94367B2D236C9E8F639578E3BBF140DEFBA03B813A4E7C0 -FF078C21292D8388CC990D4598A90723CA6F9BE62C08F31256CAFB6043490966 -7825417626E45CBEFDA8EFAEC8D03AB6185424C85963D80340D56A96D580A0B4 -C8B69A054CE529CD9C36104694DF3B8BB5904F2581340557C3D668337A1EBCC9 -3F282475F3CB81AD29B5E0753DB80463876F311E6C572A38B97E1CE6741E2025 -4715B704DF7080D9FFDCC0412267548215190DAA9970887D990BC8D29A5F9E7D -4F59DEE71E0F936C9670318E90CC10EB63F3425E8CE88058DCD2CABA070FD78E -C96E6DB7F554299D893F30806EF60DD0FB11A07A2DBD9EECC2E57546546A2550 -2FE08B3BA75E5DC2E66C100A4D72C335DE605393675F8FE5927E9BD2DD24EEA0 -7E991DB13B685AD13284E0CBB7A41DC6B7015219480FF73E0A676B3AF36DAF64 -3FBA5F10E5B789C27EE99E9C689EE66519EEF26C7300E4D90DC9FF73A9A2F938 -7F009E6211108052984CAE0F368C741A7ED2350363F148BDF963B1E31C55637E -D1CBC916A5C8C5D6B30C5150A9A185CF001EB3FE363F7566B6937589B6EAF025 -33163043D40433305D5D6C67B98CA049B0A4F1DBDA9F0A976F346D9B3D700785 -6CD75048380B1C88FD441BA10B8F6630A9B3CB2E19484FCB6DF49BD628D46993 -C68960091CE02B457DC31B04DA70E8972F3A347B83DD922B13778E4EDE3C5121 -F411473C5B1669840BA412B7D5693E0B5F2A59CA51BCF84BA45F3F3837987709 -EAF7AD5678C7DA763E23A0B7F3BF09F0F8F4E0D9A44BD4AA7A8DD46BD1878572 -566FA20256649867525587AF615902407949DD45119526B2C3D29456192901DF -C6E4A0209873EBF15A4A990A5E42E1E99999D535BFB68FCB1CF91AF9DD343B10 -DC8B9A5432989BE7B4AB989476FBA0A6A645AC89751912DBC2BC6EF3D85D705F -9A7FD52FFC37BEBD42B388E73618D6A4CF61AB9CC08AE7E65BDD1C39EBC98ED9 -183535A6F05DA10849978B1325CC654EF0E799E5B56446D797F423C7E5D1EA3F -22D801536A7B9EDFA7AD42C7C07EE168A78D116DEDBD7B3C4EAFBA5FFD7B1D83 -0B400EBFFAF9B2432FC80C38E0A144CC731BABBE8F71E70720B1F6A9120B513B -2D6A3C54B82025296B46BD00A249A682D4353F84ACFEC7710D87905040508ACC -7A1A974BD03C1D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -{restore}if -%%EndFont -%%BeginFont: CMSY10 -%!PS-AdobeFont-1.0: CMSY10 003.002 -%%Title: CMSY10 -%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 CMSY10. -% 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/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup -/UniqueID get 5096651 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 /CMSY10 def -/FontBBox {-29 -960 1116 775 }readonly def -/UniqueID 5096651 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 CMSY10.) readonly def -/FullName (CMSY10) 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 102 /braceleft put -dup 103 /braceright put -dup 106 /bar put -dup 110 /backslash put -readonly def -currentdict end -currentfile eexec -D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0 -7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81 -DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91 -511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6 -1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD -028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86 -1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A581BE543D73F1FED4 -3D08C53693138003C01E1D216B185179E1856E2A05AA6C66AABB68B7E4409021 -91AA9D8E4C5FBBDA55F1BB6BC679EABA06BE9795DB920A6343CE934B04D75DF2 -E0C30B8FD2E475FE0D66D4AA65821864C7DD6AC9939A04094EEA832EAD33DB7A -11EE8D595FB0E543D0E80D31D584B97879B3C7B4A85CC6358A41342D70AD0B97 -C14123421FE8A7D131FB0D03900B392FDA0ABAFC25E946D2251F150EC595E857 -D17AE424DB76B431366086F377B2A0EEFD3909E3FA35E51886FC318989C1EF20 -B6F5990F1D39C22127F0A47BC8461F3AFDF87D9BDA4B6C1D1CFD7513F1E3C3D3 -93BEF764AA832316343F9FE869A720E4AA87AE76FA87A833BBC5892DE05B867F -10FA225E233BCFA9BB51F46A6DF22ADCEACC01C3CD1F54C9AEFA25E92EFAC00D -7E2BA427C25483BA42A199F4D2E43DFCE79A7156F7417ACF78E41FCA91E6C9EF -B933450D851B73A6AB6AEA7EE4C710CB5C14270D1674FA334686653793FCB31B -491E870D3C2BC654D2C1DE463EC9BA29D7371AA1078800EF93D3F66263A2EBBB -F5723697BF7448BD0D2E301544BECF497FD475B85DFEF52AF4F8F8BE445CABE6 -019318806D10C5952157FF8F8286C1EE701545C8F60EFA854EAE66835A2046A6 -915D395F1E0366EFE0C0391583FE001FF16D82A2E2DA5F57754A2C6F69306E36 -356ECF8EFC3F1188AD6FCD2427E0580C97A5B69B4E0E09B85EEDE142F5ADD2F0 -5DE51D6DB72B127412A0D57106C19CA493048A4F815129ABE767D51715B1515D -9C21067CB5BC88741B7298C83EAE36A866DFA87D8981F179B1C31292F56BBB64 -3C430779468AAF07C8A8B4934E1E775FE3F35186BD1FA6EE3689C1C750678AF1 -FBF9B23195A124C5C991FE670AC0C86FD39D2B07B9A319E74EFD498B45820252 -720ECDF7294F7B0B137CEB86D33BFCEB8606985A3260FD669E461C8BE94216C5 -D434FD8854F44EE66E5A289A9F9E32BC36AF645D53F96652602BAED418C8D726 -BD04A1B4617551FE4DEF54083D414F7DCE004E6BB2DC9C2EF7CE232B254BA2C5 -7DCBD36C2072ED46FF711F121A701E2284BF1B718B3164382B8F453D68FA0377 -DFE106503B8401D4DB87F5402A3AC9A442FA060B0610A9524D530C7157C26B56 -AC970FCC1D5655FFFFA39246E6420CF97D08ADFB7B05822679BD40C638DDF0E7 -A97BFE8918B611A145AC965C203F1428812F9D340AF499B3A915B22BE798594E -0F520109FC81E452180AE45B170FF999C5FC2761C6CECD8742A5A6FC97F16743 -AD4EFCC6572A6D3F3E4E330C5CB2FF6FEA48A5B64DD3DBE943BD9918D4A18E18 -CBCF598AEFBB6AB3CD2CBC9BFD6099272F6543F3E532E0E21E614BD2880B1023 -0AC234CB705827BF016DB84E00E8C255FDEFA0101A842929540B7B4AA8A089BD -5EFF05B72356B6BC3727817823B5CDBB1B963103000D7F2A4E2A1472FC3E614B -5CBCB6D6D784023173DEFEBFA8F9ED87EC1A0A9EE98CA59CFC964CF943DC683F -E9E00DA718C4425A705A69D99988EC6F152525C790912C2E46A2381A569424AB -54DF4798BC2D7E7A361E7991641D4B756CE2A7FF4A2848927092C59C2C4B8809 -E13AB84FB6B111E680D7FB9F2FFC2C5C66B0B501E4447C2E46C10E2F6124476F -A140C404CFE2DC9E0199BF61E035CEB481D438139A9630934E541D261FFD2906 -4CAD99E20655FA746AFB81EDBB5601F5FD6B1D6832A01D585E2C55053F6A7378 -4DAACCAC7608DBDADAAE732D66B3E7F87E79756337C1A961E53A4651BE7C77F4 -038B89C87F650C54A2A90EB7F1D525BB353F33318551EE8D84A6A83C718EA5A4 -B2AC0F7306B1E095819B87015A90CA3ED739B09061782C28CDB36BA4BD5E5308 -5CBB70414E4112193DAC4A1FA30996327230D1E021F3CD8115E12D239D93FFDC -B645910EB29E40D830E7BAF2DB255FD7C4E776557BB38157917D993EAC245837 -A3B515147043574157B8342D829C7228CCEA843ABC89D1785A9672A5923FC4CD -2F3FF27E6FCACF84E2D3136CA2C0FD3EF1EE7354CD04C38B5FB874553646ED2D -CEDF7E362EADD04B18051F20A8FB0DE18E152385B9D05F98A3A7EF177824E246 -455ABE69E2F700EB78185CCFC07E3B4C6FA301112528D977367D30D0D5D59EDE -FAEB706DDC970A9E296236C725B2B55B09B9C336B8E23CBA5FB8692D56F33B03 -16294E5FC7FAA42E96395A57CE51CA8DDD77442F142E2E576B778373FB31C81C -16840BB422CA827E30A81829648BDF1CA36700EA32AD888D097C1FE0A05B2D9F -483AEE40269DF09AF0D1AD3DF80C45DDC59C2A03FBB661C79B87853737C6D352 -67626B657321B16198DBD6DB98A092F17878AE4698121E1006E53D6F9B0A3BE2 -3FB68828EF854A0CDBAA68B37ABCA6AD4A3D809AAF0BAB1697A81FE59C98C472 -1E33CD70A75A22C249DD11D76C2575ED3370A25892A16D2FD569CDA70C130770 -93F493C7D47D6F9A5424A7A542BAD726BFC3AB225DCEBBE6AC4BE006F8C7C0EA -051424B08305BF2D951AB2986AAFEA04E078CA79B399585BFF0F1ADCED02E15B -8765EB6BF6A8E4D0901EFF2C3AA104924EAD9637A35D877E0C51A3C37DA78CD4 -8643C8CE6DCDDE3F116A6C2390F948E5371BEB5AD2E87B41C5F01FB5C196C436 -6E256A88D082E3F46E4EFFBF605B2EFF1E9D9AD5EE4DDC323A137CD9451EDEE0 -06F7D82898D71FAF2362C0FCF1F726F97F820305B7CE20728CA08C63575083A7 -84BA28B7DE2B916432475510E274C12FFD1660A717F51DACFDF0A102D85224E0 -D6DB607BB72569ABB8A7BC6A10354CBBC01732EFE35B72062DF269CB25EA3DE6 -DC603B04C90C5912D2C38D7A5ACDCDD3F6F116D884F0D8C528F69D5D47BA20DB -0A9E585C7D8CC3C324FE8A1DF150279F7E8FB43BDB720E624E5E9918032C02CD -8020636AE5C38DA2484B7F4B34163E0D0A561B43B80E97746DC05C871AB620EC -C5D47101ECED4A7E25F291184BEF8B80024AA7BB456C1B83A907652B331DEA34 -754226C39C6889EBEEFDAD081E01EF8FE47751987667836FDE4C8BB8A3FD4406 -1E643B4EA37BD370734D1A2DB17C2F4B74B4ED75098B433601F75A88C9A37A05 -CCB157EF6E32023BFA33973F3E655A4D58289136996FCFA61EEABD70791B6523 -1FF5DE71AB8A17038923118A5EED8D59C4C58D246FFA9BB26472346B40C8741F -153D19CAFF20DD2A86C6DB89154A630FB1761929FC3F0448EE2F089C1C953E02 -905BA8DE75D101A982A611056C4B237596C10951DD98BAB838B742D3CF7DE718 -617DB72E5268583223E37E029D1C8FD3F1D21690151F76B76C52C725CA135CA2 -8666553E863CE188BFC9B99AF56AC2DB5BFEBEB12FB563D00244EB89E478657A -98AF2E1223C1ABC25A4500E8119B86EB3C26B8A2F3505A3E5610F89B7C34E278 -53FA0A54A7F46D84A35EFEC36AE660A9E3C37EE3864106702DE5AF6C45ABF64B -888A4A51323138CE77DB935576FE6B4824B6942DF80625098CE1B5B32B234F1D -052A9D6039697118A9D793793775D8729D8574A2E74D7109C7B7E23BC5E2E87A -CA8E019203952A4892544E1AD3D4EDD22971611358AB230E9A2ABDF00A288501 -A01B67C42B33F6B78C39562DB50F4663B922D9BE0D8A150311AE44B83C1F129F -07337323E9A23211EE58E16043E127C6F9574019179F5635648A011266677B56 -B5D0201A4E1470B952A1579B57AB2329CD4C615395023C653F784D36B5EE3672 -10D191F29EA508CE84763CA4CE7C2C5229E38E241255A5CABCD6C7CBAED901A2 -CA53B5E24111921CDDF83578D33D463D70EDACA0E470D8F592303FB6BFD68B4D -3F3BE2D7C5EC8BBF10C90111A33E205F2649B56E8443F6FAA6C721C66575AE12 -D4C40F1F46CF9E9DA675AB5D5840D938780CD9E4AD6736ECBEB6A4397613586F -849B51048AC5F9405E03E14540A5E5582F61CDCDB57EDDF95A8C6705F433EE16 -648F098C03DED8A2AD94AE3DE202D629B9422ABB031318D48F2C85F9DBFA17BE -84708AA3B6C9F81F4508F7A5CB7B6646AB8722ECF817877B77D473F577556DAA -2BA0ABACFCF5DEA7498C47328E873019A956FBB250FD9D8885D21D368FA70CBD -2709D2DA44EE7A9869963EAB48789541906DE49FAE785ECE1F18A22C7E7ED204 -9768896B78E9EB7A2BD6EEC1B26083940656ECD689D92942CC8AF05CBF82AED0 -B45A7DF4DD7AA6526FB597322560B9ED3087A65B5EEF1371C328A021411BFE3B -D9B5088B2F1AAE381FFED52D2D1E02CD0DA78683E3B06171CBE94BE9760005D7 -135893D7CC2DB097F6AC664D9594CF1C650F84DA80D2EDE04802DBA33CE3DAFE -EB7A37E8AEFA4FDA6252FF21E8673DD98E67124D5DBC7BACF361E57077B71939 -C1D1FB923E4E35C075CD1BCBE0E80DAEA1320D55B43EAB45D9B26C366B278782 -7519FDC482D98839BF0DF2E7C3A56A1C1A3FC0E57A75CA414F6536C1FE8EB7A0 -4ADFEE3BEDA0F53BE8CF5F64230784A797133E8CD46BCCB3BF38BCE38A73CCE2 -9E073ADE792F7128231DDD1F63E6156ADB2609C200837C2E8A2D93D2A7BC9171 -050C709A71E44E32B1B03C92EB5CF1D3BAB1C38E027DC4ED9AED633D98CD7486 -3F773ACF8AE332631CF2ABE6D606607593FE862ADE31803964E3F4DC3CE3A271 -C76BDD95C87CDB3B87BC26FC7A16D567EEC62E6FF0D471B4853DB8A94D4CACF8 -843824F818083F10E88D52FC4253E8203292CB40F1414AE7E51DD7347007C342 -CD70E8E9F2D2A13D71213B841DDEAAB208AD9EA644591C15DEB084165F9DF24B -B91D3BBEEC2E34E38EF16A0C3F00700A7BDCBBFED2EC0D09601AD6538288DB50 -3478B051B5E16B604A0341FE621A58718D960D699D3FAD284310DCF54EB13175 -19A75A539EE98E804AEA24689D3540F0F12951A3C01FACCE9A7BAF4D0DAFA946 -FF65A4D2A4C39969607272C6886F44E90ABE27CA3A1F12A29D9B32E60E8E34F0 -17C5FE43D0E69A99A922D98909B2BBCD145E59A5E7F5426B3988F73B09A525F6 -8BD4915663C1301323180E760BE81CB874B020FDA3AE63340E4261E4F3E4949B -CC0966BDC4426190BE9F5D77F76A72AD925662E5FE1CEF9CCAB68F0BD33DA003 -F11EB91AC4502FBD6AE48DA0F9D07C35B96B103E379B8A83A05FE728F1716194 -1F650F75BEBADB2E3810388F3E2DC7B19F1BA9E32925F2FD9F19F4E8701F3E4E -4069125D7C401144740691E7A460021A47B1E27997FC1DDABEC5BD0EE0B20194 -2D579C7D6727AA124083242BDA46D8E116E2751C5F298851A62B60AEBE82A929 -9B9F2492BA35690D1EFD16215B8EF14E7A3803B93C28FA41D971B05B6AF3B593 -E74AD1E68A5FCE12A86E63B78BFEA87D3949FD164F12277A4688BE96356791CB -8671C49365608F3EDECC109321AF92B4C29CAF073DA3A7D73E913D0D83FAC5EB -BD884D4C686056404DAAAD6F82F94F803FA1FB0DD8908D1DF08FB87A8BB83027 -04DE0CBB1C6FEB6B517FBD7CF065120079E608CE41893C2BC96A347826CCDFD5 -C69E161217F2127A59F1A6F22037641613F191F22D5B4CDCBCC2EE5615623404 -ABA7BE6C5FE475481615B2AC1A2412E54688DD21E44CC9AF5F16E634AFCA389C -4D740B7B51BB141BFAD1080E7C726C1606A28ED492E6BDE9F800EFACD1513909 -84E98CEB6A0B7A2A6F3E1D1DCC3B2552795E0932673E59ECC56DDD37A1D52BA6 -C3F0E905978AB568941A163F4CE3AAB5C5B16F86016EC47BA6F3F7AAAA77C3B6 -09C8C3ABDB6D514A76ECD37C37AA88B5860630B3406B494F7725975596F84777 -D9CF48686EC9C5DBCC1D78513F591C7C10AB9D153B3D41426B7BF668B0D04503 -56BCB686258462C1DC61095724B9F3312316262FD7C1AEC6E54DE7E5A7BD8EFF -035299B8FD8A4A7B0F51404F4A760F4D8B4C0FB7A32FA4B2383AB6E9C78FDEDB -FE6A5788D38A6701B123630C2A6D820A684166FBBC83DB17069494FBD411B333 -CB37E2491C5BD035A33867A6D3A3D420CC31ACF43AA07182CAAE67E40EC63663 -B678F71D4C6E0EC3A0AAF904CD3AA66E0DE5E3CDE049E94249B39A1C06E3CE9A -F974B2484BB2CDA14282B9511E505B3C89F9C802218AE40D1A7541335C5736DD -CD565D4B9F4CC78F3A393737EDB4FBD0DA299E21CCFEBA5478EEF013F0552A8B -0BB11FF46CCDB784E8BDCF730A16363E66572049E42C695886EAB42A9AD9094C -B635DF4B5B9BD9B9AE8455DFA3EEFC77653190F9A8B1E93B7281C2A21EA7DDA9 -33484745BDF7E3DD63C7AC66C286C9A5A698A5E4D7A91710B7FF943FB23609B6 -4B442F83CB795788FAB5E9CF3F75D5487DA26170E4561C7941C910B088C3B86D -F844B0F340CF82786A3FCF347048463EBD2006281A816627065DDA6CD4D3AC5E -2024BC96C7D896381BBB567951E7A1F29D4E95351298B000D29E5F3D0448CB5A -CFDAE1BADE9403B90371C3A07D208948AFA022A69C519434B6813086ADF518D5 -88E0B92072A44BA1B3EBB630A13B7AB90992E85B6D67361C8D96F3E0D826FF37 -17B67E4B1EB7BADFD98D7F4FD17BECE740ADF13C141EBF0A91CB105DABB32FE0 -55086D56A0D358841D15FD349E6B95512E4EDF4C430216FF85C2ABE995E4B40A -A6044CC8820AD885C07E052B3F91C2E9A1D163BFFD210F7BE95B923E2500DB50 -2075106DB541C267BD450B25B670CE80BCD068D4DBFF2D82634175B61FBD3BC3 -406131F44C7D6F18D375D1F2270829DDF29DC14DBB58A30AC193245D18DE91F8 -AB88AB548D8138605BB5A50073295534E314366E26665AE70482B890E4101D6B -60E4F3B37ABCA1346DAAE8FDB8DD9C832EFF3E73BA470E2BACE7B8515CB43388 -C27AF99FF9322175CF8D4947E6B3846AFF5163E972156847F58A66660EC8A3A6 -5FB47C9F637B4CBB4C73B6A080B0CF6FD1E9665E92032540570FFCC747C67C50 -822811AADC404BC7ECD1673E8AA6C3A2F1D82F39430B58C29145E2F1B679C46E -94EDC711883F1E4EA84117A54757E8895A40401A26E1437B39A2F65CAADD6E02 -D71FA8AF7453668DC613F326A3344F74AD7AC67569AF399385500ABDA5EDD3BA -343CC5EDD4B558467626850E752B9959FEF1454E53E7A3DCBC2255AD8F6AB4FE -894455118A61C58840CB68A925ACCAD75CEACE863D806916228F0614191A1CD5 -DC9BAE256018615AA3725834519449B0A88B4F396654E74099C007930ADB1327 -DD119BF799FE3B0B223E1EDA04FE2DA7A1C879143E1C33B6C6344F4BA033AD6F -8E88C33DEF1977796B454BAB2494C930F492A518E8198C708A75FFEF8C49C324 -A718AB59B889DED521229E741FFE53F98EBE88B0405AD523254FD3FA4BBE96DA -DA1C27C1C979A0DD4E61C3B1F4C4DE01E42F1C4435EECFC02D97994BC8AF5270 -E7CB1458D76ED0229C5FFB4A23B8716018F9050970895D51722CDE8F2EA3D947 -DFF374D84915D5C5D16463A6FFCD079D1ED416C4347BF831FF0C4ADFB61295DC -4D5785BB0852BF472CFC97EC174491CAF961AB90629F055E75DAA6D9898E8653 -5BCF379816CAE46FEA62E7BE8E9B953466E51828172C4DBD0E1BBAD1CE28B5B1 -02B3E36403BE80B49A47446A6677FCED438F01D60EB10F478C89528FA337D0D8 -88D3FC123C076507ACDAF783A9A6E24ED73BF24B6E0F11C13E532DE5F70EB02A -60651FC2E263002D3986B7B20CC2AA08330B9FC2E26765CD52266969A86EE30E -71E0B41B6C1C6DA423D3A7E1553D2FAF26EF40DC183099322D362E4965695C52 -9FC3E5BD7ABD743CDCB717DB10372A722A39CE53FABB454EADE2179C4CBFC016 -A8E893C28EF549CA1692C8D8ADFC471DCCDE266FB4E97A1F3035801F3F034D44 -A962226E1AFD39AD32B28B924B247F85B87CC4CE00A01F0DE7DCC439C05297F8 -AB66A0899A135B400DA86109FFA7A6A6FDDD10F23FA4FB84C626402F2ADE388F -8E15FD1310A54E213599843C7E4F6320D2E6ACD58DFA107554985C62C277D580 -6AAA79CCC71454992970B82C1EC19345B393A2D13A4F5110BA6AC7747674EF31 -6A464E208F1A38FD21BF1F62E1DA0E31C3E687393FA84708A1063BAC1B5E2640 -DFA4A30DC75B3347473A27915F6E9B3911C0228107405CBE945D5A92E25E8C65 -F9129501B87E1A3E5572A24F2436C08C2D2FF1D1A9B11052AD1E15B69C9342CA -A71281C67CC3EC0D070E3194BA9F01F68658F210974EDE91EB4B1C67F2DF1CA8 -21C6594D49E7DE5ABD9CD93196989B7B5176E1C7F301C5163BE92DC79799757B -7CC33A6A525423164BC94F98256EC2CD929AAF141C1810BB3D302F83C1A49903 -8C1EA4A568D9C3C27F3CEE245A9A4AE9A376EB2BD898C915B56DBD063054728B -A69C0132640395A84760DE8D09CDC9CD54E3F5F268980C2860B66195045FF6E7 -7508F5D23E6A51A2AE1E3C7058E3F4FCE6D8147E319FEB8A5836F7810AC8D5B9 -F85F8135F813AC9F41E62BD1C10479BA112E79B080359E6CEEB2611323D69994 -5913A228E0E1DE2847E4D50C4C63EAC9F884BC3683351FEC27274728B2727421 -B6DABB1F89DD5CED4D4E75583E6A7CE327F89D70190BC917EA887E3DDD87C11E -F838D58317721257F2CAC9E991BBDEF6ED51F0719CE1F0B4446596A78A0737B6 -0802CD6B543FCC01ADAF847C21E6966A9B2FFFEBE545D3B2E8D24732E7C44C38 -62C4999D769C15F24299D76A71DBB3178582A15CEAB6A8CF8F3E6B0E75BF73CE -C5280880B7C88D6E9BD4B8D5A3B18CE41C681D6BC7C73CAACC7B533EEEE2B234 -D38C22612FC6D2075E4303D8470FFC72BA88618D7FF7E138199232D1BCFD1F9D -0F -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -{restore}if -%%EndFont -%%BeginFont: CMSSBX10 -%!PS-AdobeFont-1.0: CMSSBX10 003.002 -%%Title: CMSSBX10 -%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 CMSSBX10. -% 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/CMSSBX10 known{/CMSSBX10 findfont dup/UniqueID known{dup -/UniqueID get 5000806 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 /CMSSBX10 def -/FontBBox {-71 -250 1099 780 }readonly def -/UniqueID 5000806 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 CMSSBX10.) readonly def -/FullName (CMSSBX10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Bold) 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 11 /ff put -dup 44 /comma put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 71 /G put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 85 /U put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 121 /y put -dup 122 /z put -readonly def -currentdict end -currentfile eexec -D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5 -45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4 -7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7 -72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E -BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89 -974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674 -11453BC81C443407AF41AF8A831A85A700CFC65E2919BE7F4437ED75BF2F7BA7 -02F85142A4EADC8C9C7F11ABE2AE2A9DEA79CBF9577DD8627E31D25A7E4DED9E -FBB1C413696C88A07E5C937451D40A9211B29E24C9424635CD4FD6B16FA7D76F -5BA1DF0EC26097EEADD70EAA577531177A26B5017A32675C68052E90E68538DD -E779AB23150FCD1653460CDDCC713599EFA381C3322175809A73447720F6911C -6BFBDC0458C477D2CE69BBAFD05B5C2DA1D2E3E8378A2112066B045243D3D080 -DAB211DCC25430973C18E7FC5574A814E3EB79F34FF5197453873C8AC66E47AB -5EA57CB3C8365D5235E7746C8584734F002E9A28C38B0C25E3753D85A1D2F3CA -B8DECFE14A7AFBFB76CF3E91A1E0203FBC8052C2DF967693C9BA0ABE86B5D264 -BC345D7954C9523B3E70C4AEBBB0F2D56BAD6D76E095F9390FBE2CD607F3060D -F713ABF47F0FCA5D5C27CBCD4140C668F733F769FF5326917C0AC5D4C72F99BC -5AF4540DB169622644D320872947BCF1D30DA4EA150AA22D6D53777345858DFA -3286EB68314E30EC650C8BCC572D72879E431FB4297AAD6533C8F4802E0B9902 -8360C57504D4176C1DE7F57382FF2E2C0A3D5285A061CE91D3149E3096B91076 -1E914125CCA8D1C9230B72427990ED4468CE79C11E8F0CB89A3213C535B040E4 -0C5784E6D53C96696EE45C87B5E0DAA80D3A06E5759D0676ACF99020DCFC3E8B -50002675B01959500133BC30223C75A54948DD28FA83F399924D4ACBE33F1F2E -D85095A76AF6DD92EAD139A8D5673A35B3633D25EF3B10A40A7E28F329D6E7AD -DBF1DAD1E666931611FB107D1FD3576F11A22B50943C536DC2BA477EBAA52BDB -B65A98268602F26DCA5EC761526CB7F33CB5B345110B7A90E1D078A21E332F78 -33A0CF88EBB2CE852384DE3435F7B3564A0AFBB2024F79A633BA5B6EB7CC5389 -C43621C82972D60F7DAC71FD9DD38CAAB865D7DE4ABC39D71879BF31549DE649 -4B9CD8C149880504E5B34C2153E963B3FEEDA0D59F70E0ADCD24EDBBB8EA961A -90E5AE4ABB26E1AB1757E25572622D5A2541CFFACAB673665C7693855473D78B -847FAD590B657CC0B8289034AFEC3C54FE97B010535F70AF67ECC88E21B077D3 -A9C2C52D25CE9714EE430735DB57991AEC946C96B6988B2C85D17C8BC80EA844 -3A076618A686040ABCAC347F1B1C14676B05E13C239E99C3A2B63D0388CB50F2 -BC119D6F74F70DD96BB5343D5458950070576BD6E319AAF5792EBB9DA5778CA2 -58DE0976AEB766DA6A865F09FD6753FB4E7E0E9A06AA1A06C2636AFACF787460 -9E73BAFC4A56A99277DCB14F52555EBF6DC5E5785EF7745521FA061227B725B0 -7A5BA223D5EE9239A7A1694D4F9EC1132FA23DA44ED0FB0AFD8987A01F9FAE15 -ABD485BE098CA7B1AC780A9A02AC58DCF0425D4D110226DC7B5982FE31BB78A1 -C0AAF9B712E8D478FC4F85400B5E6D71AA653F9BB2E967A76D02B04887CEB9F0 -0EF50A956AF7F790400EBBC07467D9A8BF8BFE8200F8F7EEB5DF3E62A9A332B4 -513120FD9F8A93ED683CC47551C629B5313E4E20A207845CC37491ECC3945EE2 -71A0C5633B353B03B1A7727D5D9A0478D20D67A981F6E5CD8737548ED4348A91 -82F2CE805724A028E346E6B7C542FC69CFC7935E6CF3320ED9701C6127FBDFD3 -B20F0DC2D1F92DC69E4FEE57B457E82D5721D932B140CD6DB9BC86B961E7E6A7 -5816F42AF937D97C3149DC2AB0054564592448D0CF52427B766FD38E3B040B81 -59AA9030CE06A9A9E3A0572A11BDA85531060B75DF8791176CDEC0A9BBF472EE -BD433BCDAB926689B8806CC8044D0925814C1784A41CEA48ABB9AC039485BFA3 -026FD30CCE84AC57DF09B1581ED01B3A840AC5E9208465BC160238EECC7A6753 -D5B65B159FB08E0DFE4C9F2EF5986352C0E0C4DCA0EE62EE5C19BB6C486FCADE -99D3519723B70B20FACE685ED8D364905EA64A15981B00A6DC06D7B0E3D38FC0 -9DDF04221696F7A8F3CC7FDBC25A61D9AAF9F65D3A64BCAC4084CF13BBED7195 -6BA4C2445676804C333DA6569E4AB7E6999505DD1988C3E62495DF61B722A6E3 -00ECC4EC698E33F7B8225FF591B746E449D2D178880741074D0C3CA740312D21 -1F8B0B1A855FCA081AF1E69D14C9131B1769943EA6D5D6210E10BBD9E404B445 -FC3E2ADF8C9AB6AC07BC2FC0482515625523C04303F7884283D5CC35A4A6ADAF -59738F3DDDFB51E7134327AC4CA577BAB076F3B588FA3828971FE9D561F46358 -24BEC4C7F84D8FFEEAC94E2C632AFA5AED635E867AD362E373CEA718C750B4B6 -954A7CB6E4CB2614A4E1C707412B7B09F8969EBD5B6510B66818A2F5AE4EFEE5 -9DD7690A3520C477DECB7D61FBE5F84D1C655971FAD7CDA78E695C18908016CA -48B468BB6B43EBE1DDBC49F43B7CD667B4131D7B0C9BB048178A31D0CB70A76F -527DD352F7A9F0F35226117FF305A9DF4AEDF474FCD5C7F31FB06D4B2CC40629 -1BE1F40B6347201F84BF35CB5155BC4D2E1DF2A5C7613C27A0EE77BE55A744B6 -DF7DA5741AB55F133D518660751B0A91E6BE43B527E9C97E2F06FBEB58DD0215 -BF4105DAE1B2A29DB05FA204D0EA6E574C7344C3B3F44092F7F997654D61EA9D -4C811CE6087BA1615A31F8D107DC64F1CFF707234135B728EAA0ABB475E678D8 -9200950F24A8A61AE6AA18F34A067849825FB3925A8E01D64E849546FF7F4418 -19C0FFC2EEEEBDC7805612F7849BBA7BBD954BFDAF2E6FFE3CA520B79070F8E6 -B1509EE0040714C9F5023816250F40FD1C6867F77FC8ADD3A16A3A6275CD6F5A -21BC03274B350EEFA6EE929AE91DEB8D8B309E3B3524807B4562C7758794A8C8 -4E3C6EE0C0859AC9B799428EAC242BC4AD9564F2444E3C79F11D4C1D5672DCF3 -2E191E25165C77EEA2DB51753ADE07F5E7E748704000265649A2E1DF68909F38 -68F0D5F415330C9537A065728D2104C34CE05458AC1B2A53946890DFDD67563A -E044E7AEDA111FCBF431546D410D67602985F6E13988999E46C80A983C7F12A9 -FB56C6735454F1E194F63A1B6B21683A281AC6164B3229AE25B1189366C9DDB4 -09D1BBC8429AC3D64F8BBFEF1265611E7C2FE1D3A2FE24FBF3ED96A5CBA6FCA7 -847F5E3AD4D14C0C77C225588FBD0DA2E960FA3901DA1B46B796121DC804FE82 -C382F75AA0495312A80EF9350CE0F80CE0D18316E5D02B7BD78667C2DAABD879 -E17D5EB8F274DD2B1BFBC04EA2F72EE5376D01DAA129FE257162BD19D19B13CB -C13181E6DBC12826AFFD87AB152A59D67D0FBBE5D9CADDB1CAA8C27689355AA8 -FDC556015E4A9708995E51E46D6D1ED7B68A61625561FB594B9BEF87A1720222 -64E4F8A47637705CA32B1B4CA5B8473F1D67FCB7E4041502B7ADA9FA4B16CC6D -282FB636979D3DE7C76F3000ECA08AD6E116B1558FADCA251D67FDEB4607CD3A -84BCA7DF488C97FAA4FC195661D7977A08EF04A7D9A2D619EFC7AE291D7DA633 -C6DBCA7DA01EF336E378764F6B4E4D6C517BE05F10BD1FCDB20E5ABA7F65A8FF -17D93CDF1E60787712C40775A5C3808AD05A2F276C94B05E10C6042604F592C8 -AF1F25B98A0C78AA7BE1DE9ACF2273965F0795B0D79ED6CE2753FD0FD7B41A18 -FB490B06B5467561DFE5161C27F58E48EA5F38A5477C9CD0C2FA13683271E55D -8B08DA0C96BDE97C653B0B18096EE7C0E6BC3894057F14E83A902FAAA4C2AC7A -566A9EB8F9D622476DD4E722F55F28230124F67501866FFE952AE93DF5BBE2D9 -4B9CB9955320A9E256E611EA3838ACD9073107936226140ABEE92A096659764C -4ED2485B33E75BEA57CCF19AB9409B684EB14103ABF6811E7A8C0AE0C0C11BBD -87801F3F0260D04A8921FB9EBDA2A2048F4B5C47DF63051A0BA6DDBBD895E0B5 -F9F0F3CE62CB118B86AF595F4F34359DABD9EA354798E8561599CB32345A43B5 -93B217C43E316BD10BCE1C66A10C9A8041A14570ED7FFDD95AAA76E92EF52042 -69F0B8FBE21CA4E37647DDC890D13AF489606195900063DB0CB8D71968C1311A -D56155D2B2382119E603AA85E9ACF1785E4C0ECA137E7E4F5EE7915E8A080509 -02FFCD2494DA2D3B2AD27DE5F11684BFFA2366B6C834AE309D8E07F98B7B556C -DF3E0B42559610F1B78C79254AEBD7B0F5B3D7F420BA725AAA91EA20D014334E -8FE221BB02BE7B59FC3D03D8ECBAE21F5E37E4A0352C475F9F29C5D2FCE8CB9F -2A059AC06AD9E6F13C39F2781D7D4B3FC34291D165E5C66C5D01B5AAA2AE8F72 -9B3C634FB38FCF35283792048BACA9F7EE6789621D9243B917234405BF194BF5 -A4F137680ED10F216076AA2767C1D220AE71EA7393C7E252209B6ABD94213AE9 -F61FD2CB3160F41C4328DB8563483E13EEBA83A7935E4AC11A97DB7988585184 -6BD3DBB8241EFA1F1DC5CA9C2E16EC1EE12CAF4471FA83605DA85672B34B1F9F -8CDBAB6907D6CAB6DD7E00A7D636EA20961BAC97D1AAF32C8096003E096855B0 -EF4845013B9243A29BD509436CA78C6F8DF4F90DDED960A0D12BFDBFCEA539AD -BD4BF883E09542C9D75DCB8A4AE82DB495B0B918D330979F347A76D73B19995F -4039557D337FB55B8C5922F35B354F6C8E4D861A0B66B3D803C9862C9C507404 -5EE039245AEDB521E90F83F15E44F42F0802F8DAD6A9BF6176C364286601FC80 -E14926FA518CC035337904132AEAB9785361709CA01AB0F352317294B34B2B20 -FF88CFBCC8E89863BFA2D3ABB2A596C9D9DEB261CFE48E403F88652150EEDF05 -3390F002B2E4B53446FB39C488E3D0D4EF4AE2AD19019710FDE56FE29B58B00F -0A6D5B26B814BF64F13C35EE903FA2190F460F9438924E1D7158704F305E326D -66CB529B3A4836DB0FE383EF989C975A2F603332FFE0748E0D695327CC8D9AB6 -E036E0E6409261C30B80977BCC3CFF8FF8A9BCBB889ABE47B0CE3450783E1EC7 -1C030CC18E074E01605908C3FB61B78CF4FDCC8E8CB13EB77CE6FF2BFF91D658 -51FB05DEDBB20B0E4C5604AE3CE6D41A4C8D71A1F90120B1F90C83989B892253 -31D06ABB335DE237CD0CDC91256A54797CBA5E284B6CEA6FAE01F7BEFD905E5E -139D57E163137B5751A765B46A3AE6F653FF2551988CE792011E0548CFAA6ADC -E32B876763AF6F6FD6864E7B55E341C97FFA711913F8A7FBCC1FDCB4CF2F4D3F -17358EBCED45C975F2EFF3FB9F77A22EEE4C9DDE63360DCB2DA2C1AA4BE44BA9 -3F9CE6F27631809DBC45643DF7BEFE247E79AA7937C409986500EC1026ABFDB2 -6C30E0A4852A6976A73AD7483C36F1717460327BBC05DE729E23D370B78630D1 -7E87C99A5C3A3C0FFE204EA81A8A33D7DE80DF3C0EAB557F4E86DDF8E03AD072 -61B1D8E1BA05452A6FCA404D9BB8FE9831A367B0AB31041B474DA9536035E7B5 -EC83DEF0AE17DCE958DA19869DD51F53D4A4BFCF7CFA635D6F9F882E6F0215A7 -0494E76F258D44FF72EB5A1104E8F73AD2F6F2ED337D854B81DF4083E6A2D679 -6B5613D76DA2347118CF009E8A88924C2A42B154DF1CEFC93C89DE0ED8DB26CD -8C2EDE2670F494DC591E79DA26CF8B5FB76613296FB1F39AF2001BBDAAB12CF4 -3906B4C304CCF1D066524DCF92FF484CC682C2B197CD797056555F318279C3A3 -7AD8EA9CB19724AF57EFC6706157A5E2F51F104F6232F252594510E0E4BC872D -D610F4C99BC3ECB668139331216DF1AA8F6358EB90CE1F0B8267B878B19BA7E6 -77A53A674E0B029E9142865CB92A1596D5AB97FA12FD05A04369AA00BDCBC2DD -1AECE1A4AD55A93885C626004B41FD277AAE6DF68161F7443EFA7D9C913AF909 -970F4C6292A694AF033B953CE37116A2AF2439E482867EE9EE2BFE1093A738DE -24D3C408DD105CE6D7B8967994F7C5CE49FBF61AF135F8F7799E2FEF29A168CD -B2F16F795FB475204FBC41AB78AF87E4E80F992FDCB770A3DC0501AE1D786ED0 -449956A1BDC93876934331C24CFE4392AA860A1ACCA39978BA8AB90A2174F5F4 -97539772660D3920E1B57E9E0674CD34C9EDA83B6AF1B06B26207FE5D67E75DB -B170F1D01D512CF6D586DABFCA32404253F0A9985A29D46641A81D5A810469C2 -8081D7774B3188423822003AEB638F21661E0BA7AAC765CF8321F9677C85A562 -88AB1320B3256EA9FE0C67E5B69A5127DC1B13E4062CD0C9ED10AB36CD370105 -8FA04F89E3F836B01393F1E9365077A30D8E46B67400DDE8EB0AF8C815729699 -469773FC3F0ABCEF752A5768C9DAA1931421214E69053775A238553AB6620E9C -E875223681E60B7F7B25BEFBECDD4FF799ADF34BFB397AA114515E2133304A57 -B422E97EB3FC5314F64BAADDFEF9C0EC719A78915B26E7E3F381435563F650EB -7587F11CA3B14875F6B1D817C1EFA0B89C85B888E8391C74D77CBCC6A990C36B -1062D049E20876B40CB030367818A3CD3E2CC354CDCC9A0FBB8DFCF7135FB2E6 -A0BB0C3A441CEB8D5FE849AC7299431DEE27CE28B33AB7E836D6958104D1777F -8010546687CCA23DB48E53376A446136F449A92C07102315D4D0A897521313ED -1A3A8456A70C16EAA50A3E67336DC89FEC56AB54A579EF264377A103939D5EE0 -0A90B4F20AE1F2511469C34B5984A04D5AB8A162F18DBE4D613BA1C1C85E994F -80AFE3C18A045148018045C63376CDEEFAC53A55DA67D5980E3A99CC1C981FC5 -5C25CD0A685E3AA6F8C0B8FAAE157DB91AAA50A2B5F7D8860624F29B8DD87606 -C30F84C33D802DD5B95E090BD7AA4400E090DC1913BBC392D7E5E87717AB14C8 -A031737560F3D132BAAC0D6DD88C586322804BC2D8C505973F015F7662571FD1 -C89CA0281CD48AD84B9ED8D70D240A4EFC2715DBE98E545B987AB64FA259D81F -3F768326717675A3A2E22F4EEEA22A5201797C6D5EC644318CDA28A2C3CCD123 -B0159205FD52E1F9A60A69AF7B40C4F7189FDED20EAC3869E5F53F4955CDA0C3 -2B06D72EA2B8CA5F0B557E9A36B8E9BE7EEEF96B5EDCA6F79F53F83234B2BD45 -6B3D631B1C9CBF7D283F377177C60B3D65ADD945D31458164043A17B8DAC8409 -B4261A4A0EB36E18BD104A8E66F45C3AECC07F4E8FA9F3D2A27334F95AB79BF8 -06C18D57EA745116DE0B36C12B6F5411A9805218B5A31731CA0A35D9AB6BF5AD -928726A6EA61E0B69FF0F4FDAB2CF5B222FBF9BDF4F89EE47373AA3944678328 -1EB230EACCEFF4243D6B4F8797482DAB78C1A053F2800144A4C76BB839E536EA -2D4DCEB625DC0F754EED8BE3FA53A7AC3ED17C92757CCCCDCBE21A9D733291E3 -61235172F117D4B8305B45D7728DBB2D71411954EE599B0EE786D7603D61CABA -AB241062BE3776FA150680F9CB8784FC7A94790FBD2922772EE886254B59D0C7 -4A4DF7A2C1C4ADA1DBC51CE27D3FFF7F96BC5FF7382864369536BEB2EBA6DE2C -1C427990F6BC84E92CF718BC6D4CE9EC1F2DDEB8637AB1FD673C5BCE1A090146 -171717B39B9A83F2DE0B79CB1B836390828B3EB6DC397AADE45B21F55D1A3583 -C3A5BA93A4ACC08CCA4DB80B78AEA6002D80C5513A705E7232938D8423FFC72E -1B96313ADB255D43E2676DD2B00B51D116A328164BDA8475741EC234EE6581DE -06162F006405D6D823DC47DDD14536BB530D132975C0C436F08F9243F1A9AD16 -898823B8E2739B4428E62CE0E41C291157F1886BF937B3D3B9B6DF0D0EAA38C7 -D7F17D962490AF81157E76074422D746EBA97ECE803A205B482B03FB06D080D8 -05CFE4868E62494AE445824BC127FB7367DD9F70B2168F2B8CA0CF190BB838C0 -67563169C8454E5D0DA086467F1536F5E8A1E4D3E727B1688F745FFB4F9E56CE -4DF06341FC891C28C943B570A7A38C595E07707E41935285DFDCA777CE731DE6 -B46EE9D1C3D61DB6EB8434F17B15274840BEB842587F3B9AED05B97988E18380 -9095E88840F703E9BF997E8A666691909635B7CE630194962E4183C3838D9401 -260A743CC9A7FC4713C309364EC95DE29F6D6E1FE8C348E25A878C7133EEA500 -102E3952322F6337A44AC6070352D2594952A1234035388F5E4A9BA075B48F2B -BB86E2FB3FADE2F7F18B865A1C5CC0DA17E34F9F8127A8D020AF96CCD64B5BB9 -90D31E59E4B8258173740252A2667C765A7567788E9F64EE4F71E704C8F7037F -43BAA8BC434FD9680AA039F1DE6EB2DA3D71B47DF439558CB59EE04921B2E186 -4F99469C7FB363F4D59CCBEEAFA09987B5978A87A278F8D21AE383FFC43C30B4 -51DAB7F784178804D2BEB5031508FEB0ED5ECF846D99F9AF8DF98647196DEEBD -0EB21449B5C2CE51E49A07044356A8C6C8B9C3F3E00BAF3B3C58A4DDB1BB6711 -98ADCD04C76640DE3524BD0622A445AD11BB43D8C4628D25551C686B0F7FB8E8 -1951064B4E1834FF5CAA8BBA6DFC1B2F6E8A9A91B0267E96D73A17951D0CB96D -4B8F9CCEF3C84EAEC4CCC5C1E4B7D14AC0EFE5A42FF7077083405236F7B6BE76 -A141F2C6ECF4A6CF8E183B5D71E7EA9D370D20A8FBFAC9AAB39662E6D1DE6DB7 -00D37402DBAE9347BBF0D65ABB6224F5E5DA0FC52A80C3C2A0580D065DCECE2E -FE228239DA44AE72F8730B607591F517CCA3BA9D94A72BFDE1AB707BF3B45F5C -D26C958C757167ABA99BDE64A35AF5C80A1450986080788AF2E70979C4696B5B -057E03522CF0DF8CFE4F4ACFE7114AB435241AA75EACFF4131EB35987377FC45 -32E001C04839E46FCE7C80C0AC8F720963876CE7947198C2DF6AC8869E15EC16 -D6867AC12F40F7FC462E55952C1CFD9B01A7513A6C0D273E88B504BA4429CCFA -E9B65D65F8B3CEA519DC3A48DDF2185AC8B1DF1AE3A3115352DC3C7E17413B20 -5E111B8140646020648F9677A27019A909954D5C4C02366F97D8DE10A8EAB4F2 -D6F6EC7137544FB6D10F9577490D9588B730FE9A349A7F13641DA4F0C6A8309C -E5BC7E0E00B732FF41483EB5A5751A722648BC8C8C7996060C9118EB00C227C1 -2BDE3E261A4CC4D74A0F20733C42AC4E1D88BA79AE7124C17057675387FD1E81 -CF24F6AB1512B8A9AEA7FBB6E53D7DAF283BF863EB3DD7F9F55C21A04F1AAED8 -7C854F0EB136FB76BB96D8503D6844B79000254377EF99CB72433AC6DB6C8CCF -F47E4D44F2B4BCA4F750BE236F541C763CC890DBE03F39C90EF39A352FEDAE19 -B261BCCA04AEC45E8C9D3276D4B5062522F44A925B555A6EA6E5F16C33474080 -C50F068696F90B465620CCA8B2181CE92417030D00AAE28A85BB1A31B0FC5A91 -404F77036F0EC33C21773C46EADBAAFF95C07F50083319EB83205F2B8137B343 -02AC094DBCF0506C3CC757D3663A9C06B49FB9B251DCC4D2708499C877D26D03 -4FDD5735D5EB233DE2C17258DF16DF6D4974916F5A6D014C600CF7AD18A3153A -39EF17B01F13524EE7DCAA5CCC0D80EEC526F59DABA970CB5651CD6E9E71BF4F -09F7356C2DB0A1DFE82C4C4969DA1CB1D0AE0E263A53B8F0529AB5BF0FC1F653 -DEB838C8ED968AFA0BF8D9B7D51A645C95A415931AE587DA37213C0C51CD34C1 -66A69B1FF7DA7E1A1BCF8496AB284E326786963B59D9A09C7AD30115FFF92536 -FE458D70AE2DE5EFBC54763176A52565111C05A0E81468F58F5BC98E55C12193 -DBEDEA09AFE84A9292983E882ECC6620278E7DDEC5C6D8FCA4AC3DB1FA0E39CE -B198CBF6204C25A8BEEFB45D53FC0E6895B29AE2F95160723B11DCFC06E34E0A -D4D216A8148F39767D142A14FA96E7F0B92DBB7886ADFB4E55B7A7B4719AFF55 -0FFCB6C913D3D0A5287EE3E01476802F3996854E1C43C5136C6BF73ECA3092CE -5A42AB40AD6B235330ACF421637A07B4C473FE0F8373D3721C56699078D0737E -A90587194647F24785B302C756C44D900E0286628A3C560715D504F578890B8D -E836F9B058CE94DACA1E8D1F985B6FDFF6A333BC8FB9E0CDB5215E2157D7D044 -56CA63DA9955A67AF2E74AA249E4F4E9A6740195F8F7F217B724DD78BF229051 -CF865DEEF4DDA79B66C410C224CCE4E887184A706A278A6E280DAEC8A6DCB4F9 -729E9FA77B7A71210D5E9FF8493C6731A2E06CCCAB2DDF2609462F7AE842CDAC -3B330E77DE11F8933D0047F2AE7C1511D91C9EFCDA71B665F941ECBB02C25A0B -9F93498EC1D4FF58630DA69C0EF224669A64764A2B7CE2AA28267A54EE7D6D30 -3129BEB24FDB02F234C87DFED18F99AEA42292262E0250275E3CBD337FFF75C7 -7A24D5FC81E9B92EF35EAF2C94D9DA8B7CDA46B4D5D04B05A8012549600C01FD -0A479208058DF898F9F2D66CC5800D3AAE341037684012239F852B33353B90EC -A187BAF521E12266FAA1F2147B524C14719A22EE48ECD5C1904403F6D24B423C -6F2581355A55186009E57266D206DDED832CFF38AE62A7C4C2AF813A84B38867 -EBC5AB8BFC2F6DD92ADD7C25EF6861A2E858CFD9E8071A927E8A6D21F32E1D2B -3841261A0A65453FE299AE9D9F92343FD3E59BF896BE4F8F5E37301E1FF54445 -29A78ABADC532F573B3AA814A2B8E8F3BB7384C9B1E2CF076D6A4CD12735B732 -D86A6060745C3F2259532F2F736121695C9E68DF2C492600351418EB5A898BA9 -EA56103B5E362C368671D30A51312EA1ADC0D461FA7AD0AD0F1E12138DD4EF42 -D95EE63303C802CF9323EB0BA982F0762222D2FAA808075BDC3C98E921F335E0 -A165821C5D5D94B74C9A58085EB4F4BF49D6890F31D0A36188CFE1962C14D5C9 -4E38FB3CA04CBBAD7DF0B93B54B73981C9CA5B0F29AD880B4DBCCAE5362BAC2A -CFF5287031DA97EC29D758332CAB38B1FD366ADE966771B5AF7472B9CE45D1E1 -4C8E7CCE80EAC82E3F862AED69465CD0A5BEE34490CD77F0B0AB6283D0211F2E -AB4E11B8C82EA079623B4C72C5F515DC6328210AF19C3A7DFE965AAF74D505DC -22EBFBDBD9C9D60D6D78A00BFB189B951C63457EAA2EA85914C8B170EA410468 -2E73B28DD36AC2BC59970500FA332488F1B926EBEB43F37CEE560190963D6862 -0C8F7F9CBAFEA3855503B8BC04A75CA357C3415584E9A6E7AD11D3ACA0E48032 -3263292DB49F5B2D68BF08438B2DD99B53CD91FF206FBC520CA93CBD1E94AFFC -57A10246AE461AF37E2A30DDB18766C17506A9913783A336C9DC4948E7B78CE4 -F773A12606424260A6885E032BCF4499464C12ED15E0D01A2CDC28DADB8746A3 -81D4AF22F02D075C5D2694363AB65E2383B629F572B6A3327507A5D0A0E3BDD5 -8ACFB96368A60FFF7F1FDDB27FE8CCA96B64022E2FCB6F0BFDCE088C3A26D8DF -DCFAAF3A2C3D404B7A6CA002C9DC171B02F806F0C9B7F571B5474F4D9318A005 -AD6A983047B23BEE8F55C980A4255386BBA9B1DFC45374670EBDF72EEAB0E5B0 -A3F2940FD70CE16F5F598C6B0F6A38048F2EA10F68D5F0C6FFBC07BCECBD0E3C -246A53B0483A0A9F1FAD2815B97CF5D3115B409DDFFEE27545D2772043025537 -3D04EFA9EF5563F3E5F6379580EFB79941EA961E77D42B1C3CACE31BA462B82A -DFDCAE87FDA2392032FD811DDDED35864E4A85EC61B68DC5A55361B3F3B54147 -05F683DE5555BA3065BC0FF577624D6AF22120A795A9906AABFCE03E0399B7E9 -31A53030B2014B57E32A2F2548C4BBD88D112D86819A74DCA21E4F24F9BC632F -4B6A07180796B05E1C329E3B137C476E7833F42516D71A7E6E8ACC3EFA2AD8B0 -E243EEB86E8764BAD95237D0DE6DE8C96D5A850B6B4AADE1BDE62B7A29DADD01 -D8AD258A291F98B57EB56A7E53CA2CA37E400FA52AD8EDA9992538B3DC69D5F7 -55052DB9BE972F8CACF0F1820DF5672714597EBCBDA59BB8A91F8C9D353895F4 -6FFB1301806BB3A194550C798CBA7F2E1799CC7AD8816C97F5D42DF44285AAF8 -D94B22BA2DA93B961C3447A9E36E73E62C3158BAB675BC46BE0584140D58621C -F80E5225EFD57459055CB5FC8D17E3FDBF1355A4FA515E39663EDEAA66BD677D -E9FFABECF40E2836AA7CF8D7438C244BFAFB343D1866A5504D55F6B5219D0FEC -980B7B91C718AB802A8C3EF19D4C33550034D686D04385DA603A6A099C986622 -00C64E39E27C95596652640F26938C248D1FA7F2ACAF5F0DDBC70F8C6DA2EC74 -315C590692BEB807927B7A60F16061AEC0A57119A73D88FC3EACA1BE1537BC80 -CC963B2FB7EADF916B506C78F32930FA2159F23B8F9C8FC73FC998C972128278 -590F4000F567F85A6362284DAEDDE4E7996DF5F18FDD5985AA379CFC8D501F55 -62F68333676C1A750B344A8C2950024AFFE8322B86BEB28B00B1A179F48B2A7A -3B814C840BD47852FA6EC5D1A6948BE58E5AD931A4CF3249BDD8C945CD9CC2E7 -FA20A3A6DC3D5E43DD88B1A85003CFB546C6CE4E5278D0C60DB1D6200AD5FA32 -682C9E3F4B5C95D0788CFB2E2BB042ED6BD0A9643F8B31DA412CE97F665FB356 -08488ECEA5D18F6C38746545422F700150D32D86ED59AD1F7A32D185A38D555B -3992FE710B379B4CB6ED0612FAD4EB10EEE8B915E40545EC924BF0434AA2E15D -E8958604E80F2EBA44CF0F3D0FA461A20BC31369FDF487BB8F820D226F1F5013 -660B935F40F6FD5BA538780E569618F25120F26CB6903786F0D38E20F504AAB2 -52D7170871A73C6C9FEAE12A0CDDFABB0D133EBD31598CB8D14A1559DB8CBFE4 -301BB7B8C811D4612F91496FCFCAB7D110639F49BE71C3478EF633EBE6EE4ED8 -B7AC835A975B2FF6684810BB0CF57BB88ED5FF8A00FD00F28F7D46F8BA089BCF -F7CCF4DA30DEFB2330DBEBCF928875F40ACBCA8C815F7B3A64E297CF3FD626CC -47D247CCAB9B7B772BC934F0983E6643787AE1F50502B4D6DD3824F3963AEF8C -62353F8CC09FDFCBC69B3EF51F1B2CB8907B8E26E8792E22DC46B9A9F2CAD94D -0916F6FB3F189B5621D374878E636EFD089E81B7DA5C7F67131B267AAD36124D -E3DC8BC08B7FEC1D8EFB873798613528E04B694780E2C4AD132B212D59CBCE57 -EB0D92B5C590ACE21F79233FF8FAA9F03141F84CC59AEAB1622A76034539DF61 -59DF9E448B7DDDAACBCBDC996CA2A2D2281A9FF9DC3085FAB099E0538174DA8A -480E6B2C82DB804FF228992270E1039CAE24FA6C7ECCF47FC8FE3DC93AF5CE5F -FDDC9D104966B8C098232486727FFF7D7174451D1C559AB0AB4E75BC64785F74 -2569C78EA16F0F516CE3065C483E6923656E924AD61027D7B2D33F2FD97B783B -D7171AA6C02534543F76F56D0D397C8E981C0D32DF71845ECB1B0E8DE3A09FA6 -A232C2B120A80FF68B779710493AF2EFBC22090C190AF97C4445BCB7690518C9 -4E59517C36935BB565559D1F36A1F9B6C9B4773265EB63902568FF99E7CDCC8F -9AC8F6A1130294527F59187DD7E69A0412D5BD5AD4E1EE12C5A4A5E21E460D67 -16A5F7279FCABCA3BEA9655A159036417018139F31C43D2B50F1EFE12DEF52FA -24BC855751201D413AD322E884CB4BD220725C53B4534084958FB53862A9CF34 -996E9491B848A9827D1856E2F4E83BA71C15C2132B64967509802798A11089CB -47E0474D0D62AB4BC9AB39B7B41F93332B2B68BAC5979BD46403FA4B079B20F1 -E36C5DC8CDAAE3C5D97A289538A8BFB7B2F425D94FBAB3632BD44064EE1FCC01 -CACC75076BA87D29A4079B24C20E5AC57645B3BBA1D67FBDCDEB134FBA62E011 -F50B8728B5DC0E0517EB39551A6DB31E332CEA857E8E5FD62C8204EA4061018D -83B9A441D730A05332FC7FA9DD10C9F785B14F4A6B9CD06CD0C3DE492FDD9B4E -BFD04C5E38B10C2D12B10A1475B753E1E4906D4EA72C7F2ACEE0D69D0FDADC9F -982B151078F96328E9909A9C39F282028EAAA4CA6D95938D8BF9CD1034CF0501 -9AB0CD7B19AEFFE54EA25BB0418DB5D068B68DCC68B45B2027C5D534B9D66984 -CA6ADA7A52BA677F8DEFFE844656347B514ADB52AD0509FC0F9986D8D33311D6 -C014E6B8BC0EA58721D9C4D92A55E8B973FE59BDD6DE5451280ACFB0C2FFF54D -FC5184B2390C02BC342872366B98CFDC692111A5D2D5322AFED9C4049B1A5276 -9283F09F362344DEABA5B5EFF2748964C3D3149A9DC92A4A7B66E1C8E3F2D3EF -075DF53BFBCF1790B255C7FA87B398CB4DCFDE1692673ACE41A49921A00F2E96 -F2909E3C8DD7315CA1DC44A9F504084BF32B442B72566E9041BCEC2DCB2EEC02 -532A7864D00CD9AF4676C0BF7ADD7F82AFD03E94062B2297B32EE22EC57E39FB -82A52D9E53F446CB7EB9E1372CF30C269C4CE5BC6ABED3887C679948711CE525 -FCFF55A15AFCB88BD9B03DE2D4A8FCA7F1A5F75124677237E667DB4A19ECD57D -9FC9EDA5A7DE854C8C862AE0133C993D19643BC7ACF722FFE9CBE54987B09E21 -BC24DF15E8669F1B89BB7606D791ADCAB5747F29DC814A33DAEA5E7E239F9ECD -08DA565A271B15BB9A0201B80999D067DD96AA2BC79B4C5FF94127F50C5C62B9 -C0F805F54C5C11FE40952D962624DC8EB57C6494780926F0266AC161A7D6538B -5E536518D99D9397B37199ACCDC7E5D506782ACC9E455A4FF2EEBF6E32804402 -6CD996ED3FD8D834B7BF693EE569320688672BCCCDB2CDC454A54D53D2F58F99 -B6F3FE0AEFBEB573FC054159F73E5806B9EDDD6CA00B982159CAE4D6AA001322 -1EE16D0A7F1249277EE4A12249864167F38DECCCEA91A86514425C2677589A51 -CCBA755E7A82F864AC991071504DCE6C21253F3C952C4A8844826D2682168573 -DDB07F5E27A4A5F5DCE16120B0AF579C546B73BB3003F0821A071EAF4DAE7BD8 -79789F0F4B9198716F023A0B79E021F588D0E60E8B1BBCD4C4A0065582AA89E7 -9097077CAA4A35D34BFE16290ED3443AB1ADB5468D78C3B3064E96BCFF71EFDB -BA0AB8A4D2439A51F31591622B7766078FC2D5E7D6F727898A197E818992AC10 -C6199531D60C8E8B10AE0974C979DAF7F30EA87C2A52A2394D49C8E76515F861 -8B596E17FD9B599DFFBA26C8CFDECE79DE4F871859DE9D0682A68BAEDC176967 -60F808C7FEF13F630E9307BD239914F8774A1B7072E27EF5D7F1DBB7AAF3D0C5 -AA448D07F6808A5A72D5DBB9EAE4B9D906D256C1C5691386EBF0365DD89DAE47 -66E2C29C10A1A3D1D17FFA107C5A8EFFBC7C8431A12536B464AC96CFC79BCD12 -CE09467797C6C73097AF2A9A948244FA7D310F1EF9EA900DBFD80B822B5A7B1B -0AD222516C5BAA35AD8588597FDD75721BB4E23B4AE1F79835C8D6766A18CCDF -F179A2510DA9DE4D5BFDFE44E315661D93E1634E7F043D9A04B6428D3B9AE1C4 -F22CB3A3AC1978C93E0DDB57311825AD1FD13AFCCB67B2391E967555F9E3A3B2 -4F453091A719A0CAE3CF514BC9B68ED65E928AEEA1E61BC9AEB1EABDE876522A -9ED439A92433CA8A95B441D19C1236F1B1EA69DCA366F92E4C3F0D4E1151CEF9 -C083470E2F8202C06EDE655E14B239D6F5F4458E30414DC9A247A10932BEE664 -946450341BD1BD5C3F5A6111D1BAD32EF1EB5ECE513335576A9089BC3DF2A586 -7CB8CF140A3B9D181AEC90CD17999B37F1947926B2DC12DACC6652DB4E399C6E -B878862850F2FF07B04A16FF88E81D97AD93BE222C39C9BCFD0473E04C26DA09 -CEF8BA97B832790D52092DBD362C987D15D6B3E586 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -{restore}if -%%EndFont -%%BeginFont: CMBX10 -%!PS-AdobeFont-1.0: CMBX10 003.002 -%%Title: CMBX10 -%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 CMBX10. -% 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/CMBX10 known{/CMBX10 findfont dup/UniqueID known{dup -/UniqueID get 5000768 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 /CMBX10 def -/FontBBox {-56 -250 1164 750 }readonly def -/UniqueID 5000768 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 CMBX10.) readonly def -/FullName (CMBX10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Bold) 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 46 /period put -dup 49 /one put -dup 50 /two put -dup 101 /e put -dup 105 /i put -dup 110 /n put -dup 111 /o put -dup 114 /r put -dup 115 /s put -dup 118 /v put -readonly def -currentdict end -currentfile eexec -D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA -0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 -51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 -7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 -E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 -0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 -C01924195A181D03F5054A93B71E5065F8D92FE23794D2D43B233BABF23DF8DB -B6C2BD2F04672F9A3B7FE430263E962F16A948319C51B8ADE6E8A80D3D88023A -6DEA4D271676C2C8615C4A0EA7DC8F6601610F398673A4D4B905F49EA868FEF6 -39BE073001A36DEA6C08ED51452F062B971740019692E221F4455EDE46AF24B8 -407A98B791F6AD525C72C09776247E194043281D04FE1CD1D8AD8DCEEC3045B4 -F95B3B41CD3300768D8A049815348BD7AC1004F5500817E3A267D694AE108BAF -285B288FC5F28A03E9D34FE5D9B2F9A9BB26ADE66B1CF8EB5BE606E83D213C33 -DE083C20D636EF780E761944FCE3B8A950B1E6E7568F33B557C6D59E0CEAF185 -53E609A4F58AC4D5269116F958C4D115C44B5A6DABAB79D3BB6E60BDFCECE108 -74CFBE258779F32C80CD7D9A7CEBA50A0966BD9961F71560119668C4A0C30A5D -ED91ACB30940502B24F33906D6E0F16F81DA87EB6D7FC8B7853BE388C40D75C2 -2CA8F94713AAA1561F5321CE97997CB4AF0E37F44E25B0F73CF4986422B1CD89 -8F861CA623004ADB1C28268D7F8C484AA10C9519B6AEADC95AFAA3304D60E85D -718B2F67D2B734095E5A92C90785252C98067DC05137BE735220BBCB7C341D61 -C4B98BFB1EAF883D38D7A93195A059EF82B42027F23B6CD633231D704B891A9B -03D11A646F13898F20321D7BC150C63FD6DC6BF9CAFD8DA759E95384B729A0B2 -767B9F3E55C682F7A248BC1184F7D294CFFAE0B246DFCC8F215625DDD4F49F09 -FA8D41CBF4A06152FEB152C61539ADF7E70A4D23AF8267D25CE3B12D39D62377 -547E2528D18DC4134FA3BE0437EE0B3509223D71F06D44C6227D62BD01AC0A2A -3EDA975E894371C07CA1027B102549A7D552FFD25ED2DCC68E29E71BBAB43C62 -57B0BFC6A953ABC2EF703F35D112F6B5460018CDCEAD17F149DBE5B52C2B9E10 -9818EA6D97C8AC884F6841C9B600A7D868F59C1D80E98DE0741D06D69858EC84 -1B33C6C9938B7E8A6FF6C12AD456EECBD3EBAF0D7331536B9F6422019FAFFFA4 -822E79D6D89D6366DA636CB708894FEF904F366E295F1CB808E78E883913C4FB -1631248ED6A7CF1095C0C61C4F05E4B9DFC47533A5FD24540AD71A0E2907B98B -28085EB88ABFC3478C9644594C7DC4244ED5A7C1CA8D960B65497D56D174645A -B88F12C2CF0A807DA314017984CF3C4FB7F47392A651EB9CFA961B28E2989893 -9FC4D97171BD5338673F5D1CE2C3C08D48A1B77769F01D5058236C655FFD864B -80E28F900191D4EB349AA5E400A7B0A0FCA0F3E79D7A7C69775BF754329397B7 -D18B20B2683CBC4A19729BA878B3C17EBA0A7E9EE297A5B67E915CAD92C8F356 -582B8299DE6A58E73408F525F7EA895C48A8F0D626A06A96A50348DFBE479D89 -4272576FBB0CD332193D28A8F11503BAE98F8E1D73CF5BCADF23DCD4E6586ABB -323568F5A34E359661074D50CD8D9DF27191FCE24F10225A5D721EFDE2547E1D -CA998077D2340B1A4ADFFF570AA677CDF3305D5E3A394BB1626EB35074D4EEAC -2F037CA2EA389F7683FD17A8E07C12B4CB3BA8C249C9B12D297C618009F76717 -0EBF5F2DD39A6BDA10A2E5A811D4E190660F5FDDBA29201B6F8042620397AB2C -E59267A7247B0463891831A6F40582BC3F614E5167B646A8F53D8A31717DD9A1 -9034034E705BA7884F0E0738307AF69D3517147C282747F2788462FDC4336A4F -9CD222908401A25F0A1F7B13B8DAE622DC965AD0BE62497420B70C04AF432237 -E0FDD043456187658ED93B0F9822A3998511DF05E59CC85B7B9992CA0CE3B814 -9723BAE70D2631F32B4BF93511F67179FFAD2075E1591CA5907A4C67701B56CF -A5E5B02EB4A842BA1F18D6864E5677359C2FB4AF5BCBABAFB053F230CC129B45 -8D15413F736EB07C571521C7DE2A13F2AC1C133D491B0A607197BE9AA1231D96 -BED7968788246B2E4D2BD330F802810F5BDA3760FEA5210CFC6F54748FB1D921 -5CC3624BBA5B8962AA7D94159651589540B17CF7A785F297264F9C1006D36928 -6E2756D3B623A6087E4B106FBA76255903C624C07E18A1AF4E185A533C640711 -86BB477A906ADD36EB6C8F4A12BC2F01B2B98412E4E105977640930CD998D990 -0254A1E5E9843B7A8ADE0AF6D5871E6D3D666465AE69813A2E26333213FF6713 -6F08D55A90C079A56E1B9AC655F720FC22B5AD8550FFF26DA7B0C5A0B60DDB05 -64E8FAF684F3A455BA9BC9278043D79537D201D520E38750335A4C8FEA887377 -879331B68DAD6B253F4FF9981D0F9B9550ED5179B15EEEB00E560A3DB6E5973B -63403E4E2F40A3D0B937246E9652000B917B1369741E0F913C14C2D2D6D1FCBE -2CEC4422177C58523715BD070002EC2E13D383A1DC8C84228862B6C5D3B65667 -9FA97E175239BB7FE7E37E14B96DD7960A8AD49DF428CFC13B5D3CC22E245317 -47B5244DA97F1DF954CED2D552477237CB23D037C0DE728E26C82738954EEA1F -F34FE497DA005AF03746DD2ACF77F6E6F2C224862A1D18AF6F7A5DAF34564387 -9E01DBFF49F8621C058C04C2B3F4F3033FF3E8A977B2CD6B2A3CA4A6C569B19F -C5AC457AE9AF334DA66A730960C7565E93A2D373C0E3DE14646FFDA05DF4C6EB -6D4CA8ACCA3C3115764F77B842581760BFB9E5C0EBE55308B0577A8F4D968CE2 -BA3361D79378D451DD150C34D7E901397AC63B33BD7DB13C50D678F5DE999238 -4B4EA15BD449C46F262D931478F5685CDEEC4C4201FC3EFA607AFB8F27AF6751 -125DE42D2FE2D31DE769B7E7FD8CC8C5D91343B537139A822A5BC4160BB5314E -37501F65B4FC35475FE9E03E34CBF6795AE86CE409500BD0799DE39FA69978B6 -EC74D2197C03632D3F59B85F404DB31240968FA75059B2581B101E028CDECC2E -7E5E25DFA106E9B8ADB81E82BE9ED3BAA9D03EEB22B7B67AB1262DF6AF5F5EFD -A5627EFEB84F3A5F92EF2557EDA2843D7D18C592635623CEAB14CC3620F33986 -410D6DBAEF9F86E4E6682054540E2B01D8FF2161F10E66851A188BC15BD6666E -8D3F21709F196A31EE676D28A2D12639CC2E7020A52910F052E61A0710DF09B0 -064171D05611451BD24FAD64716F141E1C41D3218A8115A3D73CA041D02B46D9 -28C3D07DF0FB668E8E91409C8D0A26A65CD737C075E026AC0A974C9BE658199B -3B9D82ED95E4646977D8F60717DA4C68767DBD7E8320D5AA1D5DEB2E6B009759 -8282F27D64F1F904830AAB501CDA4D9233FC2F12F77F0FBCC46E6B729C71F6D5 -E6F3EA02EC35D1048394F4EF2177FC5EB726DE5EF2DE7997166B8BE5B5105D08 -EAAC3481FC612665CA112D3F889A0E5B7843EFFCEFACA24A01B6AC2B7DDE02F4 -A9295AA2409A3756BAAB44608DACBB56840060037869455BEBA46F10AFC68DD0 -0563843DF111C6D34911CF13AA6023E5E899060B5EC60D0F78FDEF3E981151A9 -24903EB13ED1A67EA1977449716D1A5A7EDE1A2E9465C9C2B20A58AF02D9F373 -73E627CBF296B3A6A4670C39F3B5EA30D76F0362C81020A1777F0ADDBC6B52F7 -213FEE1718214087837049CF2AF00407639657428B9E8B532F68B631611A3501 -3D9DCA38090E227BD0D6D0FB4130EE866DB6B195C873AFD18DDB3B1E40F740C6 -B3B375ADCBBF628A07A5FACED539FEDA3379D3B60216C2EA6629BE2F65199D82 -FE3AE627D7C67270F3497AE75F7A9514968B5950E2D63C38DA240AF4E6CAE88E -E25167D179108679876E7C80C85FE1D2BCC2EC9B88BE76A8F5736E8E6B3A9CF9 -42E58A4ECB7914865E67C1468CF66D658206830B9380FE346DC2DC4BB56A92CE -4B5E4EA9036C177869315A2D9E6CFE97E3BFD7CBE0747D40CE5E8A3A0988576B -8AD2B1E4314C0D8A0CBCA08844A49F7E054D31BA7543730C0A7390BC4A288D10 -CE29E389A4791305D3AC1BB6F77C805F1032787306F78FF76A20A9E629899F6D -13356768D33D7B9E294E8CD50CBFB9CA02A193922BD9B4372C912D1689B6644D -52CAA30F7421E8114D077288119AD9514EF21E5B9989CCE2ABA0C12549FDF493 -FFB39736AC9EB72DAF45E4EA6057527FA9F5AA0A1A3F03C12F7482E465C766D3 -760DA7714D56C91BDAED507A5572BEB51A895F8DD3BD5AAB042650154FC7E4E5 -5EEA6194DF73AC5EE2CBD4EE26E29B1D2D0C458B4850BFE842DDF2EBB4E2A25D -C6A11CA2D8F346E2B736DF88A3D57BC0380B52396A6C039212699F5D3342EB58 -0C3DD5D01D5078479BD9FD10C07925556C0AB0F03606F33796BA72074549EDA6 -E33644F62CA35207D7421D2727AD8419AD1772789D33405FCDDC9286BC34C974 -A52297F5BBD2E541E8BB473F733AE5097BBC9D5FACF18DE4173B4711E28B23ED -16E0A6746A60F6FF903026A3900169EDA87D98396E762C2EC963D89197B8CD0C -25244806BE7CBF46BE60A8F9171731EADFC969C28679B025371E5572E52A0EF8 -B3FD9B4638D03E20BFDEC9345E70B8166D38846DCA68E0D0B4B53629C7E7620B -45E0A610BCD07FEF8814CF915CFB11119F42407D1C6DC1E6353451D40A382C2E -C74DF2A4889ED5A3495C3E973565F7178CA190D22C9693C10EB12C1E7A8679CE -4AFECFC964CC98111BA4ED2BA9B10292A71D5B11870EB08EB483922CE8628A06 -05E7CF6DF93E112B60EF888AA8DB52994EC33DC7277D7B7A4F913AD30257261A -D6EE80476A9A8D316D190BE6CE0046CBBCED365AB305495284FA921BE0638E00 -63DB2AA4C5F163340BCCD1061B469504DEE350B82FBE1689C1B65D095405614B -35997D6F0DACA7190D64ABA351705B17B23FE2EE5996FCD607F49F54392463EC -DD5B944A4B82FA2BE3E75E2946D483060DF99277340B0AB65A2042AD088E2B75 -BBDAB869D1940F64B50D25078519D18748AD64AC5615EFAAF4F3105B0111AD40 -70EE173ABE6A4ACE486B4E5999158A4377FDA6922FAA6E9305F48570D14BC81F -BFF4C663E1EA9D1E050534F9315A663C4C5DA52CB02EA6408AA473C32CB0CD71 -169BB43C0508A842F400240F0063243B4C459A1FCB3312C41C32ED0EE87F591A -BCB6D5D3830AE4645CB4D40336DB4AB6540B52E70E1EA415CC6D886827EBC5B3 -EC35CC5C136243B0C20B3C603B648B132B99D05F9B48263ACFA59A856BE74441 -FECF5C6D1FE9D1F4F9942F460961901E16017144C37E83C6822177B2A6C47ECC -6C47A1104460665E5BCFCF08874008302750EB991CD98D0D8D22B921F90B99B9 -05EE7C39F2BC2A7798157503743C9F2F267BDBE2E8A4CDA7317F81DBF8962E1C -EC02822CC7F770FD4D08D335904375BF0C6DAA0510771627ECB9EE69C0F47D30 -69A87052989DF80D9F4F19F75B070C3689AB3BE0966453F9D56CED6C1745B50D -813AE6D7E44B73423AB3778ABE4CD2C4DF40E14C5A426043F7057E2DFA2DAA70 -EA6723F1C7967FECB1E7C1C0CA283334163FBE31C32254490170C3513580A552 -19A5DD75E6C4ADCB12D33517A03318A6BBC7E4214266E125140D8C40F78A0340 -1F95D9FBEC4DCC55B71E89375AA94B0D55646F6C069561480407D0A3AC127024 -D7D1E9ED6B599A2A8766B8792F46D35508B66F302D289405B101A3C6BADA680D -8C56E2A00B766A4CB155446F862FCF17537A2BE85418E20CD77C4F1F69F70BC6 -17BB5DA8FAA876D0E8BABE273A19C04A8697B3E3CF4725E2C77C8761A9243F24 -96F8AE96399996001A57FD75106745AB4646FB9C6421F1D4EBF3BE533BD11AE8 -14BFBD6D308376B26E08E4ADA490DDCCA94BE8240403D5EB0FE3549061DFB668 -4105B4FE77189546619B6BCF3F9723E278E98D50A17DB8A4C46744FA21760635 -5B332689316BD17C966D466AE737FE3ED7ABC443ADD88D4823A10BC9747ABDEE -027515AC353A420523F85298029475D8BFD83A2CD00C02CA07974BAA581D2215 -A850E6E4C0A5E17E0EDF91C63FAC18C70093F40FEEAF0350B403E2806F4EAE96 -BF616A805616EE55C4657418C26CAF54187A6684821B86A76F15088AC4D5B551 -66C3CA8DC61E9810858D1204F899C7E3A1754F483134609F6EEE6364B1CC04FD -92C86EF194FA3249601AD722D75D1D395CD15A93C768EC60A486AE885683364F -93DA00A865C1035F913FDA69E7D9A0422880FB81EC23C00427F07A5EA3CCB613 -83C859958AC53FAEA26A6BB39ABA068863CCE3D447720BC31A5136E08EE58963 -093AF587A72112D55853A1048A2B1695DB2D7F13CC924F2F0902071260C33ED6 -30893A04577C0ACF0681C0FEC23E5404F844A83BB5A2F8DE1F0792196139993C -1152094BC36A6AE5BAB4B8281E506F485F0BAEEBBE71E174B7CED1E52A8242F9 -DBDF3E0FBA296538D964EB5B7A4E23B1BB0F59872C9D4FE8498203E3AC08B71E -D2B965AA6CD5D20DA6C83FDC86F4A5D68A58A72C5BB9BFE9BC755C56B24025CE -6F24443D3CF32CD711D3D94C7C1DC275DDAE3341D840090F97CB6CAEF274C94F -9F3BD3AAB3F98BA8A7B5CE5E48D1462DAAB37BEB1C10B410E8D33FA42D898183 -BD4F807112D78AA94509E33C179BF7C9E82E55AA7D09E128A0DA06A330CF4AF8 -5DC861498CE029CE8C1BD15C923A708F2E7AF98E4F7B34212A0CB417553C86EB -6DD46B0466F1A21D29FC5111226794ECFCA5DD4240C0B8D106CCD7EA6F03E133 -BB7733F055D6FFA04EF5C6F872B4FDA3E42F0F036C4825543D75682ACF71B548 -DED160ACD05625274799D0AE201305DA526E01A3D2A719B1B15C05CC09467F3A -5627860C0F36C503EE392E1786620F3F2287AFE56634E03566B9B1F537FD92A2 -913166228791871A8F8CBA1A1DA634E8224058052A10FE1E67CBD3FD21A6C07E -243CBF58BDC78577847664EEA5225EB8D6679AB17C563848A9D4D58995EA3609 -51C1443B752A070D9872FE1643F0677019235AC25DC2B29169D38308F2170A1A -A0FDCC59E6602197D2815B914041FFC7106DAAAF30CD97400C6D0826A40385A4 -C8520119A065CF32CF2FC5FBD8DFD29222528A7F96FDA533145846B3428F8239 -E50277C366418D713F84B12A5FD4F904DC13DB1844A391FDAEB97643A6FD2945 -942FD4FC5A4A35E184F23304B8B4D93D0C37EFCC4E106D4FCD0DA3E5D2117589 -3FFC2BD1D121026562C55C455C3585050B9460891B006F62D9D9B66695C3D348 -A467C14C0256FA9621CB056E7CD389505194FF463BCC4010897F9A690EA87D9D -BB3ED4C174FBADB8A4744C6E4A44D773967FD703EC37672F9993DC48BCC8A060 -6CEFE8E6B8F10886E15BA0466AF410B90DF0020FAB88BE493606B6A734EA85BB -926950EB10D2F2CFDBD182B0F133809612CCF6ACCAD049C8005A42FAF78368B9 -E7684F98DE421BE0A3BC0FAEE024A7BE67E15C8394F17FE84DFD8156C2A3E94D -08259E15CC657E8CE3088395BF6B5F825764E141AE15EBD186DC049261623D26 -8636705E06C6E4A1F8ACAEA59F91B042DF5DB9C2AB986A784384706A43E5F18E -42C29CC1CA86D4F247B3BBBC89F3633EE074DCA4AC15B1E33EE4822812A62E88 -C32B0AA57249980EE17AFC1346074800FA529445D18649A0475246A25CF325A0 -BDA06AAF392FD455218B13D9ED577D51A9500B9FB7860716A8E2FB3A8C4BE3B3 -6656C6A5653AEF00184020ACA0BCCBF48BE3BF91E11C8658686C89848E714E6D -DC158DCD1C1BC03B83FF94C60B1DC71CE8A86B46DBE661C9F8F4677F8A2C7CF1 -E41A91EBDA2304735147BE66CDFF2673F09D408297302124C127F0B35690CAE9 -CE1679120CC4D582FB69550AD34A047DDFCD9D411724554CCED753DB52D6AA7B -22B0C55EB698ADDBB0F8ED15C971AEF113C74B9E25DA29199237B98DA4023665 -C2A63A837E4CAB38F8DF37DBAB5DC80C0C3FA72C8A70DC76B5B36B2EEADDCE74 -23CF794B66E4DD3B35BF99893789063BF7B01D5F186B2FDE518B2CF2EDE51F81 -38244BC64548AC3433A80B86D6A0CA26D77F403C06D65B7394BF1FC7D06D37A5 -E70ACD844E3367DE4DB71312CBB85ADD21D5A1F99BB8427F252D90ABB66D7154 -EA5AF4A165DF6415A0880AE784071E6B3E2101F0B663DE14DB1ABF8B7CE0E6D9 -D24F9CDD9F80028D37C9CB4067A28D41E879AEFECDA71F649EB3C250BFF809D8 -1E427E3BF24E85C75F080D93E0314883988B3A4A2B72A1B4A3D2189AB6ECFFBB -C58151AF05AE335200711ED945E18B4BBCE24A8A162BD9BB26137253BA8B5819 -41E759A7CA7CBA129BAAD438E87189F2F6AE7C86F4EA099DEB23705A500332A7 -4F141D8778EAF3910486B2EA25AAD16B60DD804D0E5BAB0FEBB77BC95EDED08D -B8941E040D99E8F44E70FF842306ACCF65C0AC9673859DB9C3A724238CB8CE62 -255BAF0145692EE3B52643A0DE3E667AD03EEF6C753F57E34AECAB0CFEC7B07A -150D7151E57BB3A026D50C7A88DF5F480147D87DFEFE463F76122EEB5128796E -46CB0AF4B537987C2ED552B37D83F393222659DB735F2A293159AD84AF082B95 -6F1454471FC36D805485D619D58FC53FBD6E3F72660ABA559B91ECDEFB267268 -86A75650C3919962B0139409A29F5E3FA70B901CD5D2C49144778CFFF1D5B63E -099C92AABDAA73D54689812279C95FB7A4F7E840DD53DD3197A4E6D3099446FA -C0032FD40411E8F3300A8A8934B5216B01D916D41DDB32513DC4ACFCEFE43D6B -22FEF13D3567B047C6B35C477ACF2E172701FDB0FFFBE01DD58D7E54398EF4AF -DA5A404E194BCC39BEADEE5C76D7CD1E602793B950256F25871A9760C80B1EB4 -D1E1179C390BC240DA061C9D539B20F4FCFB72DD0C1E860DEA2988E749819787 -F04BA7A9CC3EDBF9CDE46895FE31EF0F8DEB63E295E8826BF920C8FEAE3B2080 -8C98DC43DB22C6537028798198E2D3B0453ED725B774686310F635AE6153D9E1 -8A0514882D4CCFE9D2D2465513E42E548F64A50ED78AEC9D62E0F9CF61EBFC9E -E8832D60E91796C916FAFE58F51818B80BBA52C1C06D94E602481654E5378C8D -137E3A872753CCDE4B2618C031CFB13EE91C91335441C434296DDEF61CDFBF8E -8FAF25DB3B6D6796FCCE2711938D605AAC00F0A58DD1A03FCE8732DE541E5E8A -41FC87E1FCA5CD9B5E8D63E7A7D6CEBA67D8A83EAFCF490DB7185AD55ED0F43F -9A1290E91C463895BD12E8A831DAD661E36E1B01ED4C112B8E1D0991D0294BB9 -A13B7E9A8835B12A7133E834379B3477DAD425B7996592FB0395E3B4FEDADF4E -23A07F6C0E1387DD54F5C8BD071C4E9E4CC98BB16FD06B69192A2146790B67AA -56FADF3E66C9DE6A975007BF6EFC3BE05801B2FFB32162A41F22B8CEC7D01555 -1B07AAD8C85C6196DC28076CF4C4A1C4569E58941EC067EC4C03A2F8D4D19690 -C2AFC60AB75F8A618D455B3B13A9AAF2BD7442D393B3431CDD133C7C3BB39FB2 -4F9C16AF9C4EFEE51EF298B5F6040755C8EC13E0CB4A7EF88E3592E577E044F4 -2EC01203E8C0EDE2D696E60DFEE5F15D5EA092DCC4D49B12ED573CDE6BCD32FD -6801B199C3BD68C675412849099612EA52BCD504367D0DCCCF62D091D5276CE5 -65DD41674FCE08A600644BA6809C10739E3DC03011481D2AD6D0270F9B030756 -2905FC6B07D20248F857B32920AD49354FA7A748A71FC9BAE2F5714E57C8F6AA -9362E8A8C69E14731135956DDDCE694AA0656AE18670DAA3BC88E7A85599FC79 -4A93D7F051F55968F63A8507C386FCB705BBF46AAE7CE33D950E79953DDE9F3B -04019CE057473CE62550F2DB9D317DCCAC277B9FDBCCA8E99A035B26D05EC9AB -5B3FDEEA5E6B5F589744DB14DA1B182397CF03F07D66C46A4BB5842DB2F4AB03 -FD01A2657AE0E24179E719D6674DBBB512BA97E4085C23730EEBBBC2D1323B23 -9944FC0727155B6A248DE14B83C7B313FE192599F5C1BE52AD65C5F78B048C00 -28AFD0E5B70F8524CB12BC34CD34C3251813CE12B7620D9B713FC26F35AB339A -BB48DD4EC07C9F30EF7E85931AED5B2CA6B68415E301B14680A3B9650D699C9A -592C464FE65352F56E7855FEEE8886025336AAF350CEFFCFACC48629586C7D5D -F306BD03A3C8BB99996749691B0E9C8A3C32C3C394AE9B2E7E7CC48F7869C019 -717E4F7691688FDB8B30E08C9681BAFB0F0EC7233746DAA9EFE32783C300FD83 -731BF72F6C13EFF7AF02A722D5BFA4EA491DF016DEEEC4AA85D17812F9302EE8 -C0D3169B31AF7034155870747FCA1150FF64B719550BB63C46244F0115F1CFD2 -7B102E3AB251EB9FD654EF7057A74C206BE178320D01B4DF145D6DC515C88CCA -36F894B4EE4F16964E6C44133145FFFDA237FE9329F03A34955CD521F35DE66F -1E96F90A8FB2B785287A4A6D77D423F8B82923BCF82ED05DB98A2EED951E7A3A -24E661E7F98C07845CD85D5A41A317A9D1F5F14377D75506A966334C622CEA33 -2147C7E17F4E7D1A3D592C795528D30A8F10854D497B84048CC3954B44D35852 -7B20D9741AE93676CA3925E9D2221524FBE68BED4C64FF1B61A76FF8FEDDD552 -F26F829E105E486C829264B058D390127F6F40CB8387218CD94EF127847A48B6 -48FD0B691D5E1AB0CD9B4F53D76767CEBB5907ED1D486993131F24D58247DE6E -D8D91F32EBED2672A3B75FACE3944869DE18407AB99EEF38F110610C982A4797 -32DB1F8AC46237680ABAEAAD15FCC022B7E44A97CCFC95552FB1189648FCDB9B -4E11514A957757D2A7DE972650DB9E7822A7E76D06CA8843CEEFC991073DC00B -B1B12F5F1FD47AF9F648A4883EDE733CD79552BE2C55747D7A733196FA6DCAEB -E4C8059F524810E76A41D85840139298877221F8DD695404E083A59089A726F8 -627C03F34D3497CB9A895D5B84664934FC4D65BC6B73CF85EA4ED9C2FA5127A5 -1CF68FD2DCB05FFE2923670AEC10EFB838FF77A47366316DFAB72FA65617E1E1 -1F6E58380B604CA1B1E67715D33A3405DB4C5BDA12D6BC74227FFD29102910A6 -2F9B937CD016F3A2C486C0397CA068EF73F6745D4E07AE431935C86900995600 -1CB414839555437CAA2596E7676EED3BD4C545BC36CBFBA3BA1C7FFE79A00837 -C7DFC6CB623C871E204A2AB5880D33230F4D14DE16CF1379D6DBBF1F53A4AF06 -079573D3CE3D7A70B9FCF6415E8161BCF58257C1D243EC2E0C788FD9013759B4 -AE948304ACF34F0661254C4C0E9A795A7AE38D94CA85F0AB987BC6CD15782D3E -0A907EF1071494B3B43D3615675A9BF0A25A2E73283DDE5D92BAE6709F99AF03 -F923F3B1759FA3857F76636634E05397AE767968ED4CF408AD2EABA2C58642D9 -8F284D433AD44CE6D656AE33137CB508A718F2C6D6255A1BCDD5A8511F6D51BA -9929B3035FF57C27A39E08164F4D7FABCF7890A8D05CA70DF8343F630C406FCA -83ACBA24FB6EDF0966CED4754A6D5E5492E7C6D7E68199C72CD505B705D047B3 -7BD0389BEFBA9FFAAC78B6814B1CEFD348CE29484BEF3A598DD4999F5423D0AF -7E21A589EC463F659591DFDF6482CAAA3605853256062EB72116573126F1507D -CF280F96F425238C9D82D79D7CD399DB5F8F75FCB66645C65CC17FA55B4AC8FE -B1CFA98C1A8BD360F943B9761203DDB59CDCAF6474107A53B880B69EB00419FC -D8DF80A69949E9B431C524F8FC6C619D6B61BB35990323493358266FBA0DDBCC -242FF0D9759B6E9A190924BB180C2FC480AD23D3D1F968DB91CB7C898A5B6A31 -6285A79B0FF893563999F00422F81D3C7BE97C850B177E32FBE823C3D59E3513 -B895446BE443236ABD095D25589231F995BF177E03D35E12870B680CEF505645 -8BE5B45860D905315BC27700F5C17D23B6224C27161748515E4D3D0CD17BDEAC -F137048C626C3AE67867BD5488F6895BD9225BA59B6F41B00EBEF04483754FC1 -09DFE918660EBC9E2E3682D3F3DB37231A086DA36C6F7B8D4A33F28792C259E4 -572A425EC1761D3EB74D8B46DEA01A89B0376662CEFD2D632379EEC34D5DFCA1 -94ACF58358B7D9F6B65DC32200E796531DE450654662753BB8241CC0600389EB -42FCECF23F7781B7985CD6BEDC5F3FEF7CD5A48EBD652ED5352C713E9D36D936 -1BDA95D18DAD5E7E48C901F7C0BFBFECE431D937DFBF86A034B36E7F682E4BD1 -E7F229341795ADDEC27BD550478DBC031DB8A1198C703E46FB2DC7F4BBB4412D -93C126E77D2461AB00C3FCE46BFD20F8F03F223B6B698D07258E7BE2FD1A3FB8 -C8FA19011078B8A498F1972CEAC6B4E5A30553EF75A12F65918AAE593CB46C10 -670C95387DD01F86935DC105E7B4ECB3C33F198B90D14433093DF9BC994A07D6 -DAFB9FB081F123EE651C868F2ACD0B50B1AE66A64180106BCA4A5279B40D3CB8 -C64E50D8506AE17B131D6F8D078C98BFD1260D731189BA6F6B411D7D250D4EBA -AE115DABBA864901E69539643F53608DFEA8738645CF29CEF244C62509562164 -666195274757A3A8269DCB600E81811AE932CA1C37814854BACBC0AEF9D75056 -B8400563AE9EB767FE8478CDA103295B951C397136BF6CD87D0F5EBB4B00CA22 -711D948F36AF201B749F979B0827D78D99B470B9385FB67BD2011C1DC5AF326F -B7B08953FA7F0FBAEB12947BAE2C5F7FD30F410CD86C987888F3755674D5D4B9 -51BD9D7C6C07EFA27F0A87BCCCA6895EC8676AE98C8B490BF565B6AA0CA274E5 -A028B9D12E52C47B2564BF2F4484118D1E77E6B672582BA630A6B7D7A61EE5DA -DA8B7D5BB579EE7E05E2EA92980364BD59A9DCC0BAAC3FB8DE34D8E1F9786933 -721DD0A73C10EB61E1E1DF623E13EB0458996DA50E295EF15E804186EDE46608 -BC4C8A0851887DC87D4EBC41CDD34ED1EEA66C7F30A9C890A95A65AF81168041 -E421D2D5AA1D756FD5DD -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -{restore}if -%%EndFont -%%BeginFont: CMTT10 -%!PS-AdobeFont-1.0: CMTT10 003.002 -%%Title: CMTT10 -%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 CMTT10. -% 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/CMTT10 known{/CMTT10 findfont dup/UniqueID known{dup -/UniqueID get 5000832 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 /CMTT10 def -/FontBBox {-4 -233 537 696 }readonly def -/UniqueID 5000832 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 CMTT10.) readonly def -/FullName (CMTT10) 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 45 /hyphen put -dup 46 /period put -dup 51 /three put -dup 52 /four put -dup 66 /B put -dup 68 /D put -dup 75 /K put -dup 76 /L put -dup 78 /N put -dup 83 /S put -dup 84 /T put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -readonly def -currentdict end -currentfile eexec -D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA -0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 -51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 -7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 -E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 -0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 -C01924195A181D03F5054A93B71E5065F8D92FE23794DDF2E5ECEBA191DB82B3 -7A69521B0C4D40495B5D9CE7A3AF33D17EE69979B82B715BAD8A5904C5DE0260 -6C15950CCF6E188A0CDF841EB68E5A2F88253E382140F87C87E55C9EA93B8C89 -14A36CDF630D6BE7CD36DBDCE22B21778E8648B97B7EC6742EB5114BDF0454B0 -0EA7B1FE236C84C0E5308C871F67B973892890557AA12E00B2C20C71F516C397 -3F3BBD14A1D0149CA064391056E45E9470FC7F6F556ABC82653B3C8049AB5CF4 -BA83C8F2158C236B2FFD4208846013BAF4165E8BB8D334C8FF2E8D74AF5DAB2F -D44788869B08399421AAA900ECC6A2D594641C121660D4B5F512938994C18DD0 -FCD9B008F68F0351D21ED735B2740CB1E0C1CCD25EB548C35B844601D98828DB -556F71D07E081A593FF12DAF83676492A0FFE16E95717A07082B43A966C1EE8F -8A59E1255E1705C43A23CF29A5E4A6547C93F1680A870EE7BAD8CF74D838CD5E -F806911D8FE4262ED8E7F5BC58B92C9C6D74F8AD45FBB021EC7E97393018B9DB -B1B84E7B243ADB05ADD3F1DB3692ADC5D47FEC7DF93080669E63281F1576B673 -125EDF08016664BE73364F65389F7C3B66623AD1754ECBEF9E5CE6948D933787 -A5674279ACB2EBECD3B4E6361419AB32028A27670C9F3E18B746A10B00AF6D77 -4EC00E3BE521C02A99AE5BAA98F793EB1228952BE67934B91472E01AF7B816BC -56D7F19F631A1927846D800C107B1E9CBFF9D2DD513B4A8CE2E0DFD77B1ED178 -E43FA7052765E9FAF89989D490D8FEF6C536EC0D4AE27A74F474B98DA9E6B92F -15E063DB260571979A5DE2423920CE1F59F56EB11E00E3BB9D466A8263E1E385 -2014BEFDA8D1EA3EDA04BE32AEE6CD15C5C010A1DF7F705A2C0C18E87C8DCCE9 -05D9163181CBA56C0FAC8C06A2990554C8E759D076B01BBEADE3B5FB8B551390 -6C8E4A2A1C6E7D9C708614626F3770C0AB7DD2027469C77975C27576065862AD -04E5E50CEBE907E3E991FA0C627302C0E207B4D5992BEBAB5853AD1C0D271728 -C76F40A79392ACCA7358F948AC65DC823CFDA59E1FF69CEBB6B7EC3CF21669E4 -70D999508F9C49E2D9F8818CA53C977D93E15FBBBAF75B1E84F0BA62BCC4BAFA -4EEC82D804C8A8C0210F3E5E258BB1F6921AF02BA9861BAD5C3D5FC8CEFABA8A -A607E547B802096F7AEB09FBA99C83C9A494B94408DD607CA6561A6E6660C473 -62CF8D35F31D052F6C6C8138A8E1430CBA7EA6973D6D510C1A06B3FBD79D9364 -240C1A00272DA44B89A9FE8D5BF36DC1B5EBB4A78ADBE9C5EDB485F093D9517D -69E1AC9A8E6C9D7C324E3797CFEAD9A18E82E03F69B2CED7D5DDCD1A218BF2E2 -ED2293AE999FE2A4B5213A10083EE0407BCF8007670B8C737EAB30311C868D84 -121149ACB4A27F3ED6C0C181C98AAAF51B105F264B5672D7F745131ABAB5BEA4 -0C9B43C0DD9116D6DC61F90BE72018F290D26D5E9D341055CAF09C9F45333CDB -D45B7954271767F638EEC499F7B53C2CC5774EA7A7F024C4CABFB93D9CB1856A -0C671A4ECA7C62EA5242648A84E7F3AFB9547A0AFC29593CFCE6D8B873A78157 -D337CABD291431C0A2CE1F37E0CD7340567AC206FF98E4B5A6410F70F750451C -550EFB54AA259A1B236CA9CB730D2CEF125EC65D959441F7CC9768F777B44844 -CC9842A307C72B740680ACBBF6AA35FA7A94825069BF7696ED81A371A9E5475A -9D997F2DFAD339AADF797F7E03E654234455AC3D17702A420EE0A597BA31BDE4 -FEB8DBA7C61D311CC90441A620164DC22DC2D373973EF84CC553453AB1B3337F -7B39983B8DFFB3A9425F119B45C1CD37A76F905777B3154CA6200792F1759D06 -E017890F4041A385F2238E3C48B6C8EE6F5258463FDBFF7AC762F6C4363926D6 -50F004D473B7B7F73CA686B559C2885F1AA761653C727A77D73431E9D110E76A -2E55C68CD50F43997C9B2FC4710F8C8540909829E215678E63BB8363C4B8AF05 -9986102BB36580D9CA95CD216B7C321822CB41B2E0422CD077F3B55E0246FDB2 -44D5976F67296B5B0BE4B06F6E43535C21164E6C5089C3E9BA2D6B30888C57DE -49DC8D9D46C0D5EDC47ACF2C03B72DE3B69512508539019B759280BABEA12BC9 -385308A0395C4CD33182A10A5A229743379C2075D82D8BFCE4A66E1AA087A091 -8F5372684FA5037D1B92D50CD9CB4F50AD4F8EE7D51F1C9E63C721CB5B9BD011 -6F0A8DD4FDCD2B008F223A1036D90F0F3B252487DE7898F9AFBB3A9D9CD49E0C -EF4ADAD5155A98D2125ED5A3D3907F67301649519419F33CD942E8DDEAC1BDA0 -E90C431B198F646766A8FA9F8D1561B57E126EF604838C0C1966655CF31FB7EB -C8CCC434FC1C96046D38203E1791EC824A3D7AED85C029288D4608CA7668A2BE -484C99639F121845B22EEFCE0A3B808261921AA042AE19E641769E91277BEC29 -4594082CCB3058F90FAC4A700A8A827ACA00FCF574ABC8EB7DBCECD97F2B22C0 -0AA19E8739B81AF8C6F621D69B8E6F29BAE233FBA655A0AF5BDFD7F5C6B9167C -6BC7AB693D45EF2AD999F5DA3CEFA39BA48A17EE6D9F2C4DAB91AE3F0044DC3F -5D5506CE4675AA928B0092D6F173644F91295216D8BBB14CDDE0AD524A4D545C -1B5E284A3BF0396664081CFB4F186A84A0D24D61E82F4767C1E55A0642720CF3 -909FA1AB8EAB78030B59BEA067DEDBD2F1D0340E790AB2777DB18248521934A8 -BB38A58B7F633DEA4291B0D5D13E9A882C974697CC6D3B49E030C94EA29B5506 -CC29C44D01B4751B453A46A9F6BF3BF135AE87A4CE232AF57B66578310DE41E0 -2A6AC422117F1963C4D7CC306BD25A6E724E51921779F22F029733122E23E2F0 -CB340008813ABB104380C80A492B3FC6D0BB07CB8D8409E9576891EF6E5C9D08 -EB8320DFA31BAFFBD336D0C2BBC3D3B2D30368B9860768FC080D30569C7F7811 -0EBEDA2962476113625EEB555490B8CE4C5F99D74ED10F738C61854CFF8B41C6 -9402E56BE8856144A1A05D0B05F4CB7EF728B2F4F5A439F18C3B68CEFA41E59A -D8308ADC92EC1289DC84CF48D2CDEFF509A145BF945E1E00D552D329EBD2A7C4 -21D58082CC8FA790E981F4AC8EAB99950678FD3A7DA3DF13778681B208DD71A0 -7C3CBD0664B37C9EDC6B601D79A2C51FB54DAEE849F93209793849104E722D3F -52DFAF7047EEEDDFE744787A5801E4AC2C3D58EC5DDC15FCEE03990C53B0C57A -FC54F125A04C8E4A0ADAA725808C587E7DAFB9F784FA2875689979D316DC22BD -AA36B306A1ABCF907B63C6476737B746099973CAEA8C1E2C5C41F27E0F7DE8D7 -F0D942E34E92F43FE902653D4D2EBB6F3B9F7928B1550A82AF234D45D028F429 -067652BD3D391BF423AE72B9CB1E8D91E898161BE3A7849D456A861A2046711E -E934DC59442AE7D81661CE8EF727D8D7DDC0270E937E40F896AEAE6171661431 -C1025C53172F9D366834BA0054FBFD84503FBAE328B6FDEA180F8EA35B1DA937 -5CC3B8F00C206908C2FFFFA6A7AC6915D15EA44BDCF29E2BFCFD4A849535F19B -0D307C696BE8205C7D84B9C77F02EF27D911056EDBB4080E4D3ED72788666CAD -CD91B0ECE27A177DB23320A7FA9C31408B4D02D2A4B1CC6DDE1A6CAC3D8EC1EC -2226EC98E51046D1EC26FA20EE62D24747D83CF4941DCE5CCEEC0DBE387149CD -E05B19FFCAFC0D117F9A3E60DCD4C815228D98EF95EB559AD0ACC0D50FFDF714 -56C3C812EA5ADBB013BBD956A7C4CC0ED7D3E25D5C9AF5E626F18297F75D4957 -F5B0B33379114B903FE98BCF35C3FF76FEE1D9AEB711F2962276531F7380EE3F -E368720E0292A170A15C5539B1FC7BB954EE2624B504CB8C805B8D31AC38307F -0513606F09211AE64DAC447693B2A0AD15E9A64C34F5A911ECD0ABCA90E9791D -67C6BD202B0858EF96E7722305B8AC02B01AB1706CC6AE875A8DDD15EE349046 -EAA65005E7866B506EDFB7A5A2AFD5C9E9DCC821A79EE9C1EA2C7BBA32A40BC7 -CEC26DB1AC473C8C3960ACEC581B37D6569E8C8C42950BAB7930B65E1570E3F8 -9A7FA719F1DCFDA45A3BF2AAB32C9A93BA3552608A61C623DE59BCB346E87EF5 -9CF025A87803161221C5C1C6F6B3403712C76E9D755C7BD68D7F2DC03C14CDF0 -C1BBED1D648B905B4B17037B7263C1EA7A7F06FAAC4E09E08483A8D714C19861 -327CD9C32DDF850302DD6DDE24912D00C22ECDF3CDFB18FA831A41A7488EC203 -F564CFE30D506F0829A96D35A7E09C3DCD107D589B627A15B55C5D6649126BEC -60B88C55ECCBB4E680265D9EAB4CE22965D3B1AF759B01ACB0D0E6C92B6B4EFD -A81E6A648708979487FC591CF09631310D46891423F4EC159A73E30D8DD147A4 -B0EACF6D45D18CD16CEB8176F03ABCB41F2234747B9733C8FAF34AE5D43D3BA5 -0CE0FACFC9B087F84FB6C68678BC6E76022B1526D6E5B3A48EC1A110BD75F45F -1C4DC6D39F254976453F57DF873B7D635C80C42026DE020E5BAFE0DA0D54D1E1 -DC634D2621BA184347E5252F645A6A1DB7657C48124186F0E4C644077457C24D -55753C651A9A7B6349867641464B515B821349C795A645420508673B93750D0C -7A3B33EB1F09782033742AE8F3A23FC02284E6C03818FADD1731361542E3FA3E -75B8D52B668C3E18A4AE967D0FC3157083D952AFB8144D549E69EAAC51C279C5 -E5D88A0D9D53013DFFB4352A1598FF84DCDE6FA32FC377306B9B92C0F96EE149 -8CD55E7B2445B86CCA7A547FA732D52D59025129FD8C6333AC0DF4F0CFF6287E -F2036D5DBBB3B91B92F12FEBE0B61A313A4DB5A9CF0BB3DDB781A56FEBFFACCB -8CB9D1D3DBDBC4CB6AAE6769E470582403CB920630221B68BCB625CD4605FA8F -D3D5B7A1A28D15E44B38E92E906C138E72C15B86F64C38E23BF0440052A8C914 -54397F49DBED99D0AF7CEA3B0A05FF37C2D7EAE1412567E6776333237C31E3C0 -49949EC8BFD6E0F6446CE2D4DCD2C1524A288818CC5D159BF8463A847AE4A2B9 -CC8C58F822804B81B13BF4F2DEB6229C4F51F093075581791D02C36A13B855A0 -34900AA7CD4F1A797652656FE3A8425A38F421C4CC0ACA1CDD44FA6B31219276 -1CDE1CD63D6A58CE705CB56CCA1260F9B86E989019071563A9B4C274A87558CA -6EF1660D574EDA276801F0057740E2C3B80D253D697736484D892CE1AB128B8A -DECD69712F5E70E895FBAA927E8194D792A04AB6CE205E04E38A433BBB793FB4 -E8BBC4279D58A223C6673D909D6AFECD246E66A52F4CB35E5931D24C828489BD -4ECAF621A220D8ECF702BEB01C4FC7510197D3F6D15321EC87175ADBA6434ECD -2B5A306E91375CAD22CD94301763E4A8B981472890422C5488FCD523C9CB17DC -ED22FBF12D5F7525D0D6BCFE8CE85B0DFB1D6F989C267FFBA0A996D309E4A934 -3DB54A9D29C88B9D55D7300DA3D46419256C5A07A2A529A8DE8BD1727281F5FE -97033D861E0531B14E811378EC1AF1CC7EE9BA2B07D935843D3053F673979F8C -FAFD59D555B56CE338F606747238B22BD62C42BB7238FEA335678D474A643570 -A9E7B4970E8C541CE9DBC7BF70ED7BA33639D6744A18379455029E934C95E2EF -639C4848CE9A0879B51649FAB023A71782444B451F92A34CB8A124270CCF86D4 -D18EEF5C1D2B2A29012613851C49F50702D63BACF95EE2AB4D72B375E0A62615 -E0991E130A67ECBA9E05329B740708F1CB148724C3A6E5E3AEC1F88EBCA398D2 -1CA8827C977D72734310233176D1AE26C55CF2CEACA62223315C28FCF6305C7E -A22414D4739A059F552F1F9372CCCA5FED4F9AC987942848EB498900269511F3 -F408CBEA0659B954F5F1B18AE4FB270213646F9B28AE4439D2BA2D3E0AAAA780 -5E530E4EFC8A060EB979E12191044509DA0C14397AFF949E12DC970658D5EAF5 -4EA963F5BC1407A32F3837CA6A24B7F3D60EB8E6222B702E25ED903F9D21AE50 -664A095009BDEAF4B78DAF94E5A55D48366CABF07791A1684B2F54EA69070844 -4F031AF8DF416C2D3679F8BA038B0DC9DD0400CA6B34667BCBBC07E62C1668A8 -35A8C57C9048A7227E672E89681B54D662079A189A9E96A3CA96D8DD10189B04 -1DA49BA2729F1CA585B1BD5C467295285D52E47CA904235A1A3E48EFAE9EB6F6 -01374125CE89D53C276858668CF45D2F092DDCAA52418E0BB94C2B8266B4D88A -5D911507BB1DDA3D8F6E7C14A91CA11AE799EC42E993098E18CADA70BD2A1D82 -2C39326C6E3F9E84CD9758B9AE43D79BF99E6A0CD713E95B3D9B7DB90D127DE0 -DAFEBF850CAAACBD860B5DEF2082F1ADA64B44B193C4A1417BE221FDCA36456C -BE5934C8CE3ED55AE3A11697C2D682B7D0F72D48976451D205783BE25DBD2507 -39C14FFB4BB828DFD187104F38A7F11D5F0698C11E8C1D4F107CACE573FDC4B1 -C56FDAE47024D6FD16A2FEABB434CA320300FC4B6C1B6CA08F76C60B7C08A665 -99F404DBA8A2A1EB18EF6750E4EC186E31561A3F080BA6562967546715859481 -7BA782940F5C5D06626D6F6A412CA7C13820EC7C1DF23E15E5829F698CF617BE -D940523E4EE4ADECEC48C24297DBAD528BA1DCE7AC335A1D15D55415B108EFC8 -6D45030D27B3EA63B2B4CD771DBE66AE0218ABB1153D4B7482289D1313CEF184 -5C960B1E3C3C953912CC6F4521D1E15636C1545EEE457EFB87B88C9E43CC2F38 -6BC4BC96969F4FF28ABB06F4454C01CEF1B6DC538F1E832FC1666D977E5A881B -F72F1B4C7DD4BE167A5535F1163A0706F9A0B26400178DF8A128FB5EBE6A7B81 -E478AD183EC06622B591337B9F1872AAEA356F4FC67EE767B34CB5A4D90702D9 -39FB846947F4096FB3DCF16EC81455164783BA0B5D723060DAFF411B68307E81 -7BEA1D9A47A5AA3D648E618C83C60F060029E6EC4D46B045FA7415BAB2AD0AA5 -ED9C729C24136F6AF61E6409C0B5CA760B16225641E268A68CFB8260BBEAFC77 -6626EBD97195E77CAB425CFB0096D805D9EE699E41680D095AE9FA10122A7882 -2F00F495C9EB2102DF0D3E61833BC0A2E468C5CF7AB430FDB7C0BE3DF2C0D230 -1580BAA25D65F599378D873165482A1FBB224AEA89C6BCCFBDBA42AE1C5DCF41 -06969F585CD3B737D1388D6359F5468D88FCD2279BDB270F6A858FB7D2ABDEFE -5EE8FB79FA437F8F50237B92C307B73B0DCB808D07A9C3255CB9B3B17039CE5A -288103D05D132863FB522A02CEE3839EF9AF7F07D99732F0B8B384745369FB3E -7901166478F4A16076A1504C5E98D17408494E270BBF4470ED12B4332422679F -759F1D93984D7E506D16950DB6C2682FE1379EFFA6F6C95DD71F6E55BE3EF6AF -E0CB25388EEB436E6527806FC75484133F6E561DEB979D5C1FFEFDAF2A6D964E -03BAE0BD593C2992AD84569C81050F7A793C5263E50C2F50B98C4CC703EAE17A -6AEDAACE312DAFAF5278D125B6EFC5587484F61DAFF46B87B7C9B1EEDECA4859 -314A9A9E2248467DE1E54D90DD671660B9040B3E0DD982260822177EFD757266 -74A16C83A7FB168016A320D3DF3BD7726F1F4EC90EE5DFE810C96B099FD4368D -906AE4699049EFD37E8EF058D4B97BF71106445AADD4FC6E90615A0066823A36 -673B8DE32322BBE861AE251226B4385AB28702831270DBD25D666FBB0AD7B96E -A44E891EA1EAF0F87013AFC982E33D67A28E96E0C9CB99B9E4192536830D9901 -931A8CAFA41289633B20BA3BD7AA3414B6DA8D57CCF2FBE39920CC06361F075B -CC40335DB9A0071CFF77F6B7BB47F3100DBDC9C4A58C2B81EC99E8E966AF3390 -E3FBCC28BA1D79961C8A1584266454DF772FBA99664D74D4A89FC82FFEDFCFE1 -4C9E4A04291E803D142E37E7ACA66AB279378F2F192FFB2B5BBAD18B95F03136 -2CB594A3D6D3F8576B90A6C4DAD6D6C8EE07AF682F925F01D0B26CBA347C03BE -F3B0585CF4539FDC66915E22117078CC94D621F31DCB3E021998A5D6EE94CA4B -E214D07517283D56973D8E4367392BF6C1150DEBF459D141AE0941C1C8C5CFBE -E735D796E365A1B0F60BB4CF2801EAFE4889EE5F338D3C4885368281B3C95CCE -251C28A90D318A8A0384439B38D63B94757252062EA44E88509FDD2E75FAAB71 -7329622828B2785C1A8B26351BC7448C1719C88FE99BCB73F7DEA427FBFCDF4F -00EE079B0C712F7D2C8DF98D4830A9D8C8B70A8C5D54BC1DF3171135278BED55 -DA1CF0E696B12935EB59B606AA3C0CC50C7A259AF32F4C81D9B39470D9993CBC -8644403D2833B34AF40511654F96BCE0064860F39849DC62E4A0693F75308FF5 -FF450EC05F142D5E300D3850C66D432BA581D5D8DFA97D901589C53181CB5057 -7FA8B2C95DF751A861DD1A614B2F32ABD284607F40B3462FB05C79DCBB586B43 -B853D7F77AF5ED7AF2A913FB2CE66241C5102CAEC3992BEEF19A4F760E98EAF5 -063E373A084CD6829DC18D063618B4AE443B35B63BFA956368397A69D41DD715 -6C5ED849CFCB2825CCB577C1669626E2C87DE60D69559B3CB98FAA07F1893EE9 -DAAAE01D549A252D77E79AD37BF64540DAF7FDF2FDF4017F94D9D89F1B6F249B -CAAC5BF817A1979163F3A316640E382B501A6BE18C334DED469CA5643FD07D8F -6E37275108F7168F45BFB5024D4FFBDB140741D2C8AA4AF19F22592587A05FF0 -A324A0DD415F312D653513ADE6EDE9E560BA16573295F6B3A0427A15A585A40D -5265A4CB711011332AAE28B05BE6E4B11B1B3C178225B2108D94089E6544907F -DDC2496B0B36E2E8C1494640BC702AC192A3CF82B04FC836B9A8F2B42AD59DC3 -77DB2F1D8B7F9C0DC9CB7BD85C3D2C7730AF276E6F22D1158896CA00870B4B64 -B72731CE69E9A92BFCA929E0834456AA81EEDF26F58D771229C2A3A491455426 -500E410A707ABAA26C2EBC0178A2DC6A24350823AAB33A391820EC085C6C7F35 -65B4A26C6C28C08567BF5860D0930D7EACCC5227BCA1589504504DE109D1AAC3 -9B97AB1FF22BF698E5C01C812B0C32F4F0110E37BEB86AC57D1842C8DD13102D -2AFFAE9B89C5965994D167E4008EEF6ECA04DF853985B8E7E5783D62CB82BD0B -1984EC07B99D887C2344393FA940D33B693F074E58FFB1B0CBBDD1263A9AEDB2 -9E4B3D4C87EDB94FF5664A8B29A0FAFE5E61900FAC8F910C7F073FA7C227DEBE -F9D38482DCFC5F6F6E6590E30852211E3953CD7AD902B72051DA4A839D61846C -633967FDE5A3C7F8E670E4BA0CD7D2227F5FFBE12A10FB29634CAD38F0B948CB -022868DD84BEBB8142D95D00364B969F8AA651DFD7BFC5FC1ED5CC71B9F43B5B -E8837EA00B304EF419E41F0169D250AB650794B7BA5F7F92FA3FE7A7DF7F4EE6 -D26D6C66A45541320F1BC615E42A90EBFF77422970D01D5A056E2D16DF2FC184 -D547684B190468BFB7BF81602799930DE5E32CBC4CDB2199A47BBCC9753491EB -90F9FD2E532F971AAD224D6E9A5A869916E8F6A31EEEC01E83B18DE3C0BAA2B0 -8F811A23E1897EFB01FAA2676E16FCF3BB0E6BBAFCF65D434E8A92A2CAC20ED1 -7BF006616A3453365758F50534E6ED6794D38BE3C3E79047A38BCC6BEEE1B892 -52A246887920976D383241758D0D5EA9018EB689C9F20EE15F98A4010CA4DD07 -82520D170267CC9BB5EB439D43ACA47BC3DF2C96046816223BE4157F0A4307D1 -18828992D032C341F9B8CDBFDEA3CBF8189CAC95333DBC8305E2D7B5D30DA9A2 -E715D31B2A9F95A6306F7D5261C85D4A011886DDD520D8A429FCDCA476EDDFE1 -5E63310A8BE3EDC46871AE21A24A0AC523379D9F2ADD4BFAFF031C32BBFFB33C -7C11726F5B7DB8A8D7F3E1C56E50C986D9DE03CCC5709F6D80ECEE69FB2D921E -6819C33950E7DF87FF3B51680A23603F2267173EDC0E27D2E91AF18427CA61F1 -7DE1E2FE17E87E20B973635459474A064BBF94DB3DFFE16B447FFF69499F029D -2AA21FAC0ADB16ED438E9577B1DB34F9DA70EFF044F21E58E6CCBC63A6415ECD -55BE2301E115BF38212DC6A01F45384CC706BF6B6F85F1407BB061886BF564BD -D888F397697A70416E36E9127419F27499232B36CE27F29A9BCF43FC7B4676DF -805447BD7AD01EB17C5D14F4E6B98F584664D911B0E64203D75D3911C3E60CF5 -683BCDC2F4524323E067A69959FCFE3179134C3CA13ECEEA7A16305AA80B0CBF -0B5A64309B4D30CB87799DA576274B6896EA3FC5082386B939F6C6B628B89501 -1B8DA347EE03B97FD19D4CC070A06FAA516DAAC180C7FA5CCEF819CFD86A06EF -122451DD2380BEC359FC48129FED52D8782A2D295FCC07346BE82080C78085AB -907493BFB424316E1AA433892A68A36C0A7E8FB0AEC8429706986B502216EE84 -2B1B7EE5CFBF9B70964B3A8AB43FAF4980FBEFDDFBE9DC4CF11BE9CE560DD2C1 -658D75329245640329667BDB2B79A6C97B54B8BFE82A1E6D7F3FE9433BC4B809 -68AD1178A8DDBF0175562C2E450B9BF2902FE31CF600427C11D65BD670F22FEA -570C34D7C3320F4B0562FBC0AA2A4525AB8C8AC6D254E74DC132283448AF16E2 -F6896603072ADB6CCE65BD6A3A5D23E96C0B0616DA2E2448F499AE49E8437431 -EBF58521D5C9ACF119025B3EBCC8A2E60ADF67A1867B9E09A5A39270E37AC4E8 -08834EA5E1F1409C0185280F62DD2CC436E9D88A6B89D36D0DCAEDE5018EF41C -5D418651E3B1EDFE3F14ED7BA85AA036C15338BDC24238BB910C11D23439CBBC -7CC32B387E42044765E800D817BFFF2D0818403A26D1ED01722E83609862BD36 -44ED8993C4CBE39FBE830678A19912E7197A423405389974C5CE46B247AA0FBE -DFBB823DDD3AA01A1B487324E304F996BBF6132EB91BC1D37E1D9D351DA60B65 -08F49A8E959132D9929266498E6D409FDBD910BE7886D6172393058EA872F7D6 -3258654378484F5700C33B474300FB97FD7DAC00B46C36448FE2DBFDE99043C9 -E69434290C26AC940EA1D3D6433BC3EF7F2748F126BFFCE0AF7438B170502CBD -EB3982F857D11869F41C4B4624238448EFF5A1FEABA071E9F7701FA7DCDDD053 -008FFE748BEB9851EAD2D9A4C9C6B422548DA9E80C85B746408B794212E5BF33 -63A7BD9BCFC1DBF4B3F47A82596075BDDED840436A6D487EA59EE1F031D2F369 -5C5087A2F4232EDE2994914DA29155F292E9A75BAF7EF413888DF12274EFA541 -405139C62EF85E7F14479E7D8C80DAC237C034AB6E55ADD91D7EA476932AE079 -07D1B1454F424CFF149DEBCA8B8CB54B2FB900F1B1924443A85BB87581AC180B -181C09E46669C52C5BBC47E007174C5C3722A5EAA0C8F43F36429A5804997ACE -90D45F5E89A171AFB5FC5CA1075DABA918C3B0A45780F0BA276D794533BCC224 -FD990347DC10307365919914E4B235D91FD6609820C578E77BF103C7D76A5C3A -026693A3834D9D286AA159AADA7D1C3CF5E5B078C27B4399B1B79177DF54231B -D83337B400038A80286DAE1DEA5C1A0C9CCF8A427FB7A9D3C9F850D2328DB47A -624C0296013AF251918EE824878018A3048EEE1FF3BE6C3516B3742777A5C1D4 -34F2BCC7AFC5E4E9F9F14F8567573E95E13AA99BE913021FC2D6526821C6A0B5 -8808E1555A49AD087347116E6F068B8037575FCD1AE8F191CE1ADAFE01B1B25C -62A0A6F94AC26199811C7A46615AA20EABA3B8C7CEEE8C1273E59E12156FA535 -50780F7707B23695100CBFC23DA2636FBBCF8F974B4B63B2FACB13CD9094006C -EAE505D8A58107437BA59253D9BD9A431921C9B0D5FA31AB145E989D0488F073 -A246A06DE64816BF3494EC3A25B1A7018000BE34C03B566BCC75735473808936 -89001FD98067E231F6A17A1E6829DFE906D0F26BA8DAAB40EBD5460074555ACA -3D9A06A85A6BFCB9A89D9D895426FCC9E1786A3BBE8572FFA0ADFF4FA441B1F8 -93A1F2825F83D0F39AAD50F81C9C502C4D2A389756BF7CD41F40B7E00DB971F3 -1F79BFAFAD4F5C1DCCC295E9D7EE3E8C935B948F63A37BAC3A8C3395B768AF90 -9D7A3BDE3614159D5BE42A302761E70913C419B8735DB8BD003C88A222AEE9B2 -7ADEA0AA9867E56479A35B982CB227C30DBC0B17D89F8BB736AAAF64A85CC8FE -D6F3F3C38F09982D6B9863B2AD1DD209F7D7CCC73C20EF069FC21A17A7F5DD8E -5E909B78A23D621B1B715AFFF927BA680DBFFD0FACA27A007D9B7A9D6149AF19 -DB19133B02845DF2D5B41AC037D2F1E0207909DAAF7AB7AE4ECA6F1576E56B43 -2B101E445F5DDE49CCC1E220951621D1B375B38AF2C8B8060C2AE4EC36BECC2B -8E48175BCDA6404B9A9776FDE9ADC7D846CFE341A490E4F84BF9C88EEB8CFA0C -71C7F9C70A166EB4A3D7B285DA39595CD5C58A91445D1FF01A1772D2C6A30924 -CF4AE0A521DFDE9321AF5D9BD9BC88424C5CE13FC4BB9768848499204A1CE4FF -3E19E5CAA58870A24274A1E8B8B7FD81979448506B37A05FE47206F82F1DAF24 -93745F328137A5FCD09950C59DBF30F335136ADAC47EE6DF56688BADE4BE7F93 -FB60EF3C8046C68E7A5C1AF812E30F6E6A21B5E0195B6DC383ECAC0AA6BF76E3 -8BC64B9F68E7F7EE86C91B6590C155CC793BEA88B7BC142439E8A554039AE55E -EAE7456BC31486F997635D756B98AD011345E4F96361CA12B051F81B17DAEF91 -1DD10F5CA9FCBDD6B371872D18EE12EA51D3E7C6BC0A188C47C2773ECF4441B7 -AD94735E327264FD738137A23312C40648F125B75CB7ADFC904C00E72BD74B47 -E5F5EB75CCDAE8B11CE33E468014DA1E87EF63BA7B898E61F03D414C8B67FA9E -F5AB2C74903BC196D200E5E9DA2116DC5F6922F35A0AAC8CBB81AAAB95C1C337 -64FBCCC1635FB1203A4D8F545189048DA98E7938B05C6A5468464ECD5E2512DC -1E7523890987ED095FAF98CE425474E813E5DF4C6EE9C0441A5DDB75E8C158D8 -1649907A0A136D52288962B150E3749D993CE76C3F1376E0899E8C3B06767563 -A71E0F94E611A71BBED10E4F00310BB1803FB3DA376892E57557E6B049AD4848 -D205FE19358BDD9A78AD754BC39265E51DCD45F39DD45C9DC4EA3776C726C111 -0CA3754CC7B2FF7067B0E86AB24417D8AB5CC849A80132816DBA63F8F8E266DF -66107F9533DDA3E0735E5F32AC1E39ACCE64E45F7958B9D69BF52F87B21781EA -A7B1193BA98C4433407C56ADFFDCEAC621AB4B60C0C293BB158A8CBCBADF4F88 -BFDAC62243F57757EC33990AD15E0C3F202661210AEF980C50F26786532AF1FD -162FD82D10CD1C130B8DD72FC7819EDDFB455548ADC5AEC93169E26130275557 -A40E3A0507C33ABD1337B07546E470942FB1B44ED2D4B961FBFBA2DF21F8C4AF -E90BAA5E8F73A090F63696CE0F5F2A78621B7A0BF579856DD6D2C4BC10392663 -9B15EA5E63F0407962576373A6B462BA09394ED5E1D2F80DA13FBF3E77AC1992 -2BFC86622B4E5F3F19B941B2E74CAD1674EF7656ECAD894C17D7F1EB8F616A08 -5F940B8BA909EBF960B60FBA0C107C3B8473890125AA7FD77CB534E74F59AE7B -BA364BC989382ED656A2512BFC5146DE7B11EDF42309163B94600861140F125D -D0C0305C2DED435F98A9CD52C07EF2C8202DDBAD4F4CBCA1BB2A991BAB9261B6 -C8949B70605D0B3FF8145CCBF3BC642A363E4D432BFA03F772CACF35CDE51CBA -5BB14B426DDCDF08E275786A9C1CF040A8945AC2FD369BC53F2262F1ADB27871 -E711B7F0C67D2DB65A4FB892FA72F88BDF2DE1C3D3877BE6149A335519702830 -F27F07EA02C921A73E44A4DEE6D4D11ED16C9DF2E914952865AB0F1A9E46FC43 -4EC18296BD068870F1FB936B814B16E8C83200DC078DA0E856AF477AEEB3BE4F -4C98AD0BD79DAB678BC97E122664AEAC251192C3C6A0A02EF9FE7CF81EE3DAF6 -BF9E8459B5128F2C270FC1C452701BEE026EC93BD3B1373612C37560D7E73DB5 -88EA90EBCD1B78E579AC0983899B9C092A2D870C519F44DD29596F9DDD98944A -BCBDF56BC16C02A3B34B39B422C51B6A003E8C31A7F552649913ED5B190EF3AA -5D9A285613ABB7A88212A5FE1FDB1E7E97615A94C79F7255C11AE7768FF3D795 -43F3F9B0C5ECDF9715A1148DD3E9868372D3F8967D34FEE7A6E5ABCB3976AA59 -D6C205C7652A54D2EC8A988EE20C4A675E4D422823FD8DBD93CB0EE12AD86C87 -056903A7639D91572C54D193336F145E45E1C2B1E4C1348BDDD96B06773D6F23 -2A424046A7AC21324A2A4C339C5F849A0189C91006CAC30600B3347919B41D62 -01CB3103A5116818A1D986A49CD294D6A0D44894201C8DA852338DD7D177B719 -EFC34429B60AE19D1CC1CC6E3C653C677CE6F0D175A2A4F33E509FA3AFED1C3F -27C2BE2ABD0D00CFAD4C28D8DCA9E8FEC4DF43C85EB11250498F3B6743023976 -72B9FA7EEA0838AA5BF59349DAC852E1B712E0F42F6F95DE73EC1EE585B6D08B -3039232559B97270F88FDB8A9971757CD4F74088C8E4386BED2942137FC603CA -5C48A08AF753C720544DDBF419CBBFCC0094ED6E426A6914EDCDBFF782FE5904 -986716E075C855002B5AE15C2E8DE58E70F94FCE9CB3F15EC963A84FEFDAD012 -F7E49F220C9C7EB9F387D95091882C688F5A661ABD214C3AB891FD4865D734A5 -42FF37007306AEE7883B5D229A41A20622BF12A06B907A938142CDBA5B2323A2 -3FB3C5407F122AE2580772252716F1C249AB457EB21EA14C919C426D99A8C1A5 -A71FB14516B931ADFEE851C106C32F9973F95644B141CE8B669663BE3B83FDBC -BC7AE9C07DBC14EB54F98F657A62B3ADCAADB9C3D3985621B0CE816EC7538EAC -7AB801FA7C688C7925C3B69D93862244C625421ED707199D1E1DFF6000B0BC36 -6251E989FA5A3584B32862DCC65ACC44444E9EC15D742A4A4E860936B4B18237 -FEC4021295A1523DEB1B3596968FE7B65B18B04D73B3D331E18403A6E9FF8767 -6D5BEF04E9D500932BCC6D47DFFAB2A1B12048A717D14C9A8C2416CA600D3EAA -22DF60124EC9E1A177498EEECDE88F9214CBCC14520DCA6EA0AEC710E345D10D -DEE7ECDEA83810A6A9F5A8BC2655FB6ADE99CF1F3C9D2D6FB809016DBE406872 -AEBD3F1A3DEE15E28FC00FEB73A075C85D2088CF1CDACA30BD55C9E2F7B4D2E1 -6C3C59C6CD18384AA4D7618CD68022A3F9964D932C98351A9E26C6C8B150B8AA -91165D6E1D37C2E0D59760C917610BA3116867A0225191297E533991033EB770 -28EF61050962894BECD66FDDD5EC8194279E5280025594CA2D24576B34B89103 -18BFA198F06ED188B8341EB63A61FB11483754248C7D395A835E57C90618CF9C -962E7B59B0AA6319585E7AD5780C70F634607ED4889DFC82FA600996832D770C -C75A1D1A58976A1222E6AE38354742C05F133FF64CF1464FB468A5212768DA0D -1AA4BDE59CE93FD594052BF8B476B5889ADF864D4347684775C778E838AD245D -D04A5A0CA410949A02855F70E7C0C292D7C0BC7FC7BD58659C167B65ECCC1BEB -D3BE173E7899AE4E1D03A5A96FF6C6E7B40D368CB23ECD3225C27A1A81B11C1C -BABB8F3C63EC967AB3F5A43D7C3521F2526E2051DD950F00ED71E4E4BA26F747 -E4CB2C607FD31D237DAC9E5BDDC4B076633909F4F50FA76DC152259140146C14 -793FBFA0FCCFE05F29761CE7A8A0ECB677AFC17642A5067072557CCDCC56532B -F1805AA83D4449A15293A75B559A55B7B6B27166746C81FC3D320291C0D88E2D -FCBEE754190B5C3C00A35721BC469C4BF045D5695E827152D4FE496F593BAB40 -E8305381E7E6615C14CDDBB962D84373508BC3764A52412383478C3760EC5B9A -B28FB151E8F93C4CD097F2F5842D84AC330921C1AFCF3C978E81F6D6CC52CAEE -D1C2080B644F32C97B9571B50DE6932901EF9F3C232AB9C5ACA7B9834558C2E2 -62834B6DA12C3F6AB98CAA7537D5DEE061A7CB2BC0787517C75BECA2658A422F -C69B8493B314F3531A8C24A86E3C7922DDC1FA642B69664AC0F79A8FE45429EB -C52897FA3528BA6BBD3679DE7304A69A49BCC57D7E3463F32BCCE93CF501B524 -03C1F1B08901EB3F0AADE811709AF1C53918874BD5A1F5FA8224E6E6E4BF2FFD -1F75848B67F57183BA93C051D5DF6CEDD84ADDC305185D12789EBBDCBA92058B -A464D44049C7BDF71C67383A6DC38528D9B2B4328431C9FED18431855DB98AAE -BC85C4CA37FDE476CE0F4EE25250462CC747477446BA6375CCD72647C3A62E27 -759FE92621522A5815F02819F1F127805078D1945C6B5C91A09133C05E38CF15 -11966BA0C0C1EDB2601DACCE3823FA8F0B7C147EECE12C27CA629DE958EE88C7 -506FF8ACC164AE2F84263A84871664A411ECD21F38E580646DDA140824F78E2A -CFA4F230256C8C6ACA374358D705EEB228FE6287590C09AB3945C5781282E983 -531D2346F4F3F8A9D7DA641995E291E65493BB49D4C73D5848B771EBA7887C90 -9EEA2ED6483AEE6B872A85ED677335A3444D643B1ACD8D8C7A28CC69CF436F29 -CA1BB157E48C50A7C5285E6EF96E3462AFBAC03EA387B1C740A52F3286FE44C5 -019771E29CB71E6A8DBA063966AA7E7809FEBED3D6DD8B59DB1148BAFD00070C -4348FA2C3D4C79D415465E2BB2AB7955D8AFC378EE7FF7AD30495425AA8E1CA7 -26F94AD3E0CE97A54BDAB5541A66064C987A445AD31BD84B3956E7C7A7490BEC -C71FB27CF47B1C1BBEF350B1A292AE42274EB8951E6317B22C44A6B41F5FFD8C -EA0E2B153A55FD5959AB20563D0AF87834641F3E088D94BC83D918FF6C135FCC -DFBCEE2C0D72A8D860824C6D5D49CA061A7FC66171206AC522801B88BD99981A -3F012715D19F9F75DC19C39E106EE07FFFD5902E6E650EEA932325FD0F3C06BD -BDE3796DE7B2E4844273CBA2EF29BFD210168261C396ADBCA70F4D0B8895779C -099D09B84516A1494A25C4DCB93F1DAF7C616301A793E55308CDC1EA165AD12B -45C60F2E0131BD59951F840DAC5E316E4E287A6DD7CB39DB811DEF405F76D739 -5FA11220DC99F4E773AD6E3AC8355E2F002DEFA280E1C9871B6E9A4D344400A8 -E2C3B8B1270B0BBEB5D0D00A91FE1920CDC950CC041D73BCE70E19868132DD46 -C042E2B5531B227A38794189273BEF0D0AEC976386D3A6E1A9E094D5FAD1F28E -FC34357DE397C66809C369A42741F0F7495B49C27D630EE2424025A26E426F83 -1E1463482E81D9759B16C5524CD32BA173512B85940776E27671C52DAD1CF777 -A238A175654E87DFF60BA6DD49CD44726EF0D477698AE57741241FA90E362C82 -E11C98E05BDF19AD96DC237B9336F4D672920A99C36BE42165244FFAD5796406 -520349F098DE9C9D6F2368CF5B6318C5661D2ECA41B7118E9F27156EA140C2C6 -941375A07DC940293E378FC0CC742FDB4A15C8C1A9DF90DD4E87A7CEAEFD6AE7 -50A8755630AB66DB2812654ABB2D69041CF9F90B9A9C64F48FC5E12742169D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -{restore}if -%%EndFont -TeXDict begin 55380987 39158274 1000 600 600 (refman.dvi) -@start /Fa 167[50 9[75 78[{}2 83.022 /SkakNew-Figurine -rf /Fb 193[65 1[65 60[{}2 83.022 /CMMI10 rf /Fc 139[28 -4[42 47 110[{}3 83.022 /CMTI10 rf /Fd 134[38 1[57 38 -43 30 32 28 43 43 42 43 66 20 41 1[20 43 42 25 37 43 -37 43 40 3[24 1[24 7[46 54 61 53 1[59 2[58 4[47 50 1[53 -55 55 8[42 2[42 3[42 42 42 1[28 23 31[45 12[{}44 83.022 -/CMSSI10 rf /Fe 131[83 1[37 44 44 60 44 46 32 33 33 44 -46 42 46 69 23 44 25 23 46 42 25 37 46 37 46 42 8[62 -85 1[62 60 46 61 65 57 65 62 76 52 65 1[30 2[54 57 63 -60 59 62 6[23 4[42 42 42 42 42 42 1[23 28 23 2[32 32 -23 5[23 20[46 12[{}62 83.022 /CMR10 rf /Ff 145[42 3[23 -2[42 42 102[{}4 83.022 /CMSY10 rf /Fg 133[47 50 1[74 -50 56 40 42 37 1[56 55 56 86 25 53 1[25 56 55 33 51 56 -49 56 52 11[76 1[61 2[70 1[79 97 5[73 2[79 70 67[{}31 -99.6264 /CMSSBX10 rf /Fh 134[42 1[62 42 47 34 35 31 1[47 -46 47 72 21 44 1[21 47 46 28 42 47 41 47 44 14[58 2[66 -1[81 9[58 61 61 20[25 32[53 11[{}30 83.022 /CMSSBX10 -rf /Fi 137[50 2[38 39 2[48 53 4[27 3[44 50[48 48 2[27 -46[{}10 83.022 /CMBX10 rf /Fj 135[44 44 44 44 44 44 44 -1[44 44 44 44 44 44 1[44 44 44 44 44 44 44 44 44 12[44 -44 4[44 1[44 44 6[44 1[44 13[44 44 4[44 44 45[{}33 83.022 -/CMTT10 rf end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 600dpi -TeXDict begin -%%BeginPaperSize: a4 -/setpagedevice where -{ pop << /PageSize [595 842] >> setpagedevice } -{ /a4 where { pop a4 } if } -ifelse -%%EndPaperSize - @landscape end -%%EndSetup -%%Page: 1 1 -TeXDict begin @landscape 1 0 bop 0 TeXcolorgray 2220 --242 a Fj(skak)31 b Fi(v)m(ersion)g(1.2)g Fh(Reference)h(Manual)p -452 -209 4912 4 v Black 452 -5 a -tx@Dict begin gsave STV CP T /ps@rot 0 def grestore end - 452 -5 a 452 -5 a -tx@Dict begin gsave STV CP T /ps@refangle 0. def grestore end - 452 --5 a 0 TeXcolorgray 452 -5 a -tx@Dict begin gsave STV CP T /ps@rot 0 def grestore end - 452 -5 a 0 TeXcolorgray -0 TeXcolorgray 83 x Fg(Up)s(dating)38 b(the)e(b)s(oa)m(rd)452 -214 y Ff(n)p Fh(newgame)452 313 y Fe(Initialises)28 b(the)g(b)r(oard)e -(to)i(the)g(op)r(ening)f(p)r(osition.)452 437 y Ff(n)p -Fh(mainline)p Ff(f)p Fd(SAN)g(moves)p Ff(g)452 536 y -Fe(Up)r(dates)33 b(the)h(b)r(oard)d(with)j(the)f Fd(SAN)g(moves)39 -b Fe(and)32 b(t)n(yp)r(esets)h Fd(SAN)g(moves)452 636 -y Fe(according)26 b(to)i(the)g(curren)n(t)e Ff(n)p Fh(mainlinest)m(yle) -p Fe(.)452 759 y Ff(n)p Fh(hidemoves)p Ff(f)p Fd(SAN)h(moves)p -Ff(g)452 859 y Fe(Up)r(dates)32 b(the)g(b)r(oard)e(with)i(the)g -Fd(SAN)f(moves)38 b Fe(but)32 b(do)r(es)f Fc(not)39 b -Fe(t)n(yp)r(eset)31 b(the)452 958 y(mo)n(v)n(es)37 b(|)i(this)g(is)f -(useful)h(for)f(commen)n(ting)g(a)g(game)g(where)f(y)n(ou)h(w)n(an)n(t) -452 1058 y(to)29 b(fo)r(cus)h(on)f(a)f(certain)h(p)r(osition)g(after)g -(some)f(mo)n(v)n(es)g(ha)n(v)n(e)g(already)g(b)r(een)452 -1158 y(made.)452 1281 y Ff(n)p Fh(fenb)s(oa)m(rd)p Ff(f)p -Fd(FEN)d(p)r(osition)p Ff(g)452 1380 y Fe(Initialises)35 -b(the)g(b)r(oard)e(to)i(the)g(p)r(osition)f(describ)r(ed)h(with)g -Fd(FEN)f(p)r(osition)q Fe(.)452 1480 y(The)28 b(format)f(of)h(a)f(FEN)g -(p)r(osition)h(is:)452 1580 y Fb(<)p Fd(b)r(oa)n(rd)f(ro)n(ws)p -Fb(>)g Fd(w)p Ff(j)p Fd(b)i Fb(<)p Fd(castling)d(options)p -Fb(>)g(<)p Fd(en)h(passant)g(squa)n(re)p Fb(>)452 1679 -y(<)p Fd(50)g(moves)g(counter)p Fb(>)f(<)p Fd(move)h(numb)r(er)p -Fb(>)452 1779 y Fe(The)h(FEN)g(for)f(the)h(op)r(ening)f(p)r(osition)g -(is)452 1879 y Fd(rnb)r(qkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR)452 -1978 y(w)h(K)n(Qkq)e(-)i(0)f(1)452 2078 y Fe(Note:)42 -b(the)30 b(50)g(mo)n(v)n(es)e(coun)n(ter)h(is)h(not)g(used)g(b)n(y)g -(the)g Fj(skak)f Fe(game)g(engine,)452 2177 y(but)g(it)f(is)f(up)r -(dated)h(to)g(sta)n(y)e(in)i(sync)g(with)g(external)e(programs.)p -0 TeXcolorgray 0 TeXcolorgray 452 2370 a Fg(Describing)37 -b(moves)452 2600 y Ff(n)p Fh(va)m(riation)p Ff(f)p Fd(SAN)26 -b(moves)p Ff(g)452 2699 y Fe(This)20 b(will)g(t)n(yp)r(eset)g -Fd(SAN)g(moves)25 b Fe(using)19 b(the)h(curren)n(t)f -Ff(n)p Fh(va)m(riationst)m(yle)p Fe(.)32 b(This)452 2799 -y(command)c(undo)r(es)f(the)h(last)f(mo)n(v)n(e)g(so)g(y)n(ou)g(ha)n(v) -n(e)f(to)h(start)g(one)h(ply)f(bac)n(k.)452 2922 y Ff(n)p -Fh(va)m(riationcurrentt)p Ff(f)p Fd(SAN)d(moves)p Ff(g)452 -3022 y Fe(Lik)n(e)j Ff(n)p Fh(va)m(riation)p Fe(,)f(but)i(do)r(es)f -(not)h(undo)g(the)g(last)f(mo)n(v)n(e.)452 3145 y Ff(n)p -Fh(continueva)m(riation)p Ff(f)p Fd(SAN)d(moves)p Ff(g)452 -3245 y Fe(Con)n(tin)n(ues)j(the)h(v)-5 b(ariation)27 -b(but)h(undo)r(es)f(the)h(last)g(mo)n(v)n(e)e(\014rst.)452 -3368 y Ff(n)p Fh(continueva)m(riationcurrent)p Ff(f)p -Fd(SAN)c(moves)p Ff(g)452 3468 y Fe(Con)n(tin)n(ues)27 -b(the)h(v)-5 b(ariation)27 b(without)h(undoing)f(the)h(last)f(mo)n(v)n -(e)g(\014rst.)p 0 TeXcolorgray 0 TeXcolorgray 2949 78 -a Ff(n)p Fh(wmove)p Ff(f)p Fd(SAN)g(move)p Ff(g)2949 -178 y Fe(T)n(yp)r(esets)36 b Fd(SAN)g(move)41 b Fe(using)36 -b(the)g(curren)n(t)f Ff(n)p Fh(va)m(riationst)m(yle)p -Fe(.)59 b(Example:)2949 278 y Ff(n)p Fj(wmove)p Ff(f)p -Fj(Nf3)p Ff(g)23 b Fe(giv)n(es)k Fa(N)p Fe(f3.)2949 406 -y Ff(n)p Fh(bmove)p Ff(f)p Fd(SAN)g(move)p Ff(g)2949 -506 y Fe(T)n(yp)r(esets)44 b Fd(SAN)h(move)k Fe(using)44 -b(the)h(curren)n(t)e Ff(n)p Fh(va)m(riationst)m(yle)f -Fe(but)j(with)2949 605 y(.)14 b(.)g(.)g(\(or)42 b(something)f(similar)g -(according)g(to)h(the)g(st)n(yle\))g(in)g(fron)n(t)g(of)g(the)2949 -705 y(mo)n(v)n(e)35 b(|)h(can)g(b)r(e)g(used)g(to)f(describ)r(e)h(a)f -(single)h(blac)n(k)f(mo)n(v)n(e.)60 b(Example:)2949 804 -y Ff(n)p Fj(bmove)p Ff(f)p Fj(Nxd4)p Ff(g)23 b Fe(giv)n(es)j(.)14 -b(.)g(.)g Fa(NX)p Fe(d4)2949 933 y Ff(n)p Fh(movecomment)p -Ff(f)p Fd(Chess)25 b(moves)p Ff(g)2949 1032 y Fe(T)n(yp)r(esets)38 -b(the)h Fd(Chess)e(moves)44 b Fe(using)38 b(the)h(curren)n(t)e -Ff(n)p Fh(va)m(riationst)m(yle)p Fe(,)i(but)2949 1132 -y(do)r(esn't)28 b(c)n(hec)n(k)f(for)g(mo)n(v)n(e)f(n)n(um)n(b)r(ers)h -(lik)n(e)h Ff(n)p Fh(va)m(riation)d Fe(do)r(es.)p 0 TeXcolorgray -0 TeXcolorgray 2949 1335 a Fg(Sho)m(wing)37 b(the)f(b)s(oa)m(rd)2949 -1474 y Ff(n)p Fh(sho)m(wb)s(oa)m(rd)2949 1573 y Fe(Sho)n(ws)27 -b(the)h(curren)n(t)f(p)r(osition)g(from)h(whites)f(p)r(ersp)r(ectiv)n -(e.)2949 1702 y Ff(n)p Fh(sho)m(winverseb)s(oa)m(rd)2949 -1801 y Fe(Sho)n(ws)g(the)h(curren)n(t)f(p)r(osition)g(from)h(blac)n(ks) -e(p)r(ersp)r(ectiv)n(e.)p 0 TeXcolorgray 0 TeXcolorgray -2949 2004 a Fg(St)m(yle)37 b(selection)2949 2143 y Ff(n)p -Fh(st)m(yleA)2949 2243 y Fe(Cho)r(oses)27 b(the)h Fd(st)n(yleA)f -Fe(for)g(t)n(yp)r(esetting)h(of)g(mo)n(v)n(es.)2949 2371 -y Ff(n)p Fh(st)m(yleB)2949 2471 y Fe(Cho)r(oses)36 b(the)g -Fd(st)n(yleB)43 b Fe(for)36 b(t)n(yp)r(esetting)h(of)f(mo)n(v)n(es.)62 -b(This)36 b(is)g(the)h(default)2949 2570 y(st)n(yle.)2949 -2699 y Ff(n)p Fh(st)m(yleC)2949 2798 y Fe(Cho)r(oses)27 -b(the)h Fd(st)n(yleC)37 b Fe(for)27 b(t)n(yp)r(esetting)h(of)f(mo)n(v)n -(es.)p 0 TeXcolorgray 0 TeXcolorgray 2949 3001 a Fg(Size)38 -b(of)e(the)h(b)s(oa)m(rd)2949 3140 y Ff(n)p Fh(no)m(rmalb)s(oa)m(rd) -2949 3240 y Fe(The)19 b(default)g(size)f(of)h(the)g(b)r(oard)e(t)n(yp)r -(eset)i(b)n(y)f(the)h Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d -Fe(commands.)2949 3368 y Ff(n)p Fh(tinyb)s(oa)m(rd)2949 -3468 y Fe(The)28 b Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(will)h -(b)r(e)g(t)n(yp)r(eset)g(in)f(a)h(tin)n(y)f(fon)n(t.)p -0 TeXcolorgray 2887 3717 a(1)p 0 TeXcolorgray eop end -%%Page: 2 2 -TeXDict begin @landscape 2 1 bop 0 TeXcolorgray 0 TeXcolorgray -2220 -242 a Fj(skak)31 b Fi(v)m(ersion)g(1.2)g Fh(Reference)h(Manual)p -452 -209 4912 4 v 0 TeXcolorgray 452 78 a Ff(n)p Fh(smallb)s(oa)m(rd) -452 178 y Fe(The)c Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(will)h -(b)r(e)g(t)n(yp)r(eset)g(in)f(a)h(small)f(fon)n(t.)452 -305 y Ff(n)p Fh(la)m(rgeb)s(oa)m(rd)452 405 y Fe(The)h -Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(will)h(b)r(e)g(t)n(yp)r -(eset)g(in)f(a)h(large)e(fon)n(t.)p 0 TeXcolorgray 0 -TeXcolorgray 452 605 a Fg(Notation)38 b(and)e(mover)452 -743 y Ff(n)p Fh(notationOn)452 843 y Fe(The)28 b Ff(n)p -Fh(sho)m(wb)s(oa)m(rd)c Fe(commands)j(sho)n(w)f(rank)g(and)h(\014le)h -(names.)36 b(This)27 b(is)g(the)452 943 y(default.)452 -1070 y Ff(n)p Fh(notationO\013)452 1170 y Fe(The)h Ff(n)p -Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(sho)n(w)g(only)g(the)h(b)r(oard.) -452 1297 y Ff(n)p Fh(sho)m(wmoverOn)452 1397 y Fe(The)e -Ff(n)p Fh(sho)m(wb)s(oa)m(rd)e Fe(commands)h(indicate)h(|)g(with)h(a)e -(small)h(b)r(o)n(x)f(|)i(whic)n(h)452 1496 y(pla)n(y)n(er)32 -b(has)g(to)g(mo)n(v)n(e.)52 b(Note:)47 b(this)33 b(only)f(w)n(orks)f -(when)i(the)g(ps)g(option)g(is)452 1596 y(used.)452 1723 -y Ff(n)p Fh(sho)m(wmoverO\013)452 1823 y Fe(The)28 b(dual)g(of)34 -b Ff(n)p Fh(sho)m(wmoverOn)p Fe(.)p 0 TeXcolorgray 0 -TeXcolorgray 452 2023 a Fg(Selective)j(sho)m(wing)g(of)g(pieces)452 -2161 y Ff(n)p Fh(sho)m(w)m(all)452 2261 y Fe(Mak)n(es)27 -b(the)h Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(sho)n(w)g(all)g -(pieces.)452 2388 y Ff(n)p Fh(sho)m(w)m(onlywhite)452 -2488 y Fe(The)h Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(will)h -(only)f(sho)n(w)g(the)h(white)g(pieces.)452 2615 y Ff(n)p -Fh(sho)m(w)m(onlyblack)452 2715 y Fe(The)g Ff(n)p Fh(sho)m(wb)s(oa)m -(rd)d Fe(commands)i(will)h(only)f(sho)n(w)g(the)h(blac)n(k)e(pieces.) -452 2842 y Ff(n)p Fh(sho)m(w)m(onlypa)m(wns)452 2942 -y Fe(The)i Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d Fe(commands)i(will)h(only)f -(sho)n(w)g(the)h(pa)n(wns.)452 3069 y Ff(n)p Fh(sho)m(w)m(only)q -Ff(f)p Fd(piece)e(names)p Ff(g)452 3169 y Fe(The)33 b(argumen)n(t)e -Fd(piece)h(names)38 b Fe(is)32 b(a)g(comma)g(separated)f(list)h(of)h -(names)e(of)452 3268 y(pieces)24 b(to)g(b)r(e)h(sho)n(wn)e(using)h(the) -g Ff(n)p Fh(sho)m(wb)s(oa)m(rd)e Fe(commands.)35 b(White)25 -b(pieces)452 3368 y(are)30 b(named)h Fd(K,Q,R,B,N,P)38 -b Fe(and)30 b(blac)n(k's)g Fd(k,q,r,b,n,p)s Fe(.)47 b(Note:)c(called)31 -b(with)452 3468 y(no)d(argumen)n(ts)e(all)h(pieces)h(are)e(sho)n(w)n -(ed!)p 0 TeXcolorgray 0 TeXcolorgray 2949 78 a Ff(n)p -Fh(sho)m(w)m(allbut)p Ff(f)p Fd(piece)f(names)p Ff(g)2949 -178 y Fe(The)33 b(argumen)n(t)e Fd(piece)h(names)38 b -Fe(is)32 b(a)g(comma)g(separated)f(list)h(of)h(names)e(of)2949 -278 y(pieces)h(whic)n(h)f(will)h Fc(not)40 b Fe(b)r(e)32 -b(sho)n(wn)f(when)h(using)f(the)h Ff(n)p Fh(sho)m(wb)s(oa)m(rd)d -Fe(com-)2949 377 y(mands.)37 b(Note:)g(called)27 b(with)h(an)g(empt)n -(y)f(list)h(no)f(pieces)h(are)e(sho)n(wn!)p 0 TeXcolorgray -0 TeXcolorgray 2949 608 a Fg(Move)37 b(a)m(rro)m(ws)2949 -760 y Ff(n)p Fh(p)m(rinta)m(rro)m(w)q Ff(f)p Fd(from)p -Ff(gf)p Fd(to)p Ff(g)2949 860 y Fe(Dra)n(ws)27 b(an)h(arro)n(w)d(on)j -(the)g(last)g(t)n(yp)r(eset)g(b)r(oard)f(from)g(the)h(square)f -Fd(from)j Fe(to)2949 959 y(the)e(square)f Fd(to)5 b Fe(.)2949 -1101 y Ff(n)p Fh(highlight)p Fd([ms])i Ff(f)p Fd(squa)n(re)25 -b(list)p Ff(g)2949 1201 y Fe(The)j(comma)f(separated)f -Fd(squa)n(re)h(list)32 b Fe(will)c(b)n(y)f(default)h(b)r(e)g(highligh)n -(ted)f(us-)2949 1301 y(ing)k(a)g(thic)n(k)g(frame)f(on)h(the)g(last)g -(t)n(yp)r(eset)g(b)r(oard.)46 b(The)31 b(optional)f(mark)n(er)2949 -1400 y(sym)n(b)r(ol)f Fd(ms)36 b Fe(can)29 b(b)r(e)g(one)g(of)g(X,)h -(x,)g(O)f(and)g(o)g(in)g(whic)n(h)g(case)g(a)g(cross)e(or)i(a)2949 -1500 y(circle)e(is)h(used)f(to)h(highligh)n(t)f(the)h(square.)2949 -1608 y Ff(n)p Fh(p)m(rintknightmove)p Ff(f)p Fd(from)p -Ff(gf)p Fd(to)p Ff(g)2949 1708 y Fe(Dra)n(ws)f(a)g(b)r(en)n(t)h(arro)n -(w)e(from)h(the)h(square)e Fd(from)j Fe(to)f(the)g(square)e -Fd(to)5 b Fe(.)p 0 TeXcolorgray 0 TeXcolorgray 2949 1939 -a Fg(Customizations)2949 2091 y Ff(n)p Fh(newsk)m(aklanguage)p -Ff(f)p Fd(language)p Ff(gf)p Fd(piecenames)p Ff(g)2949 -2190 y Fe(De\014nes)52 b(a)e(new)i Fd(language)j Fe(for)50 -b(the)i(input)f(of)g(SAN)h(mo)n(v)n(es.)105 b Fd(piece-)2949 -2290 y(names)52 b Fe(are)45 b(the)h(upp)r(ercase)f(letters)g(used)h -(for)f(the)h(pieces)g(in)g(the)g(or-)2949 2389 y(der)59 -b(King,)66 b(Queen,)h(Ro)r(ok,)f(Bishop,)g(Knigh)n(t,)h(P)n(a)n(wn.)129 -b(Example:)2949 2489 y Ff(n)p Fj(newskaklanguage)p Ff(f)o -Fj(da)o(nis)o(h)p Ff(g)o(f)p Fj(K)o(DT)o(LSB)o Ff(g)28 -b Fe(de\014nes)35 b Fd(danish)g Fe(as)f(a)g(new)h(in-)2949 -2589 y(put)29 b(language.)2949 2731 y Ff(n)p Fh(sk)m(aklanguage)p -Fd([language])2949 2830 y Fe(Cho)r(oses)e Fd(language)32 -b Fe(as)26 b(new)i(input)g(language)e(|)i(defaults)g(to)f -Fd(english)q Fe(.)2949 2972 y Ff(n)p Fh(mainlinest)m(yle)2949 -3072 y Fe(Activ)-5 b(ates)34 b(the)f(t)n(yp)r(esetting)h(st)n(yle)e -(for)h(the)h(mainline)f(|)g(this)h(command)2949 3172 -y(can)28 b(b)r(e)g(rede\014ned)f(if)h(sp)r(ecial)f(requiremen)n(ts)g -(for)g(the)h(t)n(yp)r(esetting)g(exists.)2949 3314 y -Ff(n)p Fh(va)m(riationst)m(yle)2949 3413 y Fe(Similar)g(to)f -Ff(n)p Fh(mainlinest)m(yle)g Fe(just)h(for)f(the)h(t)n(yp)r(esetting)g -(of)g(v)-5 b(ariations.)p 0 TeXcolorgray 2887 3717 a(2)p -0 TeXcolorgray eop end -%%Page: 3 3 -TeXDict begin @landscape 3 2 bop 0 TeXcolorgray 0 TeXcolorgray -2220 -242 a Fj(skak)31 b Fi(v)m(ersion)g(1.2)g Fh(Reference)h(Manual)p -452 -209 4912 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray -452 78 a Fg(Game)38 b(sto)m(rage)452 214 y Ff(n)p Fh(savegame)p -Ff(f)p Fd(\014le)25 b(name)p Ff(g)452 313 y Fe(W)-7 b(rites)27 -b(the)f(FEN)g(string)g(for)f(the)i(curren)n(t)e(p)r(osition)h(on)g(the) -h(b)r(oard)e(to)h(the)452 413 y(\014le)i Fb(<)p Fj(file)42 -b(name)p Fb(>)p Fj(.fen)452 534 y Ff(n)p Fh(loadgame)p -Ff(f)p Fd(\014le)25 b(name)p Ff(g)452 633 y Fe(Load)i(the)h(p)r -(osition)f(stored)g(in)h(the)g(\014le)g Fb(<)p Fj(file)41 -b(name)p Fb(>)p Fj(.fen)452 754 y Ff(n)p Fh(sto)m(regame)p -Ff(f)p Fd(name)p Ff(g)452 854 y Fe(Stores)27 b(the)h(curren)n(t)f(game) -g(p)r(osition)g(using)h Fd(name)33 b Fe(as)27 b(reference.)452 -975 y Ff(n)p Fh(resto)m(regame)p Ff(f)p Fd(name)p Ff(g)452 -1074 y Fe(Restores)g(the)h(game)f(previously)f(sa)n(v)n(ed)g(using)i -Ff(n)p Fh(sto)m(regame)p Fe(.)p 0 TeXcolorgray 0 TeXcolorgray -452 1262 a Fg(P)m(ack)m(age)37 b(options)452 1398 y Fh(ps)i -Fe(Includes)f(the)h Fj(ps-tricks)c Fe(pac)n(k)-5 b(age)37 -b(in)i(order)e(to)h(mak)n(e)g(ornamen)n(ts)452 1497 y(on)g(the)g(b)r -(oard.)66 b(Required)37 b(to)g(mak)n(e)g(the)h(follo)n(wing)f(commands) -g(w)n(ork:)452 1597 y Ff(n)p Fh(sho)m(wmoverOn)p Fe(,)26 -b Ff(n)p Fh(p)m(rinta)m(rro)m(w)q Fe(,)h Ff(n)p Fh(highlight)p -Fe(,)e Ff(n)p Fh(p)m(rintknightmove)p Fe(.)452 1718 y -Fh(pso\013)34 b Fe(Do)r(es)27 b Fc(not)36 b Fe(include)28 -b(the)g Fj(ps-tricks)c Fe(pac)n(k)-5 b(age.)452 1838 -y Fh(mover)29 b Fe(Issues)e(the)h Ff(n)p Fh(sho)m(wmoveOn)d -Fe(command.)452 1959 y Fh(movero\013)34 b Fe(Issues)27 -b(the)h Ff(n)p Fh(sho)m(wmoveOn)d Fe(command.)452 2080 -y Fh(notation)g Fe(Issues)i(the)h Ff(n)p Fh(notationOn)c -Fe(command.)452 2201 y Fh(english)41 b Fe(Mak)n(es)f(english)h(the)h -(preferred)e(input)i(language)d(|)i(the)h(only)452 2301 -y(de\014ned)28 b(language)e(at)i(the)g(momen)n(t.)452 -2421 y Fh(st)m(yleA)g Fe(Cho)r(oses)f Ff(n)p Fh(st)m(yleA)g -Fe(st)n(yle)g(for)g(the)h(t)n(yp)r(esetting)g(of)f(mo)n(v)n(es.)452 -2542 y Fh(st)m(yleB)h Fe(Cho)r(oses)f Ff(n)p Fh(st)m(yleB)g -Fe(st)n(yle)g(for)g(the)h(t)n(yp)r(esetting)g(of)f(mo)n(v)n(es.)452 -2663 y Fh(st)m(yleC)i Fe(Cho)r(oses)d Ff(n)p Fh(st)m(yleC)i -Fe(st)n(yle)f(for)g(the)h(t)n(yp)r(esetting)g(of)f(mo)n(v)n(es.)452 -2784 y Fh(tiny)h Fe(The)g(b)r(oard)f(is)g(sho)n(wn)g(using)g(the)h(tin) -n(y)g(size)f(fon)n(t.)452 2905 y Fh(small)h Fe(The)g(b)r(oard)e(is)i -(sho)n(wn)f(using)g(the)h(small)f(size)h(fon)n(t.)452 -3025 y Fh(no)m(rmal)f Fe(The)h(b)r(oard)f(is)g(sho)n(wn)g(using)g(the)h -(normal)f(size)g(fon)n(t.)452 3146 y Fh(la)m(rge)h Fe(The)g(b)r(oard)f -(is)g(sho)n(wn)g(using)g(the)h(large)e(size)i(fon)n(t.)452 -3352 y(The)20 b(default)h(options)e(are)g Fh(notation,)i(no)m(rmal,)i -(pso\013,)h(english,)g(movero\013,)452 3452 y(st)m(yleB)p -Fe(.)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 2887 -3717 a(3)p 0 TeXcolorgray eop end -%%Trailer - -userdict /end-hook known{end-hook}if -%%EOF |