%!PS-Adobe-2.0%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software%%Title: 10.dvi%%Pages: 23%%PageOrder: Ascend%%BoundingBox: 0 0 595 842%%DocumentFonts: Times-Bold ComicSansMS CMMIB10 CMBX12 CMBSY10 CMBXTI10%%+ CMBX8 CMBSY7 CMMIB7 CMBX10 ComicSansMS-Bold%%EndComments%DVIPSWebPage: (www.radicaleye.com)%DVIPSCommandLine: dvips 10.dvi -o 10.ps%DVIPSParameters: dpi=600%DVIPSSource: TeX output 2005.07.12:1238%%BeginProcSet: tex.pro 0 0%!/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{SN}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 00 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsizemul 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 roundexch 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}2array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat Ndf-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn Adefinefont 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 ctr1 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 Cysetcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemaskrestore}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 Amul 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 X1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A length product exch 0exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelseend{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemaskgrestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch roundexch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlinetofill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S pdelta 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 Srmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end%%EndProcSet%%BeginProcSet: pstricks.pro 0 0%!% PostScript prologue for pstricks.tex.% Version 97 patch 4, 04/05/10% For distribution, see pstricks.tex.%/tx@Dict 200 dict def tx@Dict begin/ADict 25 dict def/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/Atan { /atan load stopped { pop pop 0 } if } def/Div { dup 0 eq { pop } { div } ifelse } def/NET { neg exch neg exch T } def/Pyth { dup mul exch dup mul add sqrt } def/PtoC { 2 copy cos mul 3 1 roll sin mul } def/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/STV { SDict begin normalscale end STP } def%%%-------------- DG begin patch 15 ---------------%%%/DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def%PathLength } ifelse /b ED /x ED /y ED /z y x add def 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 dup y mul%/y ED x mul /x ED x 0 gt y 0 gt and { [ y x ] 1 a sub y mul } { [ 1 0 ]%0 } ifelse setdash stroke } def/DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def PathLength } ifelse /b ED /x1 ED /y1 ED /x ED /y ED /z y x add y1 add x1 add def /Coef 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 def /y y Coef mul def /x x Coef mul def /y1 y1 Coef mul def /x1 x1 Coef mul def x1 0 gt y1 0 gt x 0 gt y 0 gt and { [ y x y1 x1 ] 1 a sub y mul} { [ 1 0] 0 } ifelse setdash stroke} def%%-------------- DG end patch 15 ---------------%%/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 adddef } 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 1setlinecap stroke } def/LineFill { gsave abs CLW add /a ED a 0 dtransform round exch round exch2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25% DG/SR modification begin - Dec. 12, 1997 - Patch 2%itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED aitransform pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a% DG/SR modification endDiv cvi /x1 ED /y2 y2 y1 sub def clip newpath 2 setlinecap systemdict/setstrokeadjust known { true setstrokeadjust } if x2 x1 sub 1 add { x1% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)% a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore }% defa mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestorepop pop } def% DG/SR modification end/BeginArrow { ADict begin /@mtrx CM def gsave 2 copy T 2 index sub negexch 3 index sub exch Atan rotate newpath } def/EndArrow { @mtrx setmatrix CP grestore end } def/Arrow { CLW mul add dup 2 div /w ED mul dup /h ED mul /a ED { 0 h T 1 -1scale } if w neg h moveto 0 0 L w h L w neg a neg rlineto gsave fillgrestore } def/Tbar { CLW mul add /z ED z -2 div CLW 2 div moveto z 0 rlineto stroke 0CLW moveto } def/Bracket { CLW mul add dup CLW sub 2 div /x ED mul CLW add /y ED /z CLW 2div def x neg y moveto x neg CLW 2 div L x CLW 2 div L x y L stroke 0CLW moveto } def/RoundBracket { CLW mul add dup 2 div /x ED mul /y ED /mtrx CM def 0 CLW2 div T x y mul 0 ne { x y scale } if 1 1 moveto .85 .5 .35 0 0 0curveto -.35 0 -.85 .5 -1 1 curveto mtrx setmatrix stroke 0 CLW moveto }def/SD { 0 360 arc fill } def/EndDot { { /z DS def } { /z 0 def } ifelse /b ED 0 z DS SD b { 0 z DSCLW 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 /movetoload } if ] cvx newpath 3 1 roll T exec } def/NArray { aload length 2 div dup dup cvi eq not { exch pop } if /n exchcvi def } def/NArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop } iff { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def/Line { NArray n 0 eq not { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 subdef n { Lineto } repeat CP 4 2 roll ArrowB 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 eqand { 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 /y1ED /x1 ED x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1moveto /n n 2 sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll LinetoLineto pop pop closepath } ifelse } def/Diamond { /mtrx CM def T rotate /h ED /w ED dup 0 eq { pop } { CLW mulneg /d ED /a w h Atan def /h d a sin Div h add def /w d a cos Div w adddef } ifelse mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2div /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrxsetmatrix } def% DG modification begin - Jan. 15, 1997%/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq {%pop } { 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 } ifelse mark 0 d w neg d 0 h w d 0%d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx%setmatrix } def/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dupCLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2div dup cos exch sin Div mul sub def mark 0 d w neg d 0 h w d 0d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)% setmatrix } defsetmatrix pop } def% DG/SR modification end/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pythdef } def/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pythdef } def/CC { /l0 l1 def /x1 x dx sub def /y1 y dy sub def /dx0 dx1 def /dy0 dy1def CCA /dx dx0 l1 c exp mul dx1 l0 c exp mul add def /dy dy0 l1 c expmul dy1 l0 c exp mul add def /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cosabs 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 mulm 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/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 { poppop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse } 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/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 matrixrotate matrix concatmatrix exch findfont exch makefont setfont } def/Rect { x1 y1 y2 add 2 div moveto x1 y2 lineto x2 y2 lineto x2 y1 linetox1 y1 lineto closepath } def/OvalFrame { x1 x2 eq y1 y2 eq or { pop pop x1 y1 moveto x2 y2 L } { y1y2 sub abs x1 x2 sub abs 2 copy gt { exch pop } { pop } ifelse 2 divexch { 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 arctox2 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 { 62 roll 4 2 roll curveto } repeat 6 2 roll 4 2 roll ArrowB curveto }ifelse } 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/BezierShowPoints { gsave Points aload length 2 div cvi /n ED moveto n 1sub { lineto } repeat CLW 2 div SLW [ 4 4 ] 0 setdash stroke grestore }def/Parab { /y0 exch def /x0 exch def /y1 exch def /x1 exch def /dx x0 x1sub 3 div def /dy y0 y1 sub 3 div def x0 dx sub y0 dy add x1 y1 ArrowAx0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB curveto /Points [ x1 y1 x0y0 x0 2 mul x1 sub y1 ] def } def/Grid { newpath /a 4 string def /b ED /c ED /n ED cvi dup 1 lt { pop 1 }if /s ED s div dup 0 eq { pop 1 } if /dy ED s div dup 0 eq { pop 1 } if/dx ED dy div round dy mul /y0 ED dx div round dx mul /x0 ED dy divround cvi /y2 ED dx div round cvi /x2 ED dy div round cvi /y1 ED dx divround cvi /x1 ED /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def /w x2 x1 sub0 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 addexch itransform } bind def } ifelse gsave n 0 gt { 1 setlinecap [ 0 dy ndiv ] dy n div 2 div setdash } { 2 setlinecap } ifelse /i x1 def /f y1dy 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 dupstringwidth 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 iw 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 muln 0 gt { dx n div 2 div w mul sub } if def /g x2 dx mul n 0 gt { dx ndiv 2 div w mul add } if def y2 y1 sub h mul 1 add dup 1000 gt { pop1000 } if { newpath i dy mul dup x0 exch moveto b 0 gt { gsave c i a cvsdup 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 gexch 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 01 0 0 b grestore c mul /e ED pop pop pop r a e d PtoC y add exch x addexch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div cmul neg d } def/Ellipse { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def/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 [ RAngledup 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 sabs c abs 2 copy gt dup /q ED { pop } { exch pop } ifelse def /w1 c bdiv 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 smul 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 addexch } 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 OLUnitneg exch neg exch idtransform T moveto } def /BOL { BeginOL } def/IfVisible true def } defend% END pstricks.pro%%EndProcSet%%BeginProcSet: pst-dots.pro 0 0%!PS-Adobe-2.0%%Title: Dot Font for PSTricks%%Creator: Timothy Van Zandt <tvz@Princeton.EDU>%%Creation Date: May 7, 1993%% Version 97 patch 1, 99/12/16%% Modified by Etienne Riga <etienne.riga@skynet.be> - Dec. 16, 1999%% to add /Diamond, /SolidDiamond and /BoldDiamond10 dict dup begin /FontType 3 def /FontMatrix [ .001 0 0 .001 0 0 ] def /FontBBox [ 0 0 0 0 ] def /Encoding 256 array def 0 1 255 { Encoding exch /.notdef put } for Encoding dup (b) 0 get /Bullet put dup (c) 0 get /Circle put dup (C) 0 get /BoldCircle put 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% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga dup (l) 0 get /SolidDiamond put dup (d) 0 get /Diamond put (D) 0 get /BoldDiamond put% DG/SR modification end /Metrics 13 dict def Metrics begin /Bullet 1000 def /Circle 1000 def /BoldCircle 1000 def /SolidTriangle 1344 def /Triangle 1344 def /BoldTriangle 1344 def /SolidSquare 886 def /Square 886 def /BoldSquare 886 def /SolidPentagon 1093.2 def /Pentagon 1093.2 def /BoldPentagon 1093.2 def% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga /SolidDiamond 1008 def /Diamond 1008 def /BoldDiamond 1008 def% DG/SR modification end /.notdef 0 def end /BBoxes 13 dict def BBoxes begin /Circle { -550 -550 550 550 } def /BoldCircle /Circle load def /Bullet /Circle load def /Triangle { -571.5 -330 571.5 660 } def /BoldTriangle /Triangle load def /SolidTriangle /Triangle load def /Square { -450 -450 450 450 } def /BoldSquare /Square load def /SolidSquare /Square load def /Pentagon { -546.6 -465 546.6 574.7 } def /BoldPentagon /Pentagon load def /SolidPentagon /Pentagon load def% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga /Diamond { -428.5 -742.5 428.5 742.5 } def /BoldDiamond /Diamond load def /SolidDiamond /Diamond load def% DG/SR modification end /.notdef { 0 0 0 0 } def end /CharProcs 20 dict def CharProcs begin /Adjust { 2 copy dtransform floor .5 add exch floor .5 add exch idtransform 3 -1 roll div 3 1 roll exch div exch scale } def /CirclePath { 0 0 500 0 360 arc closepath } def /Bullet { 500 500 Adjust CirclePath fill } def /Circle { 500 500 Adjust CirclePath .9 .9 scale CirclePath eofill } def /BoldCircle { 500 500 Adjust CirclePath .8 .8 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% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga /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 .85 .85 scale DiamondPath eofill } def /BoldDiamond { DiamondPath .7 .7 scale DiamondPath eofill } def% DG/SR modification end /.notdef { } def end /BuildGlyph { exch begin Metrics 1 index get exec 0 BBoxes 3 index get exec setcachedevice CharProcs begin load exec end end } def /BuildChar { 1 index /Encoding get exch get 1 index /BuildGlyph get exec } bind defend/PSTricksDotFont exch definefont pop%END pst-dots.pro%%EndProcSet%%BeginProcSet: pst-node.pro 0 0%!% PostScript prologue for pst-node.tex.% Version 97 patch 1, 97/05/09.% For distribution, see pstricks.tex.%/tx@NodeDict 400 dict def tx@NodeDict begintx@Dict begin /T /translate load def end/NewNode { gsave /next ED dict dup 3 1 roll def exch { dup 3 1 roll def }if begin tx@Dict begin STV CP T exec end /NodeMtrx CM def next endgrestore } 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 exchSin 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 } { dxdup 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 dupCos mul exch Sin mul } def/TriNodePos { Sin s lt { d NodeSep sub dup Cos mul Sin Div exch } { w hmul 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 /dED pop pop pop pop -90 mul rotate /NodeMtrx CM def /X 0 def /Y 0 def dsub abs neg /d ED d add /h ED 2 div h mul h d sub Div /w ED /s d w Atansin def /NodePos { TriNodePos } def } def/OvalNodePos { /ww w NodeSep add def /hh h NodeSep add def Sin ww mul Coshh 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 { DistDist 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 idtransformexch atan sub dup sin /Sin ED cos /Cos ED /NodeSep ED NodePos NodeMtrxdtransform CM idtransform end } { 1 eq {{exch}} {{}} ifelse /Do ED popXYPos } ifelse } def/AddOffset { 1 index 0 eq { pop pop } { 2 copy 5 2 roll cos mul add 4 1roll sin mul sub exch } ifelse } def/GetEdgeA { NodeSepA AngleA NodeA NodeSepTypeA GetEdge OffsetA AngleAAddOffset yA add /yA1 ED xA add /xA1 ED } def/GetEdgeB { NodeSepB AngleB NodeB NodeSepTypeB GetEdge OffsetB AngleBAddOffset yB add /yB1 ED xB add /xB1 ED } def/GetArmA { ArmTypeA 0 eq { /xA2 ArmA AngleA cos mul xA1 add def /yA2 ArmAAngleA sin mul yA1 add def } { ArmTypeA 1 eq {{exch}} {{}} ifelse /Do EDArmA 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 ArmBAngleB sin mul yB1 add def } { ArmTypeB 1 eq {{exch}} {{}} ifelse /Do EDArmB AngleB XYPos OffsetB AngleB AddOffset yB add /yB2 ED xB add /xB2 ED} ifelse } def/InitNC { /b ED /a ED /NodeSepTypeB ED /NodeSepTypeA ED /NodeSepB ED/NodeSepA ED /OffsetB ED /OffsetA ED tx@NodeDict a known tx@NodeDict bknown and dup { /NodeA a load def /NodeB b load def NodeA GetCenter /yAED /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 submul 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{ 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 3mul cx sub def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bxsub def /ay y3 y0 sub cy sub by sub def ax t 3 exp mul bx t t mul muladd cx t mul add x0 add ay t 3 exp mul by t t mul mul add cy t mul addy0 add 3 ay t t mul mul mul 2 by t mul mul add cy add 3 ax t t mul mulmul 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 cleartomarkVPosEnd } def/HPutCurve { gsave newpath /SaveLPutVar /LPutVar load def LPutVar 8 -2roll moveto curveto flattenpath /LPutVar [ {} {} {} {} pathforall ] cvxdef grestore exec /LPutVar /SaveLPutVar load def } def/NCCoor { /AngleA yB yA sub xB xA sub Atan def /AngleB AngleA 180 add defGetEdgeA 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 popend } def/NCLines { false NArray n 0 eq { NCLine } { 2 copy yA sub exch xA subAtan /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 xA1yA1 ] 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 -1roll mul /ArmA ED mul /ArmB ED /ArmTypeA 0 def /ArmTypeB 0 def GetArmAGetArmB xA2 yA2 xA1 yA1 tx@Dict begin ArrowA end xB2 yB2 xB1 yB1 tx@Dictbegin 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 rotatedef xA2 yA2 mtrx transform pop xB2 yB2 mtrx transform exch pop mtrxitransform /y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA2yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end /LPutVar [ xB1yB1 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 xB2yB2 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 yA1tx@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 defxA2 yA2 mtrx itransform pop xB2 yB2 mtrx itransform pop sub dup 0 mtrxtransform 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 ArmB0 ne { xB1 yB1 } if xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dictbegin false Line end /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvxdef /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos {VPutLines } def } def/NCDiag { GetEdgeA GetEdgeB GetArmA GetArmB mark ArmB 0 ne { xB1 yB1 } ifxB2 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 { GetEdgeA GetArmA yB yA2 sub xB xA2 sub Atan 180 add /AngleB EDGetEdgeB mark xB1 yB1 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict beginfalse 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 rotatedef xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED /xB3 xB2 yB2mtrx transform pop def xB3 yA3 mtrx itransform /yB3 ED /xB3 ED xA3 yA3mtrx itransform /yA3 ED /xA3 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin falseLine 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 rr mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA addexch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360mul 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 addAngleA 270 add a sub tx@Dict begin /angleB ED /angleA ED /r ED /c 57.2957 rDiv def /y ED /x ED } def/NCBox { /d ED /h ED /AngleB yB yA sub xB xA sub Atan def /AngleA AngleB180 add def GetEdgeA GetEdgeB /dx d AngleB sin mul def /dy d AngleB cosmul 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 dyadd xA1 dx add yA1 dy add ] cvx def /LPutPos { LPutLines } def /HPutPos{ xB yB xA yA LPutLine } def /VPutPos { HPutPos } def mark LPutVartx@Dict begin false Polygon end } def/NCArcBox { /l ED neg /d ED /h ED /a ED /AngleA yB yA sub xB xA sub Atandef /AngleB AngleA 180 add def /tA AngleA a sub 90 add def /tB tA a 2mul 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 divdef /AngleA AngleA a sub 180 add def /AngleB AngleB a add 180 add defGetEdgeA GetEdgeB /AngleA tA 180 add yA yA1 sub xA xA1 sub Pyth c mulsub def /AngleB tB 180 add yB yB1 sub xB xB1 sub Pyth c mul add def l 0eq { 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 def0 0 r h add tA tB arc r h add AngleB PtoC r d add AngleB PtoC 2 copy 6 2roll l arcto 4 { pop } repeat r d add tB PtoC l arcto 4 { pop } repeat 00 r d add tB tA arcn r d add AngleA PtoC r h add AngleA PtoC 2 copy 6 2roll 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 addadd AngleB PtoC } { t 3 lt { r d add AngleB 3 t sub mul AngleA 2 t submul add dup 90 sub /NAngle ED PtoC } { /NAngle AngleA 180 add def r 4 tsub d mul t 3 sub h mul add add AngleA PtoC } ifelse } ifelse } ifelsey0 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 yBsub Pyth Pyth w Div CLW 2 div mul 2 div dup AngleA sin mul yA1 add /yA1ED AngleA cos mul xA1 add /xA1 ED /LPutVar [ xA1 yA1 m { xB w add yB xBw 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 negexch X sub neg exch moveto setmatrix CP grestore } def/LPut { tx@NodeDict /LPutPos known { LPutPos } { CP /Y ED /X ED /NAngle 0def } 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 } ifr 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 }defend% END pst-node.pro%%EndProcSet%%BeginProcSet: pst-text.pro 0 0%!% PostScript header file pst-text.pro% Version 97, 94/04/20; patched MV 10-09-99 00:36% For distribution, see pstricks.tex./tx@TextPathDict 40 dict deftx@TextPathDict begin% Syntax: <dist> PathPosition -% Function: Searches for position of currentpath distance <dist> from% beginning. Sets (X,Y)=position, and Angle=tangent./PathPosition{ /targetdist exch def /pathdist 0 def /continue true def /X { newx } def /Y { newy } def /Angle 0 def gsave flattenpath { movetoproc } { linetoproc } { } { firstx firsty linetoproc } /pathforall load stopped { pop pop pop pop /X 0 def /Y 0 def } if grestore} def/movetoproc { continue { @movetoproc } { pop pop } ifelse } def/@movetoproc{ /newy exch def /newx exch def /firstx newx def /firsty newy def} def/linetoproc { continue { @linetoproc } { pop pop } ifelse } def/@linetoproc{ /oldx newx def /oldy newy def /newy exch def /newx exch def /dx newx oldx sub def /dy newy oldy sub def /dist dx dup mul dy dup mul add sqrt def /pathdist pathdist dist add def pathdist targetdist ge { pathdist targetdist sub dist div dup dy mul neg newy add /Y exch def dx mul neg newx add /X exch def /Angle dy dx atan def /continue false def } if} def/TextPathShow{ /String exch def /CharCount 0 def String length { String CharCount 1 getinterval ShowChar /CharCount CharCount 1 add def } repeat} def% Syntax: <pathlength> <position> InitTextPath -/InitTextPath{ gsave currentpoint /Y exch def /X exch def exch X Hoffset sub sub mul Voffset Hoffset sub add neg X add /Hoffset exch def /Voffset Y def grestore} def/Transform{ PathPosition dup Angle cos mul Y add exch Angle sin mul neg X add exch translate Angle rotate} def/ShowChar{ /Char exch def gsave Char end stringwidth tx@TextPathDict begin 2 div /Sy exch def 2 div /Sx exch def%%% MV 10-09-99 00:36 /sc?currentpoint where {pop sc?currentpoint} {currentpoint} ifelse% currentpoint Voffset sub Sy add exch Hoffset sub Sx add Transform Sx neg Sy neg moveto Char end tx@TextPathSavedShow tx@TextPathDict begin grestore Sx 2 mul Sy 2 mul rmoveto} defend% END pst-text.pro%%EndProcSet%%BeginProcSet: 8r.enc 0 0% File 8r.enc TeX Base 1 Encoding Revision 2.0 2002-10-30%% @@psencodingfile@{% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry,% W. Schmidt, P. Lehman",% version = "2.0",% date = "30 October 2002",% filename = "8r.enc",% email = "tex-fonts@@tug.org",% docstring = "This is the encoding vector for Type1 and TrueType% fonts to be used with TeX. This file is part of the% PSNFSS bundle, version 9"% @}% % The idea is to have all the characters normally included in Type 1 fonts% available for typesetting. This is effectively the characters in Adobe% Standard encoding, ISO Latin 1, Windows ANSI including the euro symbol,% MacRoman, and some extra characters from Lucida.% % Character code assignments were made as follows:% % (1) the Windows ANSI characters are almost all in their Windows ANSI% positions, because some Windows users cannot easily reencode the% fonts, and it makes no difference on other systems. The only Windows% ANSI characters not available are those that make no sense for% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen% (173). quotesingle and grave are moved just because it's such an% irritation not having them in TeX positions.% % (2) Remaining characters are assigned arbitrarily to the lower part% of the range, avoiding 0, 10 and 13 in case we meet dumb software.% % (3) Y&Y Lucida Bright includes some extra text characters; in the% hopes that other PostScript fonts, perhaps created for public% consumption, will include them, they are included starting at 0x12.% These are /dotlessj /ff /ffi /ffl.% % (4) hyphen appears twice for compatibility with both ASCII and Windows.%% (5) /Euro was assigned to 128, as in Windows ANSI%% (6) Missing characters from MacRoman encoding incorporated as follows:%% PostScript MacRoman TeXBase1% -------------- -------------- --------------% /notequal 173 0x16% /infinity 176 0x17% /lessequal 178 0x18% /greaterequal 179 0x19% /partialdiff 182 0x1A% /summation 183 0x1B% /product 184 0x1C% /pi 185 0x1D% /integral 186 0x81% /Omega 189 0x8D% /radical 195 0x8E% /approxequal 197 0x8F% /Delta 198 0x9D% /lozenge 215 0x9E%/TeXBase1Encoding [% 0x00 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron% 0x10 /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle% 0x20 /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash% 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question% 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O% 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore% 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o% 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef% 0x80 /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal% 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis% 0xA0 /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron% 0xD0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown% 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis% 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls% 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis% 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def%%EndProcSet%%BeginProcSet: texmital.enc 0 0% TeX math italic encoding.% No ligatures or kerns.% /TeXMathItalicEncoding [ % now 256 chars follow% 0x0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon% 0x8/Phi/Psi/Omega/alpha/beta/gamma/delta/epsilon1% 0x10/zeta/eta/theta/iota/kappa/lambda/mu/nu% 0x18/xi/pi/rho/sigma/tau/upsilon/phi/chi% 0x20/psi/omega/epsilon/theta1/pi1/rho1/sigma1/phi1% 0x28/arrowlefttophalf/arrowleftbothalf/arrowrighttophalf/arrowrightbothalf/arrowhookleft/arrowhookright/triangleright/triangleleft% 0x30/zerooldstyle/oneoldstyle/twooldstyle/threeoldstyle/fouroldstyle/fiveoldstyle/sixoldstyle/sevenoldstyle% 0x38/eightoldstyle/nineoldstyle/period/comma/less/slash/greater/star% 0x40/partialdiff/A/B/C/D/E/F/G% 0x48/H/I/J/K/L/M/N/O% 0x50/P/Q/R/S/T/U/V/W% 0x58/X/Y/Z/flat/natural/sharp/slurbelow/slurabove% 0x60/lscript/a/b/c/d/e/f/g% 0x68/h/i/j/k/l/m/n/o% 0x70/p/q/r/s/t/u/v/w% 0x78/x/y/z/dotlessi/dotlessj/weierstrass/vector/tie% Have to have 128 .notdef's now to fill things out.% /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def%%EndProcSet%%BeginProcSet: texps.pro 0 0%!TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 rollexec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0ne{/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 getdiv def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict enddefinefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dupsin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 rollmul 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}defend%%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{/hoX}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 mdmaxlength 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 Satan/pa X newpath clippath mark{transform{itransform moveto}}{transform{itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 rolltransform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 rollcurveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdfpop 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 3get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflipyflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg subneg 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 pop90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 getneg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr2 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 STR}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$SavedStatesave N userdict maxlength dict begin/magscale true def normalscalecurrentpoint 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$xpsf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sxpsf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury subTR/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 rollnewpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S linetoclosepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict begin/SpecialSave save N gsave normalscalecurrentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hsneg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotaterwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelsescale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neglly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urxury 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 SpecialSaverestore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveYmoveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrixmatrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arcsavematrix setmatrix}N end%%EndProcSet%%BeginProcSet: color.pro 0 0%!TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{popsetrgbcolor}{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 exchknown{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 0setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.610.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 0setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.870.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 0setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.900 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 0setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 00 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 0setcmykcolor}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 00.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{10.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.110 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 00.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 0setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 00.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 01 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 0setcmykcolor}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.70setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end%%EndProcSetTeXDict begin @defspecial /DvipsToPDF { 72.27 mul Resolution div } def /PDFToDvips { 72.27 divResolution mul } def /HyperBorder { 1 PDFToDvips } def /H.V {pdf@hoffpdf@voff null} def /H.B {/Rect[pdf@llx pdf@lly pdf@urx pdf@ury]} def/H.S { currentpoint HyperBorder add /pdf@lly exch def dup DvipsToPDF/pdf@hoff exch def HyperBorder sub /pdf@llx exch def } def /H.L { 2sub dup /HyperBasePt exch def PDFToDvips /HyperBaseDvips exch def currentpointHyperBaseDvips sub /pdf@ury exch def /pdf@urx exch def } def /H.A {H.L currentpoint exch pop vsize 72 sub exch DvipsToPDF HyperBasePtsub sub /pdf@voff exch def } def /H.R { currentpoint HyperBorder sub/pdf@ury exch def HyperBorder add /pdf@urx exch def currentpoint exchpop vsize 72 sub exch DvipsToPDF sub /pdf@voff exch def } def systemdict/pdfmark known not {userdict /pdfmark systemdict /cleartomark get put}if@fedspecial end%%BeginFont: ComicSansMS-Bold%!PS-AdobeFont-1.0: ComicSansMS-Bold Copyright [c] 1995 Microsoft Corporation. All rights reserved.%%CreationDate: Sat Sep 14 10:17:13 2002% Converted by ttf2pt1 3.4.2/ttf% Args: -a -b comicbd.ttf%%EndComments12 dict begin/FontInfo 9 dict dup begin/version (Version 2.10) readonly def/Notice (Copyright [c] 1995 Microsoft Corporation. All rights reserved.) readonly def/FullName (Comic Sans MS Bold) readonly def/FamilyName (Comic Sans MS) readonly def/Weight (Bold) readonly def/ItalicAngle 0.000000 def/isFixedPitch false def/UnderlinePosition -133 def/UnderlineThickness 85 defend readonly def/FontName /ComicSansMS-Bold def/PaintType 0 def/StrokeWidth 0 def/FontType 1 def/FontMatrix [0.001 0 0 0.001 0 0] def/FontBBox {-112 -292 1229 1102} readonly def/Encoding 256 array0 1 255 {1 index exch /.notdef put} fordup 0 /.notdef putreadonly defcurrentdict endcurrentfile eexecD9D66F633B846A989B9974B0179FC6CC445BC1325EB8F274DD24A5D21C05636413EFC099729365596A8A52075A624087116520034680FDBD3E86220CBF46C2E82BA32413E26C0AE960BB760BE98B2E1348D6A21CDB5429260899F7FF77617B00E876499AFB997425D58673778E90672CE2F26C816F6EF6C1F6F0724D575749C55AE9D8CD0337709436E75CF2354AFBA7974814727450620BF79E10457E31E899430F90AC9865F70FE6B6776E627CF8EF16BCE98FC20BF19118EFF621136A34E7DFC1D81C92C0A08A2EC36BA3DEA3D39B40BCD8C02C3BB49721A82A2AFA7C71E921ED507C851DE47682AEDBE1BC9FB9486BE62F811D476C5759AB64F05ED46B4435825B33EFD87DD94B24DBAFA17855A7A6C2890A6667F4437DC4CE8158F39396013978584B1F19FA92086B30B03D22D7048D338583E1FFEF30F749910C228FA3D6F4E130847988D50B7AAD24BD36B1964DD6224C736461035DF3E79F9662CA19F05C4FEF3C27BB75FF95CDB588A1954DCEA4A1FEA85D88EB893CDA427BB463C3443C887C5820F1530D3A40C5971DBC3E5DDAF87D55A0B515CB50DD3913ECE7B833248E6D72DD363BCD0EAEEF2FD3AE92A7FB2C16635427B49324FE10CBEA6F0D6C15ED584ED6EAB25A8A4E1A3875EE1403ED08A6648E28D08B5D411933106493DF5CBD3F1D0E9D0D055A3E9C6C882526C375D71D85CF0E1806D7B4826A2F31F6CFEB55341D3FCD9B1513895AC273C5B044052117FBC488761BE599B45656E06A63B250E31385F8462D0CDA1D4E261F70D0F14165FDEF1C160A16A35865B057F75B6202CEBD8C1C9171930459A4031171461E4A6F550DA2D59EFC52B12573F89341C7723D718EE15D3117574C43A8A8D076B204E643D52B1C06099A4518FD0BC54C4AF90192CA08DB2A33B5819982A34C49A313FE9211657D40844E1D39319341D0F40B15EFC6B8101C4762D9E7FE844DF96FD989CF9A31E6B8F55EC976386C425230E995E273148590FBB65F18CAB4A1A3A66A05004ED8A88ACE524159B4902DAD7B8E6ABB9062310BE7772B4287DD7823FC10CC77248DAC4E0D14CBF511921B62A508FBD0C338ECAB53C74DC4E883803F2FB7FB390E82E30B395FBEA1DC6D7DFC80DE646F8D21E6DAE1D2FE24BBE088A6DF3EE50851FEEA89C68E3509FF9C73ABE7F97CF8D7F3E36B58DD3E802C89472529D7F37BE0E28FE4D056969AB8C04466F6B2323849E5A87612AE5E32E4F150EBD1B0EF59DE775553D9DD5A9F5AD0297ED9CF20980B148F6000C565F75E3F384644DDC3238281C41D9387A29171C53E99A6C68B84EB90501DE108B826DE9F26DF59B2995B000E5AE2CE32B6DEAE3ECF59AA38B2FEEB448B4CA0C8726ADC87E473C25EEECD0CDBA01C3098332FD8CE6C0A393AB1BDCB8F04AE2EA28F6657C76F77B64D605695615950B45A6150CEB9D39AB195BE5776EB8D864CE0BC36AE063F833DB492201E3AAF5C41EBE3D6131603EF1AD7BB91A219A12F86DCE859F1F48AC037F26DEDB1C48ABA276E8E55E7EF2DC1C36937123329824946320837A6F8F17C04EEDF96D353F451D9A5027FB887045C3BF765E8ED90FBFE5BB42A7150737F7B9FAF7E0D5C9B7C3D6E3F732E32BC0767B9FBDBA0DB04699C2988BDF034762787CF6CE66357C4904B79B704C799AE090C2E12AF3B4AFA6168B74E2261A1B0741D368D2D66F5AA22A0B9EDA7F670CF057032D303D466CD687CDC89BF0E6E5DDE199400DB4E7D4AB056669452D995D8DD5BFBE8F7128954373F9718877DA7599DE0AFF6ABB520C27C4EFEA458ED232D3F24C4839AAF0BA7BFEF50AAAE900A64C9CF8A5CEBF01707282D962FA171248D2CF5CA33233B8547D3A8E869BEAAA7C629184E2CC52948250D486C27C0F914E665E9D8D06B135D3D678385BAA4F0554B874AAD2B92245CCA4AFDA80D1C7AA1442233FBF21332C8A46FEFCBF589BCA0F4BAA4D5D965566BCC69F639D589612C93B39CA0EC2673CFEAD8AF1AAAA10259A9ADBDD053FFE120C493DFF9FD4972DAE07C6EA75BFF1DA4A4B30051CC74AC1BB800B2B30D034B4ABD332E7A80AA80E1EE8040D687BDA0971EE623A6FF63251C667912F605356788B31059712DFECD2A666D69B2D2AF3AE6389BD72E06CFC7587962AAD6802BCA998C1290727A9E2960C608C0E9A1EE967B95EFB9DFD430391216C1F404E0895BD79589861F3B824FA9DC695C511F534A3BEDD69FE0B1FFD51EE19692ED621C5C6F38CE44881BC3306E363E443C146F13D4D1AF87840DEBB6211CE96439F8BC222F59724B115086BFF3BBAD26B18AEF9346E29BFD4C1B622E05E600E4729809E492FAA534A5F317B3A7FC1DE2085C84C59388FAF211FB7FC8593B446AF4B63916C86B2A9DE768BF61D66EE1CECD38BE03720F7A2937BAFFF8038910C248D325073CFAC939FDF750317DE1FBEC467D08973FABEC13432AD104E1E588A434ED028A2F301EC9B98EFB84740B68AD9FEF4DDB7A1169F5A96C3FD32EB2006A62EF17CEF3806A39140CD5073A6E046DA695E4F43947182327965F9752C64E9D400BB556C2DD51FE2A9941FFED1C2FE09E0AF9A4D08C642F9C07E1C3290B2A964E6A5BFBC57DD17DE791890AB3D2AEDDA5AE9103F2C1DB42C069893A6C31F0A44812EB038060994732B24010735A44F6756D5C26BCF0BBCD7D2CD30B6AD4EBE4AD895425E4FB3315BEA6E2A5443A083B4EC329D9EAB7B4E5B768EA4B1F96983772097BE3F07125F7E5E17BD5C1FEFF382FA7B9B0B46073D4F6665C66B5047D6A14598F301B6A7E97363ECBB7CDE475BB63345631533625ED6E1C31222D9A53F0E3789B23C32C98B35CAA4F4C66C0DC234DFBDC9B13E62E040FC34A385D3A6E168B7BC85A1F6D3F7CDA424750AF8261D8024BC80057AA353E9112BF6AD2151D7A6D811C66C67F51A38B8E2EF94ED05EFF8A627F8F4947E30E0D19577FF24B2CB8D87BFCCC85B1F91277DF1E391ED326A779D3136C41C839FD2276760A7B4F21F4026AADC3430614F792804C8C32AF13165D47FEF1D6AA91940D3759360CBA00608A4B24045FB082AB4FFE58DDE5263320F58FFF4C5A60CCF5DD51CC3DCE518DD210DB149C7CB9524FBB56170E9ADEF02464A57D0CC0A750899BC2F6DAB63CD24527A0A6581D9F37822780D96A501A3D57BE4BE182B460E8A72F356B76A6157DFE1898994D9B67975E893E12F61E935E00406AC83E49259C93FC58CCE729816CB5CAC247DDC93659FDCEEB82C0AB7D797064D6F9D163246EDE55019B618FF26C3F04B443A8E155830744340826B71B9DE34E73FE10D63038E995E273148590FBB65F18CAB4A1A3A66A0500477DCEE2E19700ACFF7ECBBD5285BAA56335DCACBC34A4E0C4056032303B61D3F78E712948EA8D08BF2735D53E54B888E4F1B7FB089DA26F38BC76823F5B4A0F22541EBC87444676534794CEAB380B1E461C5432A2BAE797DBC572D71E28C60A1822C1F77E5DFCAD6E0AF9ECD6C57341C2275C644BCFF020E44A3F8143BCBA69F748308BAE99AE06106D90DE65FFC15685F8CF655D13210AEC71AED98317186244404D4812EB1E27A5D417CE6D9C2BC0DE6516B649A4DC292CA2AB1D782FF9AD07EFF1919E9BA90194E24A69649F0DFD0046DD80C7C3AAF2173FEC7D13F2F47F4C17029888C89059BA341784108F18DB3ECC698A6A7443C25C291BF7DC9D4E11B3D14C007CA68E74F04288B9D00DA52EC3A8AB34069D52B1731ACC17C5615AD01DD26C08A41B8BE616F84933ACB17AF6F492E24663E0422B21DD2A015EAB8611759046C749095EFA75F3205EB2BA1A79554E8CF3E58A17E853350C650C18287C6E4392ACEE9A1C8FB7FD939742C67E1B2EDE3B4418CD44C3FC0CA87635FF92F1140B7BDB463DFD3E08A242B2514C243FB07DE84118867164EFA5E0A3C3356C5A1D660406E561024F5810B772FE3752BCF3F6BA62E4046DAA15F664B7D8863E359EE76BCD65DCDDFD47AA3C9EA9F4DDBAAEDDFB9AD52B22BD1A91B9D066CB8C6FE9767F68BA44B66A84663444C64040C02DD6D3D48852ED1BB7D0B4099778C85CDFF494D78EEF9EC6AAAAB398E3805018CFA9A68FC5D695906F9D04579AF308715A87199138664F32C8B2549888A55E58F59C374DC6642654E629C8C44E2834FBF5A82D9A43BF127DFEFB839DEAEA332CA6D50B5A6E3B5AE6BCCD2299ED9F7869EFC526F59DABA970CB94B8CBACF31A8EBD8AB1BE56B974EC0DED1BE9967C8ACC7E0441C6CD4FEA8E1DE959842EF91A19C55CCA6ADEB88B59E24FE4A96A8CFF56BED29ABCFED7027D94228D330E2F4E2E31A0B0D6463F63CBBB0C3FC8C66A1DE3D96F5C361ADF4BFC4169E55D95F770A26D72A2F390B82CAF5BECEBA08708A3D6B29881D3496A07180796B05E1C89F8BF758BD445EA2217996A4F598030F2E7121F6A610D640FC7E512A28BF6C39F3B7F64103E2A76CFFBC91DEBC2DD56E244F71424AFA2E751FB514D0FEFBBF1F53606B8481ECD5FA685C54A5D58F281ACE8DFD6D48A545300D111C681DF8126C4B3E39017BB643C87DD94CA2BB185BCD37C128178A0F79A52070105EA9F2C66500DD9691644C9687E096E18CF971C73371CD3FA09466CF2D7B195E84B2DA1F5CC19C957F62671C7313D8B9CB50AE03AEE952DBF1AFC9DDFC00BE05426B4280C0E01296A4C3B457A2A0E5005D5FE3AD3C547FC6E2627C754B79F4601DE1B6FC0D6DB7692A3089B2D280A18D8354E4A59B4F7FCEBC86BCD866CDB15348C81131BDAE14851CB30670CC5682A54583836894DF4F9250D68B2655D7841443F41E61DB63DD51641589F8B9FC97AFAC6B628B895011B8D2DD6CD203D4094F98FDC91E28AEAEF8F7D549E21A4313141CC867DD5980ED1D9B5976276AD0A5D2E23697DC5DFF896EC8C1916D52E346922894A15F60EA95A74CA355A6197A5A51C16D88F950E8E9EE18DD301AAA69044E56DCC291482EA4A2A264401C92F0C46763A0BE692D47598441E7011C41A69566CD1C9B6E717BCB2A266AC3EC9DFF61D53D182CF9605E279FBA832F00F18F5E9B669ADC7CE66F042F7A5179B5D90F98E081FBADA15B871D8EEAC0EAB134DD682DCBC9FA75E7CE7E75A8F7613805064BA22FE6411CFF2DF507C214A96A8F41B387AE7E4D6EDC2658A029D0F7EE55790757D22553321F84133C40CC61F1370DCFEA642301B1B11DD23639DC739ACEAB464EF74A77F19581D79F4196DCCD67FD88107643EC1A422244B1F2D267E4CB947879E3FDCE4F756CB95EA4C2F9F4541B4ACFE9CA666C46C7A1ED202D67D3A8132670FC6F33F0EFF343B69F77A375A6AB5A041849901838D0A12D47F8BCF5CC5768C0AB33A11ABAA4E15A612318059A253A0AB65B55F56030748279CB1E58E41768AA815396C31F0A44812EB03806099406AB2B38CEDA174CA001B312141BA6CC5B99C850C4A7B8589BC3CA66DA2890FB3B6009E065B8E2B2C8E7CE69BB3A3969316236284A571A5A3063CAA9DD92C9048EBA6ED416E21C3FCBDFC242BA22DE7F3485B361FF22160C630FD9EEA082A9C50A057776D363F68E42CE70C17651468DCAAA10FEEA3CC3D11A56D1CB957F27AE487F8CE703C59DBEAB698898B8C456B760EC883DC7C18994FF414A4D11857EAB69FE32FC26495226B41D33C251E066BD0B3827028E313B71DE5C9A696A7DC3322D577844C897A00ABA5D097A4383A4ECBB70A98762196BBDFEAF2FE737C3854A718989D91A1F38A1B754887DBF238138F454B859C373054F3C9BFC9D6215BB7441CF6BC41F06633E65129FE4840CEF1E22E8D5698006601802F57A56B28C802BCD95906C31E33AC2EEC791A99CB15F0F34917E9ECD497A5D340C6361818647968ED4CF408AD2EAB027B77952A40A24492F894B8D5CB7ED892F1A55E037E4750E6F3CAB9CE75DE3AC4BD620C56973E51B882C13785523B2218DF0980B94963A642B2DA264DF7A88FC29DC6E8BF9A9AA611233047A1604CF82916F0AB41B429CBF347632CFE037499C0C8FCEE514F8FC3215637FEA7A304C5923205BD49CD627871599A7A59226CBC34EC86D2CA91E32214DD857E80C15E7E979C7F7D24D1208F5CEED47A6051FB8E86535BD1D665851AD5896ACA01B2989993D432EE93A75860E50E317AD6CEB362007A28C7FD516B1A9BE2D0D207C80CFE3A4FAF7A37864A8B18325C60CB9284367B49478A0E8E84A8030063C3D390A2674066DBAD1A9C3C1FFEF085A0B7695313CE4D37F797DD4B69DB1E8B90C4BBE8F5F6F52D4B681630367BE8E18BCB399923CAAD1FA80328613FAD2497A2B342229925F735E97C672C57F9804BD0F196903AC1FFD3D1EF05061D80B5E3C87AC8A76D16591A34572D6AD0F142653DA546D27C470377E95C9B1336AE15C047D4EEBFFFE810F076D00710C302B4E5E8AD40D6C7274E2166D5DDD4EAE075395D7BE3CB0DFED4D966B2FEE7FD2BFEF596C524B327969A71459F9B49AEB06A76286ADEC5FA4A4247E469A15621739B6E1DB9F51288987DC6FA1E7BF1B2E2DF13C4B64C9BFD510200C2E03FA0564B2516C778BE25810FE125B5C289AA53571EA1D80C45215D7FF0C6D7FB2EAF256CEAEC65106F666E66BF183D51EEB94537D9CEF904EDEC7EBFB0E60995CF6457CF0B175EF7BFF995DC20E067EE6B3F7DFE0ABCEA24D63DBB313104F11DDDF679DEDA691E3000CE7536EC0A0C8C5B10F3CFEE4D4DF2FA84E467A96631F4B5F42E390237602970EAD39CBE31E0D3174F329B5C7F88C7B095F3A1143705EC32268B1340004C5ADD838B2EFB86A7EB3DE2211359B81B04336B2CDD973CDA236A2BD8262CDD395B29044005DCE984E48285FAC7710AD0368D5487B702F0DD449CD44F2FB95B0ADFEECAF8FEDC8D7527BB848811AAF0B2D2BFFB680F4170B6FAA2C9D39B1F85B90C026CCE185EAC38A3B324F05BD01D36D82EEF86CA96462CC10A99281E69BB920BD5657F0064D24DDE0E0560100742C0C991B278960B327E651C06AAC2897A2E839E3A2225EE93EE431B17456871FFD26EDA54268F065ECEC16354EDF507DA52B723DD472A01FE93EA14C8ED5E9949CD49DD86CCBB6CC0EA6AD5BE04886842418EA1872BC169F92A89067B9CFAD5383AA6BCFBFEBD5D333310559716D021E1886079C5A53FB3BDB005D9CD75DDCF1FFA488E0908556D21F5CC271A85062ED52688BB3F89B77292DB0524E346ABD7077C364EB8747A414FA6925E4D94037E5C38AF1BE2BF9206DB8F5959CDBAE39EE7AE99775B1B4C7A6B3864662B37AB1D19D5B73F66C02294CDD1896E3E2D879930DC632BBF73D29C7628D65628FF82CE9E7C4BD54652D27D19F27B189ACCFA1C6C760DBEFBF5A18E58BFAD141C0F5FF73B3F4E335518F14A80C4D80AD24605A9B7F81B65901957507D4B848AFF203EC104AB6EF99A36D492D8C2434A8886D583181CFE693F96F674A02769B5215CC7197DD01B0793031FC9D38B8E7970871E4B60DF7065430E43D16E0D780DA825AC347EE138DC959E22DE5ACF58BB905440E0ADF465AA599C0B0869BBBBD14E5962EC1FF295C9CD39D97DF78A991A8AA43640ABAF6B76B9DDD0AEA1C81BC3D6DE2A45C15172FF2CB08E341A3E071D40B2DCFEF2FF7909D06D055FA464D3C8B1E6588EA9027AE9249B2FC9743322506B1BBE7BC8CB78B21AD4CCBBBA2695E1AB97260C39A7CF8F690145893081D52D654064221AF95892D0B01D38FEB55D42221B02B0A53B9CC53B296B5303BBD0B9E135B8FC0063D502AEF1F6F530E03439E9ACB91AB3194C4AC87C2C0F7D5C198848DDC27EABB5325CD9EDFD49E8901092FF6B232F3CE2B321CD7E144D9CB0089C91D6A134411D948AA2F90ED6A018E7D8A0702C0CBE5EDF6BD0A5B47D7929F5C9317680A2E1CA55DD2D1D183F91D837DAC925B9D4D1C66447665B8BD5ED51662BDADADD4ECD2B5C31999D339DA261515C42A96ABE076A85333B0075D3C499D97A27DD3DCAB49534A03AD049F7039D071EA7F9995A542BD9EF2A4589C683ED0CDAFDF0C64F9446C3513B7F655627CEE1E7B75A2C339CB5DA9DD26CE8F4217C2A536AA14718069D1C60104698E9BC23BDF0D5ADCC75BF0DB3805BA46654254E99A76DD947A98F761060BFE2A5F34F7A0827EBD66B1120B1D67915328FE78AB435A9CF422E95B88197DC25052A260F8CA2DC5D084D3DBC8BA0C5E9D53E4A56836DE3B7D4A5D0A769CC71EA0177C975A62E6C49490E90BA859E9AE076DBA6C5ABD15B737E19B9401ED46E667D76B9D730BEA7D5F17A9B86339482AA1837858F3163558175E9E2FD7CE63CC0D9D48D126A31ADA2A82F662EEDE40AF2430050A82D195B8564D3C1894BCC736F9DA93689662029A5214F69369DF50B83EF13A7A0CFBDBC1813A75A38CE7DBED617AC16CC1AC1B836A8A14A02DB83C817857591EA766742638695F7C18BE02D021A06A8A321AD0035525DA1476B3BADCB1A8100BBF640BF5B7115D27A90CD4888BBAB48D97B363BBC1AD880211B19E9C3A14DF05EF0C00B32B62CB56B7CE6D60759FDB2E4450E97129D2F6E163DF5A08C53C61C15959D35E2DD333C60AB4F408516C3E0CD28E05BA2A9EDCF86E7F51CD9AF041A61523AE5AF8DDD8B9929B09BC7A1F61AA44D3FC63AEF3D63DAD0CC04B7537308E13B864D9C29E6C073FF01918724AFD21BDC16BF008AC34F10176CA86A15862CE6E436885EA15AE93148489255E296723897FA85B455A66FA7E83ED0DB8060221145CD4C0386967FC048EB5B179D502BFEB4FBE8DE802C938679871A4B2C27DAB6C946B86773E2B8D6052D3439E3207CCF81F77D77B25CFAEFA84A42CE8DD5566F2B3476FB19B8FF9A07503E79F773EC435F824A9536CE39E3C64DEAECF1A39CE021EB910DFDA809FBD4E5F54F703D6F45EF56982C1B94E34566B896DE789038487F0149A9768E0B8565CB20350399D1BA23E29529DF0A85F2FAB703CE8FE088F8F43837E2733F56F8BAF34A623A2408B696D60394A2AA159996EB862D0D4B56290F62523084CAD9BBD40EB8E8ACF6678FB4A67BF86B1554543091BB77A1670EACE82CE2DC04185F409F3066685C9EBB7A686FBFCAABEBFDBD63C5B7CE0F6020644B8DE6CC29B3E1D03473D9AC0529EA0B74586B79206DF68A355894698F2436C6ECB93804A0B2581EBF19B12022B9027E39500038B94BEA3BB0ED5B75F0258F430B7CA987EA3F8141B4B1BD440303469C6E4341C02398EE194108CDBDE8ACF418E93AEE00F73898AB8E19E4FA6BB4B0D0626C11569DC63F28EBD029440146C5110FCDC10F39DBAA5393AAC4E4328519E6369D13F15D202F04D82188FD67AFB0615D69842BF6ECEC0C7EFC3E51CE25E246E53CF2B0186A07BADEA4CA1955780EEED42F1CB2E5DFE3C8095023935A2414A5658D69D568CEE06E5280B7D7CD9B536DB3187A6CFD88ECD5E8B49648DF3DE9D679A0F90D15817A5A1DF7A6E872292AE29B467FD941F8849055BB33A04E10BA1A2FC91406A4BF8056EEC88CCB35B0DA7DEAB4EB0338217859FD4C0C41E5D98F7CA32BEAF079861C79965D025C329EA612D11228162DFD9A793CF375F25E9332071054B2B4B6AD53D22C6700253DA7E9F570C27E8F8F94BD6CC7C77F7594C372690378AB65FD1B4591B5907119EE05AE3B8187B41CB3949020117B6E171D280D5AB99D0F7A16DB861477DA8EE6A808AAA203881E040E4DF71BE670A3739C05B36A58F4656AACF832F48992A9C01E6346853242409B9174590BFCFBE2B5325714F1825D10B87D1E35BCF96FC09389EB7A187A1E31FFDE900DB29539B8CD47BE83EE62489ACD67DF92C157223DD50CBF9A3BEB712ABA474AF722532B6208710289B24FE5DAAA1B81403D2AFE1DB92FE0E1D2864543127C6661054591D92EB39C989358C7FEC4EB8215E54ED1B3F60F0751AB0273EA55AAA59FC9FDA5965745C11C35C572242634D076E3A6C4496F50DC7450A9897B071EAC7744A48AB4EA00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cleartomark%%EndFont %%BeginFont: CMBX10%!PS-AdobeFont-1.1: CMBX10 1.00B%%CreationDate: 1992 Feb 19 19:54:06% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.11 dict begin/FontInfo 7 dict dup begin/version (1.00B) readonly def/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def/FullName (CMBX10) readonly def/FamilyName (Computer Modern) readonly def/Weight (Bold) readonly def/ItalicAngle 0 def/isFixedPitch false defend readonly def/FontName /CMBX10 def/PaintType 0 def/FontType 1 def/FontMatrix [0.001 0 0 0.001 0 0] readonly def/Encoding 256 array0 1 255 {1 index exch /.notdef put} fordup 49 /one putdup 50 /two putdup 51 /three putdup 58 /colon putreadonly def/FontBBox{-301 -250 1164 946}readonly defcurrentdict endcurrentfile eexecD9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF81719098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014FD2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B82BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F827DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC46437877B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB182DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73FDE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA687AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C49F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C40E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C94046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA620BC7CF4BB30651F2027DB398272413AFDA65FE59ED465CAE8D36A65A81DE83008906B678D18BF9B3F3E0842FDBE2037AD9069C126F91D6CC9CB55226DF4F12EE6C72352175A808738285C88FD658EE2C3112138AC08A63016F79C7D0E47D89F6D60C6E2390A7F0A811665BFBF2F0502E1BC101E45D527F40D25740040422AE55CD0228B7C4A97750300F7E066689D84C1E0F10AE5994B981AE7B6F030E18F7DDF15B2A9F922A4995E083622B36DEFFE1A6AD802B4A9CEB8ADF3FEEB11F09918F66D3E5B19628F781BC63939AEFC3033B88B33AB67C5499D2A60B5321A847801D8EAFF2CB0EA7EF01BBE4523C5FD5ABF3D87C6072F77720ACE22C9983B434CD778C286374763E1238E9B8032D1946A359281C29D5AC0909EBB172D9C755BEE4A53629ADCFBAAEDCE8F59D9ACB442FE886620A19360D45C8AFCE8DD2FAF422951065DA62AA45B8EC2384E93C8865EF60F3A340C830C7459FB582F9C25E99C29089830DEC64EE8E2D3041ED57E373F06293613D2E0AD8A8BF3AFA8081B6147032CB01ECC483B5AE324BAB2C525DE0B67C5838613F8ABB77A42C291940C0AD8993EEB21BB783C2D7657385F3C913B8E000856DE1E68ED0368B1E6E200E52D2D784654EF7F480FECAA82126CFBD24AE496463DACF869D8A8DF83FD9F93B1B63E159EF9085AA040378EF30013CCD562CC83D957A38F34E51288033B0A7526F003A5F975C142A19EC323099BAF186BA5845540274978237056F91FC7C2900951953F5174967EBFA2B80576F04420599F65EE5E8DA42765A69D4D2C3F5E45AF23CCB0E34250DA05BF0ADB6F2EA48073FBD1CF7A936C89B8166C2F7DA9A17AFE0C7BC4C7A0BF2E5348D1D28E271B3A22B2D09809EF7507F1DFD6F3DA7002125321EBDC69E42A6BD40FF55B5802AB86BAD041565D8AF3B12FFA0B0BB83EF760FE3618C915F0CCF988860867364DB36F97C5551CBD90437B78F6F63F47F086ACD0B71F420B929B2209DD1575250AB07D567DDF2FEF8D297D4676D6E6CB0A85CB32207A01DFFED949371C38A09AE4DEB4BD9628ED2C399D1A3F7B66F1A20C65FDC6B379E78C36211166463B4C2FD8C6FC15DF39B5FB8D90D2B966B477654976BC897B7BAE7003CFDADDA618F8E9510BD3ABA47EEDB34FC8FE1D45868292F70B3CA00A3A6E7023935C032610EA8336C6C89CAC2EAA892FF12AD479BAD890E031DBD6878FBB337D63038CE6096B776E6EBCF065533F57432311F0554F330E8EDD46F004D4A808A3A703F1BC81FC1FCD91BA5CF383D84ED74C6E87660CA2F755C3305EC9F4D71997EB88E8461FC7FFE3BC272F231C0698B0B9DEB434F202CCE50D39317A651F8FBD1E666015257453BF8ECD0A5DCC638D94803228D0A88E8844092C703FD2376D480ABA9DAC652F4A67EAA1F54CBE69563D4B047C84C4D91237B761703C05F3984A87C4034BF36EC2B6CD643DA6260B93D5F2CD15E334BD583B0C73EFE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cleartomark%%EndFont %%BeginFont: CMMIB7%!PS-AdobeFont-1.1: CMMIB7 001.100%%CreationDate: 1996 Jul 27 07:35:50% Computer Modern fonts were designed by Donald E. Knuth.% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.11 dict begin/FontInfo 7 dict dup begin/version (001.100) readonly def/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def/FullName (CMMIB7) readonly def/FamilyName (Computer Modern) readonly def/Weight (Bold) readonly def/ItalicAngle -14.035 def/isFixedPitch false defend readonly def/FontName /CMMIB7 def/PaintType 0 def/FontType 1 def/FontMatrix [0.001 0 0 0.001 0 0] readonly def/Encoding 256 array0 1 255 {1 index exch /.notdef put} fordup 65 /A putdup 76 /L putdup 77 /M putreadonly def/FontBBox{0 -250 1294 750}readonly defcurrentdict endcurrentfile eexecD9D66F633B846A97B686A97E45A3D0AA0525392EECAC163E584A9104D99AD0BC1B1844A0E222653FA481B8809B26A46F4C483A5D7E95816EA6582584156CFEDEB994ADCFF4645140E3617E4D7E1B0E4541CB9F562E55829B4DD880AABE2229E94A9FA259A734D29BBA91BA1E2055CBEA4339BCBFF98D32CEFF11F296225CAABADCA10577A5D431B714726C1278D8101ABD1BD8D0BD0174FFF9148F8C61C241D92AD360A28616CB4A0670BAB68BB2A3981BBAA823C8858EF31989BDBABDF4098AE4EF75BB1764F1578F9CFAAF2948789888274ABDFD1043B1979B55446F38D4A9BEE0FA78F366D6A169A173AA6011E82B445A8797E37C48107C750383AAB274E48EA55C83AFBD4D7CA454D8D0B21B556D7ACB02B73A82444FA1B1D6F5BD26D69DE9E4C809F92B4A969F8953AE78FFDBF365F24DE9C46852EF06999ACF1AF23DCAC20F84FEEB9BFC15D6796CC805729E436B6D4FFAE09F971F0B863021CD0AA3DD648543DB7B2919D93A47C7BE06FA63199D2697B931F831AB560D301B759E72C70B9B20F9955B9D4EB96888A7F16B7B75E10C7F9B415D1443A152450E846697998BFC554C45650CDE076205E109A1E3D453664BA189E4E782FC320A7D64C140B51A9805779CF1E5E3A2472704B86C7063EA80DEB00782DF225A155AA968A78D8E7A7D6349517378B46444669ACF48916FB453EA83799897FF177D6479B1C4D74EDDC0E907586009102FDEFD1CFAEE2798FBA979DF5C292454A6B5423F01C6923B22A74651C32CBA3434D016D9659A5DEE6CB6D7AAEC53858197D177D3E2CE658C0C09E5DA54E975FEF16EBB05EF82698407D3AE2C29A773FE41B535035FAF1882964518468C3D0C7FA4618555F52670EF9E09C975A2AAEA4A3FF91290CD7050706C97C740FD7F1FC881D1190D4346DFBF5591DD5CF6B37DF81109B347FC9751D54E02ACE998F1498CC1F441D3667571369CCBBE584F28D5903482AD0A907FE9D3EBEF19D6284A5D738000A435B451557F3E22C445D7F68CC48AF26AC804526A84B6EAB895E37D19D313ED0C24D579BAE9FAD8740A3EA351CAA601BA8BDA0E31DE743A40EDB6BD78D4568344EAE32B6E8D2193932FBE899CF2272E7D0DB348D5B4B38B945D8B2A9420802B29FB1613A051DB85694F166BFCA0F7EBBEFC2C3535F55D47C07151912D4CC1CAC7B4D26621D1A65A0CAED0B640F383E553D08212AF0869E54ABFC41D7F2A3123F26906D56C5ADF9E6050B67838FC541325A5510BDEDD69A55124173C79C2958C47B73CCED14FAA95182D0AC72D85010B84A7D00BC39502E499B409D1DB4AA446AE2FF5C9B34A3A7CFAE05BECE014D8081C2A3820DE17E90CC7E516C39B9CBB95C40BEC978842330489951B3018C548F3191BFF863FCD39C180C807CA76BE4CD93182895BDC3FE91C0593ED0450DE9D34EAA6CDDA81721C4CE43628FF356EA55D52EF82CE7131A037B3DC96069A4CE68501BDC258862F6783B1E00B1D00C17605B38BE22CB00F20E320C488FFA55FD813561C67A83BF4E7D5E753E08C33D91C8F28EE7DD0DE4F9EA4B996C244FEF893F75788445367CD70AF0FAC411CE2E4A107811472E355548C74D671BF98271BF5250D7B94F696D67E1BBAE87BFC5BEB6E60C48DE761A2245B83908B28F6F1A3900A70EEF889CCC8378910454DA1254C281AE5779D0F1CBA83C2697C3B4AD24FE25062179A7F224AF5AAD3DC4D44B2A03F4B40A5D035B2DEA9992ADF7237803E0AB27C01A19EF0C945EDB80C10EC079CFA77A36FC975D0A7CBDE5EB6E52E037254A7D808DBCD2158A0A8E4628BA00FF2D60E380BEAE2DE9940C8BEEC120CE8883FC9E1063189E723837893BE52D9881AD7FE6FD6F5B16CC201A6C774E3E41A25BDF0F37BDBAD9B2E66E474190CC012A135808B1B876FB51B57919483B8D54604F6087FB7E641998089B365F5C60A1720FB1B7496BF0E8263E276D0EC67F8F544AC910AC880FD92A7339738822C4BEABAB7F791B9448E48620188377DC9A9A05F6D5606F00F20C7C8DD544200F9CF767D510A7E47E3E16DCC0E6D67828F3D3BF0D37B942CB316138370C0273C96F559F94513B68544FEAA39B493486AC21EE1AB8C8D23F847FAB67F7061F0AF6A96BC51B1F78D763863B0D59552085C1F32BB99A815404DD7453F50125ACC4FDCD24A0C1D9C7E76D7DAABB45E460BFAC605A9C8A1004C12E15C7F496EC87666A13F387C930FC9A7F5E346BF6D3CBD14879D4BEC42B4581F252EEE2CA45D44B1C081A476CB66FDF1FBCFC100F6E8461AAFA83264558C2B93E21978345D1F4688178E4CF09E8445C1BBF90305CCBA6F05F8F1A1997745838CEEDCB39E6A4CF2CB9199DFE22020A80F1758358FD10E385A4BC15E4CCCAD426FB741C6EF0E4609280DF3655957F1DE2781176135F335A6859A1C0DF834DEF2396653AED247238360D0548E35A893E63DBB7A409072C5122279E303EA954D9E8B29245EE2C9FE931930EDD500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cleartomark%%EndFont %%BeginFont: CMBSY7%!PS-AdobeFont-1.1: CMBSY7 001.000%%CreationDate: 1992 Oct 22 12:18:11% Computer Modern fonts were designed by Donald E. Knuth.% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.11 dict begin/FontInfo 7 dict dup begin/version (001.000) readonly def/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def/FullName (CMBSY7) readonly def/FamilyName (Computer Modern) readonly def/Weight (Bold) readonly def/ItalicAngle -14.035 def/isFixedPitch false defend readonly def/FontName /CMBSY7 def/PaintType 0 def/FontType 1 def/FontMatrix [0.001 0 0 0.001 0 0] readonly def/Encoding 256 array0 1 255 {1 index exch /.notdef put} fordup 48 /prime putreadonly def/FontBBox{0 -927 1542 750}readonly defcurrentdict endcurrentfile eexecD9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF81719098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014FD2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B82BDBF16FBC7512FAA308A093FE5F086C44216EBE57F4BA37B479BF1E5A5139D891F3E6DDA157B25D359C5E7FE4CFB264DF1707BB6497D3E074CFF95D9FD269B50B1566D1161680C46D1548BBF384EF8653AF29FD474EA2336C876979AC00AE18DC87DC0DDD3164B96FC6C3ED826EBAAED383BB3EC5044BA84A0426B87ED04C9F4B3EDFC734C241D9B3D2321619F870FE68BB4BA7C060DBE8FBD12F641E7709F2C430491944B78B1E59580798F1B40CAC4D59DE95941217EF1A861DDB0156D5C3349AAB13FEFF6C646F6401550F5853BC09B267A6C63639228DF55BE60A99E4A5308C616892AA0DC96ADB7CD7AB8AEFA859F69B587B61930596A46A905661E4BADAB5E1CF15C94CF060B7FA600B17162AEC2DEE64A156B3F87248E7A7F88C91548C494273B33483BEDF0BEA4DF6A19941F52AA04717623ACBDE926B4851ED05A028698A1C5AE63A46EF473A4F3DCAF3E73C4FAF0C1077EE7A6504074C0D77947F940B16425B3F5834763732F26D3385774A1CACA70C07F58887A0301D1BE530A7D7AC00A0664617A0CBA9F6281FA4B9168DBA3C1EDCF915778351E6BD8A9CE7E53E56F2FFE0969E1CFFC83F07C01A3873EE1CE4E124565E8F493BE4FAA0A5D099A116CEE4EC6C8CB2E93B42771FFF67680A56501A201E12AFDA8448ABE80BEB9B80428F48753C4EFB174B693C69DB81CEF0A0B75C53A9D5B4C5F26FA58059A3248D4E9D4E9C54AB8F9C21CD66B9B259F9C797559384A653DD43ED4B9C2110BB5BC3A6370921186AEE29EB4E62793ECD96935C3D9D89DC6AAECFB745BABDB570FDE7E6248B6ED9C09EDA896ECFCAEECE8C1E8BE20BDE6F3558EF5A32ED390ABF863A585DF34F2B8B9567778BF51A1BF9C1018AEEF42FF1F9AAB1F9F73627F6C7DE05E3D013C3F77F1E74218778567C6B31B55509F0A8AC4A5E16D58D3EBF83868F522AB82A12EAC68DFD3B94C9627D53C9486D485553956C8536C3D9DE049E7F7347626740D55EB577B16E05D196D0998E5B67B4B9B81E1FF2B305E712D69F086B18DC28A8CCB8960623E3F92E38BEFB2792106762D2BED9A0CE6B135F53A065D5CB717F44CF2E53550965D1030D65AEFA3751857248C75C2FC1D5C7E56EBA689E31140569598E70949173277F021747611768AD734B881EC3DA4102AAB60425C4192F65F7AC85FF3F9DC2E2AD27BED08B2F99A9A18AB0FB072729783C86DA33F7D300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cleartomark%%EndFont %%BeginFont: CMBSY10%!PS-AdobeFont-1.1: CMBSY10 1.00%%CreationDate: 1992 Jul 23 21:21:18% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.11 dict begin/FontInfo 7 dict dup begin/version (1.00) readonly def/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def/FullName (CMBSY10) readonly def/FamilyName (Computer Modern) readonly def/Weight (Bold) readonly def/ItalicAngle -14.035 def/isFixedPitch false defend readonly def/FontName /CMBSY10 def/PaintType 0 def/FontType 1 def/FontMatrix [0.001 0 0 0.001 0 0] readonly def/Encoding 256 array0 1 255 {1 index exch /.notdef put} fordup 0 /minus putdup 1 /periodcentered putdup 18 /reflexsubset putdup 33 /arrowright putdup 41 /arrowdblright putdup 50 /element putdup 54 /negationslash putdup 56 /universal putdup 57 /existential putdup 91 /union putdup 94 /logicaland putdup 96 /turnstileleft putreadonly def/FontBBox{-27 -940 1332 825}readonly defcurrentdict endcurrentfile eexecD9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF81719098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014FD2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B82BDBF16FBC7512FAA308A093FE5CF17EFB0FFE6C69FEBA8389DCC1923D30683DA8CD93F7195D5A07BA2F18CB3FD5FFEDA4D83BF758062134D84AC0100187A6CD1F80F5DC15B47D73F69655445AD218A8AD78C16EF96F385C9E2D46F8A330C7B5A859EB0610C78FC5CE39715A1C5458D30498C0A339504A74C7E8F84B3DEC1516B3ABAA0A06DEDCD5F9FEAA5AC4AE8D5A5BA5EC0B64784454F58049E13467D7058F13A22BDED5F93EDDCAB7A1886A5168D25B120F8BBCC23546BC7398D4E3EC17138921404C390EB84C3CC243C0FF3DEC9EBFFF3DEA73365F1E4BC2F3AB911B2F780946F4F6F49935A54EF955D9894FEB37239C896CF98240162F6A6E9677EA2406BEE1F04463C033047F7F972C560213C7A02BFEE5AE5AE5BF72377CED942A6D8059E59CF03CD6782BD34BC02AA4FD1BA25A5CBE32569D7FED28EFB4C0F5F7C86DADC1A047CB514E19B36A84D4DB390FFE5B841C390666FE27C712E23E22FC84A8670626E8B72700B9EE9F06F2121264C1CF69FEEC3E20897D0D9057032830FEA18A4BA2AD5CE10EE4FED4BB9E2A9C06965779827D7CBA93926793A7161454E3C5AC6A3AAEB75EC64556142508DE6E37B71058F8B97C1A9B4CEBF74FBD2D6D84F5DAA2B04AD30B313070B33789935E83DB470FAB8EC65165679F247964BD0C2078291B6E13C29E8B86429C1B90C396729D6BDE4CCF24BE000390D798DA73BBECAC5C9B1AC19B2C660CF1CDEC05289F6CAEF0E43465E3627DE26670BAA825429B4B8FE57928267D5EBE38C5BF93F90304EB89DE120F81362FB5A3D374AB25B33CD03A8E9E176E41C964625E58A65EA958EF2B089933C06B71E29249A96D5A2395DE687A0C60B837B5657876F66F22AAEA93D794CDEF4A30D0256760A48D0EBAB1348FB7CFEE2B3B2B30ED9C522A9E7646C57DC853E613F80BED5B9EBD808C49AC01105D7DA9C5453FC051CBBEABF1D92997C4765E4FD95ABCE2F458DBF9CE47856B63440D170974C655BB5438F24A27A03CFD825A21D0E6CE6637E72880F59DE4026B82E530F844FB669D6C4CF71D1A01E9F77AB4F6D9D91A9C368EDB1BDC88E7FF2884B38FB4804E9082F6473E2CA00338FCE7452947F59D2924DEAC20D8232E2BD985D0ECC0087A5547AF47A8B7FD39340C6AED1DEFC35404C3B8B2E5FB37BAB42B801F64DC281EFD2242E533A0B57DDFBDAC1964D7BE861907A781BD13ACE47E445E9DA51C1763E3F8C0358440F1CE1758AE7060346837CB850B7875D5999A0B2475D0DF36B37375D3764EEA1EB21F854169BCAD73288C1A2FF5DEF6BF119483B9AC002FCAFEB8B71AA81AE7ED7CD3080254FAFB8C596F3C3B7D4D5DADD892906B738422EC45FBC82E30F534C64A7A7C734D25871CB192DD9FA93E3C7BFBF1620D304F01F1500078B09FB3F3CD6A0D4ECA10AA868F268FDEF08950B2E080149588F736189365ECEBCE88AEF9F668E50D3928D37ED1FBF5D0A76E7A2DDEB7B4CD93B2331A7DE9FE6C033BDFDD924C0A4ED27157DB2D8DBF76320B85B8C9C706BF750C329731EF3D38E9EA45B40374BB3EFE97471444611268E75FEB4FC6ECDE62E7EFCFAB9EDD2145E1AAA443702EC3FBEAE0165D2B1A91DDD73814ACCCE405132F1BD8C513C53C860EDA9D495A18F05E71048CB2E2DC4C292A6B427554613C30E80C3627999EBE12A33444F5FF7282B3BC5ABEDC25205AC2CF1813F4B8381A50250E3BDB5F0DEFC6E34D657D44FD2AC34D9CD2690505E22AFA5D80D69FFA7C5F12C07A9438783A66B04643E40E56CA73F003F90CF66765EDC93EE711A4678252AC79393A167B4EF851D7F508B2FB4788479A3A7401A0FABE7724641005DE03B8D7455F2435D5A260EE8F08553E06B7E72A0F4C5199F2FB91E3C5682F50D28570C154A8764ED7D5A41AAC81E87C3B6A1442BBDB0F814EFA27F4CFF304D684CAAEDBE47FD7C14A85450BD11FD40173C7BF5DF4F68F887B8588A059DF01F17B678A8EA1FBE2D52087CD47E4F5EBAD36AF5EEFB197D538B5C3E4411AA68D22EEA68036874E649FCDB74C1E791762E7696A6362BA24ECF245E139451199B10DDB20E801FC9F758FF2F11F4D298784EE4E0F05799285812339DDACDF0B441D33A96389AB894B00FA0022FA80188C24721FE58A3964002EC6F14CD1ECA0B61CD0378782C54B166E86005B4AC4C4A143C982248BB3C1100FDA5A369F28B2C1D14A3FB38DBB8A0774A62A75B7AF53D2438B03F95018DC200A713ACCEE385478CFDE24C5BA1B30F2B4F63C725CD861A5D6E445BE07DF735119635B7D9B21E40878549D0D90141490700235F8964437088F190292CDBB9FDB9D4A532DB1856D20A28BF9AC3C9AADE903F8FAE07DEAE2A4ED5CA3B08F509384E9074E48DA3D606AD4DA467BF20C61C7918FB0BEB865DEC70466B9CB2AC23D9D32C1FC89B70E18B78F8C30CDE800389FC07035629E15419DB6D4D940931C311C7B6069AFBE6549D9C230B71A6EF3B9A3881106FC52A0A3057BA67AC97DD12EFCFBBD53676658772F1BF969B2B3F41069B9DB252D5B3435E41DF666F011C292B770D2065792CA2CD32C628AAA9778A7F50298C0311FC5226C282D1C0E733F7AE5E97115DF178DC1D8830D95C5E528167A6CFC5AE10EE7494957518AD07534FA7B97629530D36FADABA2237E3DAE66C87BACCE232914C6450C0F7E1232E498754D75FB434A6922B5D0529C8135F548DEFBB1AD016FA75A3ADA865AD0D03B1D1E89CBA1373B66B8313FDC3FC7E5ACB4B833A77469030D1BA5BA8799D76FC3DFA5B6456E571F562EA7CCCCF21436D8FDBB5469CE7689B4865FF38669F2056A341D1728DF6214632E0BA7960EB9EC1E3D9F1C1FBF6F3B0E50C6B27D711D85C83F5DF53B0CD8472F269FA5B5A33A2E6640816BAD32F492F0EB55777F5B93E539099816A87F68723005475C19D694D6CF61E983E204CF63723E76B5F194443F0FB98F6B832A798148E344D3761B5A7186C522E4493017ADFBB2BC6EAF324369DB6D68702890FFCE75AFD115B1ADC7897F267081EC05510F9472C67B54D346FD9DD447B3C3F380359275234BDF81BF15096A6640A930214DB5EFE192AF28AAF51AD904F7359918EB2842A211C2BB4D74B84298BA00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cleartomark%%EndFont %%BeginFont: CMBXTI10%!PS-AdobeFont-1.1: CMBXTI10 1.0%%CreationDate: 1991 Aug 18 17:46:30% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.11 dict begin/FontInfo 7 dict dup begin/version (1.0) readonly def/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def/FullName (CMBXTI10) readonly def/FamilyName (Computer Modern) readonly def/Weight (Bold) readonly def/ItalicAngle -14.04 def/isFixedPitch false defend readonly def/FontName /CMBXTI10 def/PaintType 0 def/FontType 1 def/FontMatrix [0.001 0 0 0.001 0 0] readonly def/Encoding 256 array0 1 255 {1 index exch /.notdef put} fordup 102 /f putdup 104 /h putdup 114 /r putreadonly def/FontBBox{-29 -250 1274 754}readonly defcurrentdict endcurrentfile eexecD9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FED919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DFE27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB33BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66EBB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B6322009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB464C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5BFD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B200382244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404EDE6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5178DAA7A3A1177EFE49258513602C658739CB3F9AEEC8B012E7278509623311D4DEBB0B74FCB8AFB65E62E6572F7E35F8D0FB353429084C4BC95E041B8990496B58CF3FAB18D2B8BF1EF0F58F5A325A1123CFC5317122020C10DDE14F6172B8AADC7B1866FE5B04426E5544837FE82265804EB7B99E045A3F19C41547158E1C4B2F7D79945886DCFBEBEC800778D495B5D7D683B1659F30258173CBB3494709DA6664A9F735DA9E793AA0020E79E3D9391249BF572DF66C25988F18325A1D01029722F619006EBED250E27C7A9CC2CDA65FAA75659ECB114FAB867BF5ED74AEFEF9B546FC6A48D8A34CBF16614582C950AAC3FBA4713F0AD90CE18CAA1A0E134A6C953722CF8CF799037BCBE07590314C582955DA173267F66DBE5EB06427BCA8AA0B36D266A11F3FA56C096AA272BC46FCB28A48764170FE204A7DC7437ADE416CF1A1AA1159193B8FCEADA49B6D4D69FAE987F594ACD7144CD3B58104AAD9AEEDED6A12FDDA9A320D196F96B12EDAA8D60BF2A8C394415C82DCEC82C61DE57893B191CE4AB7BC417F38B5B6AC56DB3E257B696AE3AA3BC816514EE1514619685F2FE9111A773F09F97C5F616E7619DB7A2B1054EB33233C14C079A303C104D7910C189C206E42EFF33495BCDEAF0951A217B976B4CF17D301DC0A78D77C05B3F91E78CE455C622575D976F3DA4513C3DE9BD821868FC7B81A32EA88361A93082249A9B759A86355E42CAF1759494C6854C8A763E9A7FC9CCF7BD4670B7F94783841F98E3C1F21D4D18C87032AAC0207B7E0BA38F1DD5068B8ECCBCE4B48D6197B56B9CD749DC26A08F83060AFBA87FEBEDB0D27DC1E16CDB4B0231B33AD07008C45AB4A9F168CB5A8CBF4ED9FA74C57518895F804983DEA7CC5B4376D08BC5F84B657EA524A2C7A8108D1A992618910316A3E9FEA9BDB7260E4F80E342E400BB4A1DBDC9AD9C66813DBA3563177E9FA94F32171A4310D8321A94A5B3B3C4DE6FEF981F705E20BF0F47B46AABDA5E4A3A001700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cleartomark%%EndFont %%BeginFont: CMBX12%!PS-AdobeFont-1.1: CMBX12 1.0%%CreationDate: 1991 Aug 20 16:34:54% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.11 dict begin/FontInfo 7 dict dup begin/version (1.0) readonly def/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def/FullName (CMBX12) readonly def/FamilyName (Computer Modern) readonly def/Weight (Bold) readonly def/ItalicAngle 0 def/isFixedPitch false defend readonly def/FontName /CMBX12 def/PaintType 0 def/FontType 1 def/FontMatrix [0.001 0 0 0.001 0 0] readonly def/Encoding 256 array0 1 255 {1 index exch /.notdef put} fordup 0 /Gamma putdup 33 /exclam putdup 35 /numbersign putdup 40 /parenleft putdup 41 /parenright putdup 58 /colon putdup 61 /equal putdup 91 /bracketleft putdup 93 /bracketright putdup 94 /circumflex putreadonly def/FontBBox{-53 -251 1139 750}readonly defcurrentdict endcurrentfile eexecD9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF81719098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014FD2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B82BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF267FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316DF957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E2677C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5EC55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E830855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19CE936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF6451297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F610B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9DB4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2BF8E09B5C68BEBF37982B2EC24C4A8F927B724B079B1CA610DFF9EB446FE8B807F7A78A5E4310DAD4D2C7ACFCEFA8344D376D322BD9595E97DE48274A1A075AF646FD615B1CE093FAE402576911661819124E23F28B137CE7CF9B94BC123400F7ACFDFDD5FCF83524A5D0FC08EE334416A79EBA0E5BB9D6756494955E344D0AD009C2306A2E9AAE62742D34544BC2033AB3B0F8EFE775BFDB2958110D32CF05F065CAEDF953684F53EFF33F7B5561F53F140F3C313A5559AA11BFC05C62F2170A0A84EA3C77E8B15377DD5D69812B50B21383E78DA711367825AA4904A693F5F3D9D9938C7EDBE7BB423938B8230934E324B38BD7014163A21840BA2A6E539195BB77FF5ED6F64A9B8B6EFF756E5D81D36BA4B322B728C91497D5794ECAEF89E00C039602BD6DF3814015B0E3B3AE5B20F1A3156A998CE4B3C726C77A1959D53A0159F627E34C0F4DA1DF6ECE03BB8E23BAAF6113F1138F0DA7849BA9AF133DA4407868D2FD72D0EE9B8893AD827F68E2E220CF51026E2D6AE8DA740839E9F884071278A35319EC89D406EFF3264542E50889076869E90EA0BD95D4B785CEC351AD5943DB9FBF4B5E4F5BFEE07FA7C70D30841F547EA5A522B7E751678D92F6B5817C21764F7ECFD93C496172EA055FAA454F2E3BDE848F2490B294C6845C981424CA18720EADDB9D8CB970AB0B7426CB39CD513A63227820893F7CE74DB658445BA73D4F238ACFD8C6A4AC921C05671C045A6F867F1D0E3ABC94285FE6B21F508F8747F0AEFECB7CF62815A2491842C83471D2336EF5913D461D1993354151C568B26707A7D8E24929940ADA63AE0501BF5349CE009BE4BB11AB92E1348E7A1675AC77786B0D93FC659DC834A95E320DE1C376AAF65762ADF389FF9F8B660E774740136F10B78B1DA5779F2EF35A6DC7F1E9CD2002FC0870FD66120D37AB8B359BF6DACEFDF6AC435C3C2A84FDC4464DEB127C4621F84EAC40EAC961284C3642EA191C6821193A39D9577215455960B3808C85067CC61646994C57E1EF96FFA1898BCEB11B3CD334305EE832D1C8D19C15A57123803C168EF403D0A536629017E7C08A00E0445EE6D0301744690FAF7F412F17209852F8906C4943905C36C1F0709DC97FD1BFC796DA27DB05DF5E4F4B64F29442E72A7CDB557F65755D62C3DB3CB4D1065AD25227BA0AFF07E67D9B4C406A65047D4C81DE2B4B895E0864ED26451F3DD2E07D1A99D1D520D8A44697FBA3B2E516126642AE5F6603BEA0A4E65C2A51172C8204D5EC74EC895297F6C2297406E2D4FC3F388B0425E215DD12DFA93EB4BCF8733D6479D8B8AC3D838E28087884B4375762B0F782297DD9C7DADCFBE2B62E6A7BB1ECF20C69F3B4E3C63B90B2B48604EACF1B01F06CD22C3F216133FF77BFA4684279C8F031ACCBA4BF9E5786D230912BEADA652E3F1B3AFC7E7FA8B856585BE0DCABFEF0FB1EAF828AEA63F22920AB1A96912980703A5CE5AA0DB5E98D77C5A20D79839F06C4302F43DCF9AC9724FFD24DD9CA09ACBE738F26536D29CE1490656C79DAABE93EB036DFAD764F989B9143AEC244F0D3EB4CE7AEA6FFB174CEC4E5290921CCC8FB0522E454521A60960D19CF8F8C317F3AC0F4DEF722BB1E7996ED6B3BF974BCCD39F586774DCDBE50AEA9A7045A49192F1291232A971A0976E09754EE274415BC703CE75930768F7E33E9CDDA09CB3967C3BF6D6A7C2E0FCE9DE77D54C011D91048089BBFC3412B33693CDC6F3B46DE093CF94A677B3E49B4C0B8CD33B803CDDFE024F8463994DDFABF8EC2F9811512A6DFE76449BA216F194667292833F0197097F5D24A077600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cleartomark%%EndFont %%BeginFont: CMBX8%!PS-AdobeFont-1.1: CMBX8 1.0%%CreationDate: 1991 Aug 20 16:36:07% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.11 dict begin/FontInfo 7 dict dup begin/version (1.0) readonly def/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def/FullName (CMBX8) readonly def/FamilyName (Computer Modern) readonly def/Weight (Bold) readonly def/ItalicAngle 0 def/isFixedPitch false defend readonly def/FontName /CMBX8 def/PaintType 0 def/FontType 1 def/FontMatrix [0.001 0 0 0.001 0 0] readonly def/Encoding 256 array0 1 255 {1 index exch /.notdef put} fordup 48 /zero putdup 49 /one putdup 50 /two putreadonly def/FontBBox{-59 -250 1235 750}readonly defcurrentdict endcurrentfile eexecD9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF81719098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014FD2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B82BDBF16FBC7512FAA308A093FE5F05C11F9A72F5DA508C30BC4BF52C8B1EC5FB7F9DDDD0964A6D59193A389D490DAA6F6ACD02CF71C06802F3AE5A001F2B3A6DEEB60E9DD26DBCE1D29C825A9BEFE3A6572E70DC7B60344C3E0C9C77ABE1804C7ED61C544F0B4A3D6C7662DE8575C07BED3F6DBA7D64A9C8613AA152B74A140EAAD9B66E0FAEED6AF9D1820F361C1269A5E90519A3E6D40782E06778C0AFAA30E8CEAB87054C4D156C1B14B4E8471D78648FDAC70A3B8ED474FA356393A774204211F60E397D2FEFC6A8D91A80C84EB9E38E663249FB91D5C8A5CBA68BA042725D5D42497E1CF5CA1E62EC2B139F5CD4D6318EBBA7AE28614D2D88709C2A3762611524B8A1FFC7B0FCBAF77AD8159C354F4887DB1A27781DE0A4BA7DF2CE2025D9278CED48584E8E6BDF30BFD24284BA1DF828B637BF84A02908BBCED67372C9EF44711BC2B1DA343C8D9D27A9745525C774F5D639B7AEC197CEEDD06FD2792335ED0D402AEEB51134665A47847429D91CF419CA9B09DC905F610F8DFC54E606ADCDA19D5CC68A7BC7108EC9236C64205B23CE68B9BC38EF3E5BF9E0E6ADF4047365C8D0436609438C82EEB2F356F79186DDF6C1C797D3C278108B1767D15178C4C3E8ADC2482BAB9536AE8419E5CF3EE1B6E53BDCE2A83E2E485F496A562C10B3F5A131BB19D1E5414C86C5F995521076340536E10613E42779FA15EFDB451F53495CE8EFF239E4EC442E1439594549D45F5276F93D496C9AC712D762D0B702E894290BA028837304AFDDD8BAA6564E9DC307A14A7A206550FADDC7784DE3BF3390188BBCDDD929C82B1D7B529553BA75ACF5B385D31EE3902D96B2B5DDFFF19F0F90FD791E54128C1717F313486896868A34FAFF22E23CEF046D02C76DB0C4B90F107907A725E0B5274E63F5F013A1E070190CCD269EAADD0D4F2A8B805D2E4799E3702646D2701D0F3A715C2120D83BA03E7521007F9C036B900822CB32927D829B1954399F62C13B7A76800A47D29BCED3E0FC6C115CB6751C6B832497356744322627290FFF15A0BBBF91F7F10C16A66E5199254427D5F933A77DCD15A8E69B47A47928C2404AB566D199AD80C825F6324D2F9B6FD88B61754221C7F6F590155CCDB3237AC1ECBC83E515D1A162B0715FF29C4872DBEA42AB7EA766DE76C6DD3723C7DD049B2F879508C663872839B4569717DA4617986C19A9A5F6D100ACFC0B73202E8EA38AC76AAA95D1DE985101B8AC3434E9F23CCD0EC26218F3842D43B8F97C809CB4DFD53F0A7FCFE15E6ABF2141123FBB4663AC1715685D01BCA9269BA29A1429DA8E4D4F45B68B35DA9CE132C07018FBCCF71279BE1EABFA43A9C296BA230E98A22FE4A1CFDF4D50A77671B4FD5D59D98CC038B86C1798B43FA3D3575F781A3B7FA4B5A007441F7B105194595D0BD9B67BB34364AB0B8DFE3882555D85A7E3BB455D62AE9473D67A681B1062EC02C5258A60A880919F9F639C5DBD2791F0487CC9EEF005EDE848B9393142E1FD57428A8FC9282C131BCFC46072A88F01071BC4098DFB0D1E524BEBC0289AA8DBC5606DA7DAE66929F3EF612EF2C11498508ED84880D51D374F12B47521EFD5D36AAC86EAB6D1489E5D43E32D9EBEC56DEF8B918232A98D3D48CAB618D032B1A1D52091A131AF57D00A348BDECBB4781B9B7E014515EA371D059A03360400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cleartomark%%EndFont %%BeginFont: CMMIB10%!PS-AdobeFont-1.1: CMMIB10 1.100%%CreationDate: 1996 Jul 23 07:54:00% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.11 dict begin/FontInfo 7 dict dup begin/version (1.100) readonly def/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def/FullName (CMMIB10) readonly def/FamilyName (Computer Modern) readonly def/Weight (Bold) readonly def/ItalicAngle -14.04 def/isFixedPitch false defend readonly def/FontName /CMMIB10 def/PaintType 0 def/FontType 1 def/FontMatrix [0.001 0 0 0.001 0 0] readonly def/Encoding 256 array0 1 255 {1 index exch /.notdef put} fordup 11 /alpha putdup 19 /iota putdup 21 /lambda putdup 27 /sigma putdup 28 /tau putdup 58 /period putdup 59 /comma putdup 60 /less putdup 65 /A putdup 70 /F putdup 76 /L putdup 77 /M putdup 78 /N putdup 80 /P putdup 86 /V putdup 97 /a putdup 102 /f putdup 103 /g putdup 104 /h putdup 109 /m putdup 112 /p putdup 114 /r putdup 116 /t putdup 120 /x putdup 122 /z putreadonly def/FontBBox{-15 -250 1216 750}readonly defcurrentdict endcurrentfile eexecD9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FED919C2DDD26BDC0D99398B9F4D004B836D34E88C25F6CE738846C8E2E59A2BCF4ACF80A26D78872E9343A0537BC3BD7715F32ACD958D5AAED865BFE129278935063A31C2634DE2F9077E0AAAAEB224466B779096D8E3FF0A12AD5157F6603DED1A82F3511359143311179080C510740B401C930C96270FD1AB3ECBCFEF5DE53FE846BAAE95828D5790922640EF8AB9D7CEBE7669FEA02B72F86872D3D8754A18A1629C40A7C00C956F140BC63362478279C36EE353638CD3E249897207A945044400668C8E702058EBF7284C9BDF830A3FC79C7EE900CC4C3664F9767A237275CEE3671644A75F1E696DA906B4C66870DBE87F5B4A176920C078ADBE24F55C093D18CDE21B5FBC1C6A8AB18E05EDBEF9D1C1C18B3E6377BA2A688579D4F708F9A5CF4F56C5E39E2726106E9713E638775E606464CD674E5DC25CE9A696A65806C8E9D206B421E246F18013ACC6C7B2985BA93B1B7D7745CCB25B09957F50128CB523A55ACA6A7A2A0193A536E590291ED9D577B527CAD0372E05BFCA1829FED1662D06144A5FFA628C587A4FA05B179F1A7E3B23B47765FDC054271A0DBF9C2BB4F4771F80D1F7AAD9024868C30DAD5CF728DB2A71D86D53B0E674996E8C01F7EF97B225A28872F8AD4752A466E078C2B020EB832F237CB9B5631EB2D2EDDB00709D3864CA3A6C3EF18085EAEABC011E9F35C9BE4B5D0B608361F329B5784DAC5557A602E9E3C204909D84DB988F0BAB914E87CD685C7DA55C5E0B9F0176184FFC39B570873BBF346A0D1DE3942DA05434949A65CE64D8BAB0A091C40F7FF47A4FC57CB4420221C7B3EB8B891044B5FB0227009F0F6028D3F28545E63C815E0139FBA7150D102D2B2908512FB922EDE6677F1D41BC1B7F70A26FAFD5077BFDD4460AFCF517B8E9D950409CFE16F6A921E28238BE16E87212CC6CA60967A4AED08293540EE28B9FDE76E3033B13A6B88C93AEAAC9BF974D0745A291CF5390AAEA1DF9F1D82FD63D04585A2535710BBAF949C029ABB635FB768476BAD8EC38C6BA5AA6A58D04478D9261B64F23E563EE7F767AC467597C6F219223B00C4BE33184D7730A67F0BD2159CDDD20E1C5F9CEB09FE540BF402DD3F15A15E7A1284EA6EE1CD1138408774FF0CA67362D0CB7EB7B56E3873916ADEBAC186595E729F9A8A00693F9D4BEACE312CB0521C3220F9EEC33BB4B83F7B9E12F87C3ED53F2D1BECC8C79A3CF39A2A643D14C0D717AC165ED7347DCFA4EBC97DD9B6C595A1F4AEE5F9036D9C01793A82D7FB108C740ACF751357C1E809F73487BD793FD81707730AEEAB814E05612A8739D1C31B69CA8048EE89B48949D73EFFBB041DD60624FAC274FC93071AB99A1641D413DDC1CE6499DE70BE75EF9FB14FFA0F932DF49289A7AC3C8A71F649ED6E2BE9051F4DE2C9407BA6D5ED717729CA3E3765A07C860BB7F9ABDE18F95DBE56D3AC991EB40058811722F7675C1E3AEAC313EBFC74FAC3C42D48DED51B429830538EF07A679BAF60C9EC2E706EEE60A17BC88813DB1440E27F43D70DE95AF9BAB186F525A8571741F53195BD9AD17204F568F9B727257758EB05BAE9FD031A17425DB86E0BDED06149E02A6F2A0469730FC68D6E8B4FEEF9BAC321B53E87D71E8E5BE762A2A3AE9A51B26004C0CA737BE0A22CBC7158A248AABF43095D45C6B9330A91322EB31B55F9135A5469463AE62037AB368D07679AF19FF570C49D7AD01970EF387E14DCFD7FC4BB8C2F88A262EF4B37C07EB1EE488C3D3CB7F0ABB0957D528CA5A6E798CA1424C5A2D6DA1CE5813CDB862648ADAB2FD79EB060779DD771183F835E4AE0D71E761BAD8DE44F9AFF545E1760CBB45E97900620C17613A8D5006D9528014399A37A6BA3058612872E8CB75ECE3B6008E7678045399DB3CF5530E434F1C85828128E1E3920E0CC907F99F596E83C4E09A1052034D920518328FBC1928DAB03A7C3C694B47F6EEFD567E1CED6F4834D1A44571362FA293CB9EAF2E01C7945941F50BFCB1BFD9A75F0E4B2EBF0B776F93F6E89C6CACA63112ABDED1CF2366F2DDABF6AA47FD51C898139DA5E1708336878BE56EBA1723D1B9037A5174E6FDB2C5C021750BDA28BA1F411FEC17B288136291D51539754953F6EA6C95A996D255D5A31F67727A2CC5FF93B46610593FD913F63F333ABCBA28D8E2D1E033B782AB513BF56F9FE9C91EEDD6C24E7C0373611890F5CD7C67D4CA3F3528DE0C908C5B3D759B1662E3DE13903E9F241DAC2C84245C1BFC3D8A79A7F3507DBAC7158368CBD562E86B58DE6899EB433317199C05319AFF2A27DD980530E930B973A43DA73F6CD22CF1CE6671E4C5C2B96BA3936A829A7DAAE3E36EE2553251A1961CDC381E8A7965087A552580FB67303DDC46CEB68B1E7F22CD8B3CE7A85F65857EC1A8C585B60BD7C3EB5DC46A5C453D1E3694077E3138E03D61402539A996CDE7DDEFCFBB3B5CA1DE017C8AAD0173D036265656E064A9293F301350BBCB268233BA22A0B1F7F22472D3917FC3C379DEA231DDD499264FC7B38834243AC1F0E4C1F58A2FBF3F288CFE6E432009C7BDEEC8C1BB7B5A138E9F95175EE7D248BE9AF2709CFE16776774F807CE3F572D2CBB288AFC1B3BA3F6C68A0C6C958F290865A3BD1E0BBEA09C9583A4FF29CA9D8D68B7F8AD5432C08A2D81254AF3BA11A2E832866225FC3B381388E3C268F64BEC1B90B6E9FB28E205E581CE7BC63A230367900F61B15EAC649D45C9DE906432305466099AD4853C1304DAA01F35423FDF636459ED37A0409C266A876D06ACF3257BA325ACADCCCC0BCB73E5736284FDAB5572A1091592E9F91AA42D0DD7B911E9B927A8CCD67F752827075B6E9A57AFF5E930AB5CE98D737672205D087915E843231586D36F60BE3F5B73262883A39A32B4A93FBB6995919A55899C6299997291192D86F4F5FC6AABACF90BF1FE9BCAE82AAA4216E635C1CD1215DA46D9372C4CF3F2CC323E107D53EDD6E3867FBBB62D5FBF7BEBB76D9AE8AE8593430738A0B7D649472274005DBD6C283D79582AB370E87E6E7C09B93E56DBAA49E23ED4C74F40C15CBBAA244B6A3A26F3FAD2BE7A63E95C01291DDB67711A1CA81AA5531DEA1C1D378907D9EE3CE6E880402D336273A515212290B718DD0331737BA4CE5F4E1A076A0065BFDB5C566A4DE02081FD42B6AABA4DB4F00692D0B0C5B2F0E35979E7B7ECE5347D5C8B0BE688412CD093FE000EBB5061AFE0CBE0F7065EF70DED86C0BCFDCBF3E3E138F29C5E6586B590DF31C9B79561EF72574D90378D2437B0AD52AF41AE7390418670FE74CD4CBB9EF7515B70DC42519ADAEFB726CF18D9798B18E3162E550898B8C2352A4FB92B1FB5BC2EAD945FA20DBFD3157B7D3B3FC9CC2363737E616DA30D9BD89C21D7029AFC772E6830F1969B6D2E631D267A54F499A6FD947DE0754CF678802759460E2A9677F40FCF8351FF4F78D1A00309BD63224560B80FBB4E37FA883F06312FEC990DF82A9D6B7E810478F8A430BC758BF24CF25DCF55143491B67BB770542C9855AA2FD90ECF8089B81AE21EC20887F87BA4CD55003B43C2C1B7AD273C67F703F42234DA1FAA55D76EFE9F5F756E94E6FB875DBFD900D83A3F62F253E88B3F46C3C8EF884886ECA0E6AFE506A597FDA9A50D948616CAE732536374D88D8F7A3F2D04890759AFA21EBC6CC0D428912402626EC68D2B7902584110D8E69D44DEABBF8A3702F517D7BD67F0D3CA0C96FA39AC5B8B6845C0ECB2DC4DC76B8610AB702A94EBF137E4769132252E36B6BF0E9FC8FAD109D49304660BEFA72A47B2EE3B0377FA7417307D4264B3ADD106D7FF525E60760CA85FAAC511C167D520F0942F5236D7B31E083199944A191C7A327EC5DBF4590FDEC65AAA2CCA1187D9CCAD2035B9F518236683B910193E9739601A848BC6877943AF31B2F648EA38FCDC259230534953B4D9471DD6CD46458F3B35DEFC261447AD5845D0F118DB5488622162965519501471BA15EF715CAE0634CD8EC17FC2D25D17C9BF2E3E77C445C7A776BA8E49B2C74AA5735711B5BF7EA0B517EA82868FFD806DA4AF7A1CFF4AFD2EFBDBC481392DEE76428C33B9C63B18BD14B3495C9E29FBB05DFF7DF46A7AFCDFF1D00529C2F2D0FC7C4E18ED9892EA0BCB80E965B9EA7B91AD8E48D27AFBEC20D6B2BA369CEBE6FE628661EC54A089087A80A27E9C7017E4D5182265EEE0F8F6D2447E285FA6E80129F70C9CD20E00B9F39337D2B09A365A6F07AEC708B6C31DEABF7491C83ECF077BBF1130DB89A455B70A8F8DC022DE28075620E258AB0AE48185009190B2EA97B3A7272B3D5462F7DFA93A35FE1E88F667E15170FD568CD68C37422E573B5675F7D885A547648D544109C9E718C30F9F1D6DA6C977580610903F3D7F2044A615611DBAEE8B064BA6A77853D35F466C34B3CF1FB8DFD5DC95EA0E6602D1A32C825560F51559D9C39F57E12B4A598FBFDB34A18709A011A968BABFC318DA5F92E581F20320030AB24EC8AC16C9D15A792FC37504D1129DE4FB0B0FAE8BF1C3ECBE376B2D937A2A063DF69F8FDD773B51D6EFB48CA2F96D4937A5ECBD9426E0DA3CBB2E01C62010CADE411D06CA20B9EB19A6CC0DFF38D49C005CB37E6638CA7AB031617B7E66FF68D0C60DD1AE98E2592952E109AFDFC8234B8648E2B3C5A432C96C03086EA7D84729FEA4B192396E16E95DE40693122D018626A5106CDAF305795F0E154299ED07B5AA6061DB845758CA2EE1771FC96007B9CCF8B92008688C1B04C439430E8E36CA05435D2035C733A9BC4596605B811192AA09C07ADC30D1EC7A38C9FE95D0C8F9FAF07DF48FB0E5FA2E5F78E86FAF150FC8E780E63E45662D9C08A4FDB61E426A7BB5FBB0CCAE5242DB5D547BE931431410C30A3A209FE062F362A57A4C749EA51EE889F57FC78BB806ED722CF96B2CB651FF4D93A288E3A7B1355A0912CCB753CF2DDA6BF07C46C5675A95C895AC0E5966021A31E56D22C3EE3744CE885D128A79EE24D8986859010D985525FF28164EC1597FFAC47945A3BD7F17EE0E8B71A4FD3C223B366819EA3EE06C3B063F6893F643EAB2743DC87D92CBF069ED5187E6FDBAB2DDB76C9889C0A9614B4466EC854ADC9F8CBD1CFEF1E0E9826AA692481AB50E5EB39745E6CA9E7AC02F3C4515D247C221415873468871C23091E4E97767C6E9227574793ABC1573603344F95EB56B015CBB2E34494740EB3CCB18509C1D288D38D3847ECC60623AF6B6321A26FB830B86F32887C148420B635D3FD6BA9C9286B4EC7DB9F0211290A2BB2030CED71BFC03762A0E321B7EAFC944D34B519816FF29B596C3440E968F01E7657B59BB19C6808D70B3F5B6106FEFC3491C98661516E8EBA1DE40CECBC8E60778DC329E7C2300B5B5A17DFE228EABA73677E06D3E8113F4868607B56CAE4FCE1EB2F31348F93D8BE789D1D18066FA7AF4DB9DE7D3A4856DB2373E49F32030F429F2EE068793C948BBD75952D7CA4E23065C2E916C4CC8BAFC332396F7A6F29CD4578C5725B2DB64EEC55A44216CFA37A6197E9A4A743651BE4AC373E44CF3E9AA3186FA083C53DB6B6CACA436D1CA43996FC220F76EC1D5D29CA29F1F4069C539EB34AAD0AD9AE5DE22CC413493B3EC66BC9774A9E19BA622A932906D7CE5B8738F5C4680A898F7F493D813C98048A881223496F0933D94670C2C4771BA02EA7FD104250D85AF392C001E2D7A7AE61B5179C550AD28337FE6F410C8FF7C31A03557532FEF63EAACF4341B8B7155D5CDCFE44CAACFF15F637920C739AC1D611DD690ED2E368B05D1BD93F4A3123A6B9D9C0084AAB0666A0AF171467449C579983582F64E99C1DBED751807541C44754592660C72C70FB1B4E31E38BFDABD6DB454486C306484ACAFCA6AA795C3819A30D43C2F02AB3C941A3C6E1A9159296FECB4B30B20660FF110057D275ABF0FF373635F4C5DC94BF55F20E35FB2633E58753E35098D2F13E75CE35A02004C3C4A302134263D40FF6D8A590A72C5C97DF9D0555215BA9970823B14519824A4A7CF21D78A4270A9214014405CC71F2DF0E852E2D7F1D5662C8BFF84514E0BBAABCA328020571F0F9AD2F76F882E019360111A8CA40E3D6676B8EED852DCE3456DD298B002160B3941EF3192270334AF9BFE274815CA60C268D29E8CD83E3DEA63E5C4B6CB9251D8A1F27A2FDB8A11D9930082AE28C309ABDECC1854F82C926B550124B751AAA565DC957B812537E2D62E562C48F21F0A7D93297CC232158F15A73EFBC36DE4161CABD6E3B87E52D81742FBE9A2797A48328F1A65E0AC20CAA7C642FD013BE6F14AC1489E4BA4B090B98701B021EF49CA0928AB3DAB78D9708505351DF6FAE5D114F2157EFA0171873FA33983665FCA2ACFC05FB73FAC6E942F0A162261FC20FD72467468EEFC9607F38E93315396C82EFC210F07BDF001E82898B69606C106CB35604445AF09933F3B17F117C13173D146D5A250FB73906EE0391166E4E90EDD42407F8E67139070F2D39C60CD6F2DB1DB5C9CF3765152621EAFEB7971BDA3E041427B9E7AF4C33A0168FBFC63E6282B4C2460054E750E14BE15D91B6B1DDA8B2B006C6A397D7524A6078ABF260A9792CA3892EB22736335F6B6C5F7C14D2FC309009C64F432574DD630EA0FC2F57F66095F699E52DB67EF8F0B1AE5A99389D75287B089E67189311D88E87AF2FB34D6EC6390580E887A1849EC837FFAF37DC37E2DE05D654C4E534053BE4EF76D9288DCEFD80AFCDF696204C8C446BB1F0D1C2F40FD16CBFE75A7E0E3D35EFC2B08B76D20B10125BC53D0CB599137E967FD5F707940C009394F92145A77EBE344CE6492242CA03E30047E00EE81BB5AEC6B7E42392F4711AA057D455D12DB707B30B5E2BCC3C764E5BF3285333EEA02507748E93EDBC4747F40510450ED7B883CCED43DA6A13C223BA411D3B9A7942760E8A9DE601108574D1E3721804EB5339AB2790FF4628ACD90F053F2A711CD54BC3714A4E182F3332D5B80D1F74282EC8015B395BA4078471A98D3836DE4C15D7B078B6D4E4392BE4FA8DF3D99E550C02AF4DF10D008D16ED0BDFF9FCBDFC6A80CFCC1030526B905B4A3C9A5AD6392F7D3F063D99ED0C97BC9498C59D9E35CC8C9B6EE066B5C443652B9627767327A3D2F2FA7D5E52CEBCA1C890D0EA2D4EA41F5E86B45938ABC405055E856D0B1E60E2C3697649EC28D81F0B37AAF6FB02441079C4C14414539620EEC0709D6ACA9D13EC5D0B921144263549616754D0F0902A07C14E2BABE40734B652576476498720CAB9FD5B6314A47A45F5E3AF19720CC1A806893841966A70EA47701C906A7EFF8CC2FA6AD877806EA78FDE9FE55A542E74DE9F7F39B743DF71187174811885AE211BDF692B44C78A8E1710F11673F24E6FF5A7C7586A2597066B6596F24DDACDC2D3918A047474B7C288B71805D19BBE5224161ACD8C5F3B2EE6618E76711A8801CE3BD5D0466EF752375B83AA2E28A58D3306D7E5BEDCAA2F1A5D87AFEDFADBC768F5CA920E12C5C904E87DC0EC117457ECEF17320FD97655B598AD162BA552338E5B9C0D6AD6F87FFFD9E2418FA74B4596D859B09CAD0F5E46C87192DB51B0D644875131BC1ACDFCFFBFF434856DD8A8AEAF0B5FBFDBFA82B0E028B685207443E35BAEEBE55B7E857E442953FA2020D4D05D824B870FF82FC9EF3B5C43FA5A107282B1A329B4BF421FF4FF1379659077C9E4C3BDFB84DE1CF48E6EF4E74866BBFEFF5FE1CB2C1A6F87B7B4C2F249E5A595F98D5B399E8196B733B1738D9AD1DACCEE3F7EEA7943BC1F916A4BB2BB89E09ABB633312608CB63DF431080F934523BE2B246D9DB89A1C6D6AE2F8F2F13B81C21347C38FC420FF23A8BA8B52890C79D110A3570EE039EDC74DFC7A507141B7BE8D2994456E06E033B4FF82F6462A80196D771E7582A93AD95C620D3DE8B68079CE783BFEA9C5804EA26318BF98BF47FE0E1DAE23BFB9400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cleartomark%%EndFont %%BeginFont: ComicSansMS%!PS-AdobeFont-1.0: ComicSansMS Copyright [c] 1995 Microsoft Corporation. All rights reserved.%%CreationDate: Sat Sep 14 10:16:33 2002% Converted by ttf2pt1 3.4.2/ttf% Args: -a -b comic.ttf%%EndComments12 dict begin/FontInfo 9 dict dup begin/version (Version 2.10) readonly def/Notice (Copyright [c] 1995 Microsoft Corporation. All rights reserved.) readonly def/FullName (Comic Sans MS) readonly def/FamilyName (Comic Sans MS) readonly def/Weight (Regular) readonly def/ItalicAngle 0.000000 def/isFixedPitch false def/UnderlinePosition -133 def/UnderlineThickness 85 defend readonly def/FontName /ComicSansMS def/PaintType 0 def/StrokeWidth 0 def/FontType 1 def/FontMatrix [0.001 0 0 0.001 0 0] def/FontBBox {-93 -312 1187 1102} readonly def/Encoding 256 array0 1 255 {1 index exch /.notdef put} fordup 0 /.notdef putreadonly defcurrentdict endcurrentfile eexecD9D66F633B846A989B9974B0179FC6CC445BC1325EB8F274DD24A5D21C05636413EFC099729365596A8A52075A624087116520034680FDBD3E86220CBF46C2E82BA32413E26C0AE960BB760BE98B2E1348D6A21CDB5429260899F7FF77617B00E876499AFB997425D58673778E90672CE2F26C816F6EF6C1F6F0724D575749C55AE9D8CD0337709436E75CF2354AFBA7974814727450620BF79E10457E31E899430F90AC9865F70FE6B6777C3B647DBF5479B987AFBD6DBAEA380CEC42950CA19398EFFA5677DCC3A12382E5728D26A08A739460E0C7EEFBC2B287F337C81126D554D5A2079FE15A7AAB1D1578A6B7E7AE509A0C8EA12CB3BFFA8CA21F80C28F165E56DDE1398D280FC068CB1C04C8317F894F38EBAFBDA29AB0EA3916EA9E64672E802980AA50F43C457AB4070C6F095772F85CEB9ED0FD0CA31682AC547B8E8DEBE311665FCB8AE3AE78AC5AC5FB3F47582BEFEFAEC16DB1FD2025778C99C2488806E7D306ACBD579C02F05107A52DD8289D51C2D63372BB823C9B17F5FB7681F2778107E303E1951D955443AC4C731FE01234033C6FD1AAFAEF0C3981E9B2CA2386BF69A80C9019A7D8CF24477C4A5AB1BD191D1A8784E6260E49B87788FCB6F169985E9C65C30DE793F4A68E75FB3A8135C52F8CB70F96ABE2F5FF571BBD0732FF0A6EF848E437B50688DF5645B3A30E47B5AA0F1EB35A669B2B0603A931D08C5B9669221238E5745FF9DBF2BA765274A440F3987FBFC0689BE4C0407E9819FE68FC2C4CAA484A4DBF909B2858AD23B1EDEF2CB984E273CCDBE03C107CCD13EFFC1EDDC52DCBC0278D296F6578854C1BBEA520B425CAFE2EB3E9292F3F9BC2FC61330B589DAFE4AFD776D43F8CF3C20A8E023AEB14CBA53C94A3B9DB6DD7E840929C86A39B24C53851BD54DECE76FAEDD948D4227F52C766EA1C1B86F19A5FEA1EEF69B7B036052A3D727C0500E3593788833381F20F7E9082A6CE823431E43B9DB340C9D6B45614ABFCF417F6FD17A704C4668F6F8742C644DA4F97056AE238AE68366A59B63E74FC255BB48B016B58E4C322B453CD516787E516422AF064230A5AFABC3041BB44B933DA3A8336FFE9568C0E6EF32467D27812497EF6A45BADB374BD1C3CC6D8482BA97E5B71B194517E84068E49784990D3377486A6E2D0FE1D006ABF646D25C4A9B937FAD5CC305A0836C5C43AC0557EFE61648E12A39638FB42AE591FE504A2632ED609FA48078866C7B64E60EBF783EE5FF928B84BE0B1C333F104AE66CE447123DF5C4349561CBC7B15E00DC14F1F22085EA743F9C98587768C2816E4F17B05428C9C1C55CA1B578B60B07EED815F4268604A4EFF9BBF3F5B187D8321A0A21D2271C7FAD646EC17D352ACC1B24B03D138396F3619557849327871EA80F029502CB3BA262D22D1BE79A172564F2C36D240C5D968065C9DF33A73898D0891D1AB821CD8636B2F07B1DB520A27D96B1E7FD78689111BFA6B2D1015854A4789590992254C9ACFDA5D5D5A18E5ADCD42EF2EC8AC53AEE2BEC619DD75BF2679D456299A52802A64B2E2A13ABBAC55FD47082DBE00ECB6C5C0F3CB6F2433FA52A35518DFB99CA7E44B6E03DABF8ABB73228AB47E57C4E875136FFD709A15AB5222CF808EEF614A417FE5BEA1A77EEF42F50F46D67A4DD781A368E75CCC7A5E63658B21DA28065552A4F0977045201E64134B6D975900278C6C485D0A6DA4A267B12A56BC42393BD2EFE78345B17B829686C23D94EBEA9D6C9E65CEDDB44E23B8EA6D147D264E48E69939FDF48DF49CBE4C7BF0E5EDAABB95B187A4643893395C4BB175F1BBD9459B29D7F6B88EA20514F3453A08F1898F30FB95883763D2A863FD7349D572419C06513300A0710759B6D7C384C7F733D777BDB2B8D701695877B03781F648468D3A777D8B455FF753AAE7C922193008169CB9C24D700937B8E4CE1B5234EE22E707598B8A4ADC04F7B2E8DC40F971287C18CC525EC82BBB125513CF6603EF03C8E0D0D3F83D6DA21DC8EC0C5254D2E380A2957AC9B4172D55DA1FB25AD7AE82EAE4C82760C7643402DB0912EAC8754AE29E2E93F90E81056E75D367E8EA1C017E57F82C25DFE353F321F1FAECC8372C1DCF03380D487430195AE2B431CA70822AB430477368085E864B2914866E458D326C31A8A4C2F322737FBDE1BE1FF5C49FC87515A0F23D18B366047179E07CBE382E8702789C89D8733DC9E1BC37C7E84A84BCB67061949560B4D09C6246ABA3D37379946E16779BEB8FADCFBBBBC22A27EE8A9A083F69CAA851420D1A0C716B559A93FE6E0EA389ECD4A3FE4EA0EEF36BD18BC14739444C3DEB034048B247FFD4D9B82BF928397A224A7A73B41920BA2FD0C36FFDBCC5EF753A0F6D9E11C86CEEBB91F094E6D53F25BBE30D20835CF0A83D7BC9CA897250AB6A6B6371CFDF258F19AACCF6ECCF70D7BCE3B519FFDF4A15072CA6B41BEA613D15D9B7590966A0B7ABA94B35F81770A0EB4A84E947B0553C64BA624C833A29410E666D29D53022862A1BBC4196B245D294143A4313C58D9F29B527F2F5F247DCE0324EDD0F2BE9148FD403D69E7D93D63F8E7AAF0EA12FAE726A7D75D64B8DA0FC60133BDCD6F6A5FE62F6E38B26B827F617945C2A9B7A9474107833AA1E9B8ED51EA9E494BBD9BC3B09DA7A66E754534C95E52863BE3DF1B15B0FA72FA7A271EC188FFA1B9F3FFACA55A9F6FB7C67961293079215537D0ED36ABE19A3BBC112E2C82070790DD6EE29FEAC44F62590FFF440CE42C4C0838B8D797205ECF4C4CE3BF881BAD3820DCA4D67E9FAC55868B66A78B58A549D32519C5A0B50E1A774EFF21A2BDD528F1C3D1E99DF747E97B141BF35E0EA6712C36CACD2E02DD59039BB5B5161E4109D5E0A6DCDDC4E494130417162232CFAEA8C15960B4579F60AEF7F0A2622E85536990306C6B77BF2F0D90515346FCCEE6BC4333D01356452D114BBEABDA877B61551CBFB5635DD5DDFCBB59703CCC55935378FED663FD7959C6D4910E272CE277840DBC20DFC18C15E34F70561F1A0BFC4C08B1D5BC0A9F9A1E0F51E5E4FFCED32327F4BB5A9B8E0C476DFF82FA8D255CF3EFD024DB411256155BCD3A0E0666D5A9667578C90CE30A316B282896F9BBE634FD17B2A2F43F5B8F718FFE5FC826AA6329E97D246BC15C0F4E4652FE96945D8B59BF7447DA94190E9CDD113065E6EADE777120C4F83209F1FCDE7539213FE2E3E85F329F8ECC7A6C2B259A6F6CB294CC29F9AE025AA9439E8B6F1A3C9DA8C4C27AA8A18565B2CABDEBCF9A22F9F4DEF640A0D3A4988777B0BA5692CE97B08F88C7899AFE37D8AFFB97D04AA9D2C389CBF12C7B71723263AE6FCB7C928450BFD347A44D7ED2EAEE503ADCA175FED41854B2982E117202790637E437581B1DAA0CF29BFA0CB9116870BD097080BF26A8C87B3B8DF640A796F4BE9068BE20BDE45E6C67C0EF452BC20C689BDDDB94BD67997F60F31FA62393876A9743ACB24EF5B77E0CA5AC1E6F13A8BA831CCF5233BE69E1FE68FB06FBD58BF563372DBD30BCB727C3B1F027F317C50C7D8E3C246E6647A96453BA8E2559BB9E542A45CD9DF121108A2751B1E3D32A58D3C67AD87563142933078B7FD48F5A4FBAE0C6021304F6B67306A3BBEB6A99725AFB03CBBFBCCFA52DF5AAE41504D0C4155B13472B51A20A82E13784DD90A5C4E41D608F894BE066CAA01A20DCA23D4826480273F47C2A67F00C609E89DEE2711803BAE85AFCAC3667E2ED796A8D6BC9CE98F2B71D98628FF4B48628FF2D0C8A9CBE157055A933CAA161CE58B9CC0BA6CB7E33875B819AEB1EFE37A3656C9B206032F9B95DAAA16C8A365481D828E287B9951834C6F2D99CCFDE7136C97AE7066ED06E8C79FE8C1E98BAC415C00C967591CE06BC417F9F48F217D5C46FF76C57099E70A9C4D00767155C0BAE5B002435E37925BACA3DDD206F478556EF625C61AAA4B5A7C88DF9221F98731875267F487275D0298BBD9B63477E62942261C2AFE6871E22D7C32DD6A25E2FFC7ADB51D8FC62FB350D208B44CEFB4A4D481AAA4E0464F52F39F44EE0532725904BAFE6D5B8D61DFBDBE592A19EC5CD2A1F920D15628C16E67A1346A68793BC250E5D5ECAB7414B25837FD11806260C2BE749404494857CA9A4EE4E83193D704A287889135BA61DC64D11706FE22B8C7870AB75E94BA43C89F2C29C2E8F52C87C6D5BB3659B7E9ADAF7ACCCDD59B4B3B349146BE464482D7F63724954E874A8CC6004D04175D4AC5562670D9F815F28B5FFBED66A0D72333FCC585C18B19C61B51CE7027B2FCC49698C0C0C96838275DA5A0EEBBA270858694190C748609DE953C9350E57657B37462E8733CDD10197E7C1F9FA4156F38F0A909248330C6D78AD9237044496B37B1AF4A31751B7423FF43EBA457FB6576C30DAF06A31A8EBB5BEBC3EF465BDD257B24DDC4E5F9C7B68C529DAE127CEA0D054BCD4F9170AA7C2C2024E7B4E6D5109FDE9B405E451D97EFC2AB2EE0BB4A38A30051FE14DE4D00DD5BE4709846911C6779A481B79F13689EABECEC1F8C9016CBDD4D7FDFE36BEA6C0805CAFE65794147A8648A567A8955F3FCFB9F1C8C3466FE96CC38935D78C3708042ABAE0FE58246A8A2CD06A5256DB1C454FC2384C0351D8861E40D78AFDB692AB573303827AA3537391216C1F404E089076E310FFFAA77DA2CCB95E09A092BB0304654B39FDF77219DAFD0E416EE8A1BF7E3CDDF737FB62CB0DAE9541128EB08D9A9538E1F4B54BD866989F97751EF8DA88A9E993C5A517EC8E6BF4FFCC2843E4DBBE5B3C8D194194140C04FF5AF827FF789A9DC7D89604B6D5BE5976FECC5F45A0225ED905D9D948CD640F20CCD8A05E35B39D799C01F010960A161FA5DE6B932998DE2E9A9D1B895B159E2C905B6931511970197AB74CC4059ECB558341F4CF2448933D40158B09F8C8409CD1231C159FAD288A3ADBD173D84A8E0C5F4EDE17BF86E726ACBCEB19D868D49BA7B27E4904B91AFBAEA61ED1C0B8A90ED9872DA36BAE42B05FB70CCC1640ED261C67D2DDFB54514B8969F4219A565825079D60CF71131977AC95ED96DA7208B4E6FF15284EFCF872B172DCB27989E0752A84CB38BA7D271E7D5423DBE0776FAE1BAC6EA6FA19B5902477D8DB77017269153A7B02792CDDF9A16487327DC3C50FD21096F0E21896A759C0C6BB762F723CDA26981B6F86296419B4494F7BB4331B603F8463A8F53DCA801F18E577035FF34901303E876D758D7B7A624A24E9AAF0F6C8ADFD0A379602758B712615F447137E43B2EF173E88C11C163155910B2CEB8B042B6B08355F6EA75A1F4E9D0420F566A6DCF28A667A6B89965B948AA50A417007C0A84FB8D0F4A7898C7006880656F38DC1095F93F0058C406FD6F1005402505E773E0925B6838E6F8F9035476D0F5393DAF1D8A8BDCA2DEC02729511DA5B0D0FF9FF6BEB1469AA40E1D30887C6E2E6ABE73AAE3C8D67809C6BBC84122AD6D7CE5DDEB06D2B39110AE5BCA227144264C9EABA01826377C3506869159E8D056E4FB4594F46E05572529A19B0AAC0959893983C3FE759DC1E640FC889F6E71B5F8530BF91A589BA7AFC5418E3ED4D1932F4992BC3BDD904E34A723CB48EEC08D5E63D2EBC2FD946D5C1F367453F55559F4090E5F392825C68B22A9DAB73629A1DC0ED7C058AD150C4D5BE6CAFCC7D3D564A660FCF496AF0126C34F7ABD28442FA1008126691E4E8BE5BC8481AB4D76589F8942648334F50E5FEF49264453597E2FC0872EBA75B388B6F5A8EF8D69FEAC816640AA91B59E1BC01AD5D9081E247BA29CDAE4F9DF9E9129E83B98DE99D531A521E7D5EE19CE5099BF569450BBD4B01C420F4E13E58B0327FB03C954A31308A021EA8A1C76B8A0EE95DE3097D342F14DC9532DC0FB851ED4E9099E9C105E9A4B93BFB484FE87E65B2DDEFF1ECFCD95938C50DC9D1134454DA1ECDD4965FF033AFFA6D988E535C0B30F5DCC23DF406FA7CB95CC4470CEFB37B0EED373D55D345C677A4F608A45E1107F33A65221802ACDF497A76382B83A63A34884DA9097006AFDD292FC7B48CEF6B2C78F8C9B34FD59A9BD45FFC98A11A99510B0A8B76C6C1D83445538FA9AA64363945F9CC15C9669D2009B17B77ECD4FA88AF922E0DCFD3737EF559B65CE3552E148E1C5883A9EA15134618147F8ED1FCD70B4A6855E52B761A51129CA1DBF06053DF9D12BF3C580D6A632599933D99DC44948178FADF5F5716A5CBBA758BF355094B9437176290ED2FA2A1788124D78776B1A1D36B4FE5E6CE5390129BA4AAF6F578DD53D95601828102DF3938C0626FBF8C4B10D0CCB92EE6E4E7807D1FDB829AB9BE63E39D377C60853F7958EEF981516AFFBBC84D27BD1ABD686D1351BD5A9C7FEDD017ECAE805053934F6E9925B45CD4B58AF33AB491A2BB857A128D43EC71195255DB36DCC13A89DC811856A3F9BCD68FB3FF4848C380C06CE26240863E891BE0894F486DF1F5564EEB4773C7D9FD8D8EB4A878F54DA6CE9EAD3EC680D05C0D419FD0B88366F92ADD98663F96F27B3C606DFAD347B3D65564B27C88DAEE1BCCCA10DC2C55BB3C722155A37D36FDC288C7BC221EDD38F0FE2F105BBCE9A5CA723AD757A9B630AAAD6F13E4507F9D4E7940FFA97F2BAAE79EA982B22CAE5676F5FEC5AD00C053F94E5360507C7152A89AC6E6A8E718F576623EAF7C24BC3BF884B0077C93653E897DAF764172AC3FA491F806296BBF942428B0EEE015CA3B2ABE4A8B54B457D3836168503C4384BC3CA11B8BD493853D06917D47E01C64021C282B09B20BACCF8502437ACA86E9AE9ADC8D1310D0DE8BDFC4B4A481F098A1F93B98D00BEE64228990E5905EAA0D8EA3246C84CD9FEF82076A425FA7D80B4A7D80DA1BF1331B19923C8C0EE5E1CDE0C57F22CFE63708AB73A8E17281E2615F640E839B75FEA0E9768029DD2367E45AA87B3E786ED0D5C40895E15E777936090E0A154DDA036BA52BAC811CF088B4875981B3590EB6254FEE152B8F789FA9EFBA2A1DBE19DFD88B3993CAB581A7E340178D6574F6C018242A5F062F69B935148E81C557C4E1B77F5441CD9A8045175CA4F3CDD7CB1D87A11B6393F8133A84721DB50285D2E086709CAD8F9DD76D2D48C104ABB6F15BD9E27C372CD23E64AD5355B48499C0FE7029A2D96030C850C78682114E8629D27C2D02EA91900F6E7B049B1C432F7AF4EF55CDF2CACB2EEA5DABDCB79FF7D9B695DAE2D794FEAA30066C08F2E907B832201F429DD5A2EFDC3E9620EA8B637B16C389B678E804FFADCBF28E0049FBF898850A729387C6E48EFC3641A1DC59A816C933FF53193EC0FD789960A8E2228BCB174DF812C2B93C26287A77C5C3D6348FF0F41BFD3E96F9737FF3C885E083C382D1B2478979DC0DF7EE8E51C4BF6C70BC794C6BBE8A2AF20AE79D5A4A1693F287397AF3300D4B1E4CB37D718E34C09A05E9A006F8EDBEB4D0BAF47300B80C3F944CF3C1881D22BFBBEB52F816EFDBA9CFF83AC072C75218AC4F3C487971E17E6595BF4236A63E13CC8C2F578D9AC9A678220542D04F2733C32C7B1D38819E09E2664BE7A98B1468ADA5A6E02EA14FC9743F598E1438EEA7748E0F9CA568D45B87A1D726109C0A078862017B2A7A31CB829C2DDB6310B59817ABD317553126EDE9A4C82109B55327515A31DD14BB9C1C061B2D8A1776493BF6F497BD9B82F899361A3A9554E4F789CFE3F13D8D7C5DE1E07F526FBC2F8E3F13CA96FB2207530F3BBCED6A353E335338DDC277E410101A81E821CCFF585F81454AC7D549209F41194F5AFE63AD49EEEDE173452C06427440920D60580035348B6E61315B1F9113FA5301062DB793BF0C98D7E57398247F7D727272E4D94572BF168E93CF78771C93DBDECE93275A3DFC1E8ADBF7B32F29E2B36E8CFC94C1BD667A1DB21441DF0425629FC33840FEA2A1D89133343B4FBD168BCD5B5207541D34D7E9AE60B0CEE2DA882A00FA917AD518EF7AEC3D10F1A79C610ADE4178A9E7E48CAD5EECBD062C1E22006585EA332D2963055978EEAD7A88D398A3F149B2EBDCBC1CA6CD33AF7937D66A3DDC57409B25DE985203194D64338FB27A18C3E1FAAB5F2AFB654CE628FADB2EF29003F083A257FF9C638105CA4DAFDADB3965EECF98516B95A3F41675015305742267DA860345F4E5E12B95608876E57593AA741C19AB6FB7E261BB0B6DAC90B4C73CB5954C6D639CE4A5CC50205B15A86C83D11A7B6645971E03D05CEE8B8B918BD5558F69C9F182768181A51C2BB83018C814B5A0C25055F24C328DBF918E225C5ECBBBFCB8D226C52253A886B8BDEAAFFD173F999BC7D1F71CEFADC7BFE832A8BF9C0BAD043D2C859E65ACE0CE526A5B80803BCC56F8A2A99AF870BFE5C37EF6128FCE80FD44B49B8F5074D075CE1B1CAE52F77881EF7D62D3297C9CEDC20F96574A6969FC37C5FC2502E459B7E20F234B542538EC564F080D8F2D3FE86474D2FED0E63F90B8DF6A37690EC8AB89A46E3E5D1866732D4328E297D2571F9C322D89E61D451D10743B052C8AB4161E0BB1C3FC4FF1BA559FBABE75A525245559AAD4EE55393019E3726FC66B66C5FAB68358E1CD449CC535DB0CFC733780A7FAFA632E8C7354C77563679B8C69FE0E150BDD780DDD76F823307146E1F260D64A894AA77BEB8AD218388486FB9B54FF40B63FFE9BC3347001909AB94F1A92249225D34703EF44E7FC1BBDED554E575018D9CB2C1ED97EAA6C3C33ADEBB54D79858B6F5A2A5B1C8CA809629EE015622FDA0C0AC392A2F772A6DCB8B547A7E3834C1395CEEF78155D1AAAF6A1A289C207F641BD7C0E4425A6886D25BFE861FE7C2F2398A43AEF027BD34EDDDE3FEA9FB91BA2BFA67306C1B770B3065AD4CA870538E2AE9A38C54DBB4A4D321E72751B7B73886C1BCFA89E2C2924AA8998FF19838C5C2868F2202955DC76D801AA613EF09BCC39C2AA90891BF1AD62E125FC003D7BFAC6050286B509529861FAEFDC91E6F8455925E20A9203D7C2104003CE178CCD1A2463EA6DEBB1E19C3D7C3A7E154505553DC870607213886C65D3ECCA28AB956CB032A297D7320EDD2F12FCBAEB4C7573C702A48C722ED8182D31D7032F29E2B36E8CFC9D9F51C7122AE986346733C277C6506C04F53B07E288EF4843C39EDD64DB96ACFCEB9BAC72FFF9546B6BCB2B43C56AD8E895784B9D74424843CB9B4FE459BD5202EF2810260236760DC09D48F451392AE9068155217E7FB9E1A383C73E1EF46966F9D7699001937E9C2FC0967CA2A2E99F5CC0FB1E7FDAF3774D00DB6227DE457162EFFD0DC69628217DFB951358603DDB58EB2B929CEAFBD3A21606F9CEBEA892D033BC852C5D7937B732F49520016D374843E3A99ED6986A51EA563C5714575F2736A98EFCBCBB6255ED5FCEBEC10A2A8A57A14B7F217B24AAE50FD82E3A6F2B466F2C552D54C7D1C44A3FED7A269F9B3891E13190F0BBB30401534CB87122F41D6F72A762E830AA8FD514D0FEFBBF1F53665076011AE81D73D743DE7A8FA45ECD89CC1640755CC8F27504FFFF0BE8E23899A32D88B76B1278900287FE2BCE051279788C2BE626EBBFDE75A3217938C17FCC2645B5CBDE187E08D6CB127B6BDB6C1C49ABBCAA9BE2C9B5C4F117DE2AE89A827A6617EBA8ABACAEDDDB407807D6B5C74FC32A61B787769E9657AF928093DFF103A055F5029286881BD9B71A9DE12DF6BA860F80D9FD280D749226E7CC3106746674C6FA72384610428BC96AAE9A00AB7B789DAAEE7411BEAA2D4EC1B2F55BBFD69E18FC6B682CA6767169B30ECE52D9C3EA6DE3CE7DCC4A6C92CE1D81E331DD86D60F4F5A5B281ECA53A096C107C1425A4C8D3CFF13039D36C405A1A96793C60077A16C6D30991F8C35C424B2EFCB83D29DD6A50357071882CCEE9BDF32195C015A3096905876A03ED406736669DCB7D2970392C6F878D2E3C6FA07CAB12EFA77D5A7395DAE508C15C03DDA049D84B032DBA0F9B5D7C909F9A3AD3F28C70A2D7A950A3F3517933574B07E2FA73D67FC7586279A28173D35DC6A76954C94ABCAB5F909D7F549B4218DA3D841B0C346C77BA3DF31E58AF3A560C460355B31BB443B6823C4E3D2E01A3269AEB5464E697057F0137636267BE923FDA2C0EAFAA3EF4517BE1E686C84BBE398545D12267B730802B36A462730FBFCAA0B687076CCD14323A224C25F0C3288FBC0046ABE6DE217FD6F489C9D8ABE58375113402DEDAEB7C510981F299E1F9DE618C175FEB45FF2968429C1654F4C983FE305BCC34C32CC5D5B3045583E78D466F70D2BFB44BE001F7A3A666856CD6E3DF19EAB1AE084BF6A40521CC1430713B98891648EE0CB1FC765C30B8DD2B04A1858D9B4BD718E8506E8C851D672F598789D112819F8C49C4EC879BCCE2827CB2662AB55A70BE52BA22608C04741BE7D06F9A19E6AC2BF432085255591314013EAA47DE21EA2CB2275A21A0FD2F1E48FDDB921035C93BA9ED147C17E6D4695BC365FE949A30F08F9A0F4F95AF3D2824048B455628EA68EA1B38C5B14F18A96D238157D749EFCA6B75C574DFDD64B9D9076D23FD0A59D6AD28E34E604240D96766ACD5626B5EC0BCF52092C63AB6DC0348CED666409A0F2B81CBC2B0D2D655C31E3FE7541B2DCF0919A6677AF9A6722FA9FEE50EED479D978CBF4FDAF0D8DCEF898EEE59A014650DD9C5160C7474DB7843F6AD6B337CFFCD39F92BCB729CD6390DFD10B4C71E24BCFED9061158D3DBAACDB50A37E7FC2458BE65CA6102F26D65F8E3D535150A6AB248EC34403E48D416AB560D4D133D0BE79140EB33D4106D901974DFD288621902C64E72635E26AE3FB04F4A867F79D3DEAA67D8ED7A01FE199539E02EF422DFFD3B72A1684AFA9A954D1AF42017B2FC3662D7BDB14726C61691659FFEF3A2EAA4A823559B9FE383392A3DBE4BE63195374AF98B9D102F0D7EA66BDDE418B6E3E407300D24CD54D0019AF910E69835B9FE8F76F506377A7A00179347DBA9F2647B5BE499EFCAB7921E974E0F02509F3605BB801EA52EC0C2C4471641EB9C7DB2327FA262A72FAD3EF62EA528B388FB2B700A51DCD06635220FB98495B29492E453337A97E2E0061F1D42E5DA60537B2F7A94AF4D417B54E52CC028F2A47AB4A1891B98F92AEB102B07199BE22D89940BD35C4AA31BC46F08EDABE22B162DA9A78C234FA2E075B9FD3D7FE62DAB23AEC8325874680134F035A044609A75AC0F331CBD54F6F3BA326F6EAEF1B707BD8E2730C558416A7DD03F235C05E67CF0B86296B2DE88001F03E1AAFC7047CD2896298503F94188127439890831943816E864F922D45222454C6A9CBBF205039D6D35C09A0CE284E2C7D235485F912CBA1C84227A609B32509552AD1D7CE0154AB1E16C506CF003828E7F53B24E0968A755A2475CCF97FB67E4109D5E0A6DCDDCB2E2124D53A2D5106DDDDE1B311AE3ED3B060EA6EEA5B735D0D62E41842C07B477A2DD415F312D653513ADE6EDE9E560BA16573295F778B34FF89954F5D0CB096CEFC35760E9F293085CB54BB955B78A6A20247B49CE410908042ACDE9414264C06999A806E06A2E0D9DFBDC28DE2F4431F3A1923FA3C5F4757FBE27C739F5308A5C440E8ED21BEA735122C136E806453ABD9F8F9A2FCF96A2FE44B06C66C5A798A8B8612A4A0B7E8F600CA820DF8B4BAFE515BCC974BCC28E0754EAB224F1772C9C9632A517073D4E8E1C205588BDD3B870AA8C00CEEA2D593874859A612352C2F5CBC7FA7684F4FFF161DDEC1020214029548ECB03F2BD47F248469C163D87C1553A051391F0246769EF99A69AB490C079E25C777E2FFF6F8BD0DDDA24F9A1F4CC349ED95F66B0B054479685AA9AE8DF53A2A21D951A60E73E67169DC360A52C12BC77E3A4F5DBD8BE9505E7F66AEAAE9552A086F153C32E9EF3DE510D05F01B979454C6280A58F8B80B60DFD810CBF197D55CE63F12950167935869EC0E7F5A23625BE41A41B4E83E09AD7127BF672DA7C5F38BB09115DF1E0034DCFE58B45A71D4E9FDDFCB897B46D6C0C102C3500325C2BFF8B479CAB483B3A034DB50996707A20FF7F3371CC1F33591F2A81E947884D1E3DD1A897692892454B0E292178FA07A6772E96B5D7284B8EC383549298A7DF21FC21CBED006BB1A6EACC2F90CA8E188BEAB91DEDCC822B75C8DBB2F8F03639A13E6F3845521A2CF42803A7028C2BD74CBD41DFF5CB88D0BDCBB4DB846516D50BDA39792AFD17B52513AEF6ABD14878C181A40EAB27F4DF07A4DE07D03E69BFBC8650851AA63AC4A5F2DAD8FACB03DEDB6AC72F21880180631C8148232256160CF78A202392A840C03215EB573C7785B85F11DB67DD363A5097D8FF96CE8A5C8F9FCE901131D575196D496F285BFCF71D9D041AFE0416F4F1A755E97F12D702632BEDCA7676C7BDFE23406C55DD3FA8E6BD89DB799536EE24550A744332069F3CFF233A6A2082CA4564D9A9C6CD99559B121E14C08391053E877B16293351E692791519CE6F90542E9E515490079815C2000B856C14AC12D745407A4598A0C9C494449C69B415B8A30C5BCC1A675A063851DE2AAB8F74ED575970BCCA45518262CD2F43A068904900A54D9B875E95CA8166B84CCDE9FB92FEF1C854CA579D64952A6D39CFFDBA38C11C7238C738370C48D00DF13D95425DE9DA289BB60135C7008BFCA32780337B5F23AC7718F1B6DE01DCE214039661FEFE4192FD1027C9B546F4AC7FCA094F32499C0F8AA33D2C7D0028382250A68561162916242B2240D1236D610856541DAF495BA3854188D11AF8339662D164EF37BF8635D5E0A836CD11F70B7F934387FDE0B8736AC99C312BCE1CB7C2B05EDE0EA6D89BB91F93DEA53A676EB142FADDFD883DC496CDB015235F4D51C1C753EEFDD6ADCEB45DF4D007135D0DC8E7180ACDE65F8F45846939F96E456F14CF9522D1DE94D3A61F54B46D1DE5D40D1815DEDA70A37F7C832BB840B83A62A0D2D3A7BB0659B58E3E4F021F638EAE51E391798EEE3E80D9DA51B1F5E7F7E9925E31B3424D4B8BC056BBD534984BD9B8D746C1800A4C8C647055A0DE10D587F66DBDA32D5E8EAF654E12C2E333311F4DDFA65DC8B61E413EDA36A71E7B6110CAFAC612E3E67F97823AC6D6AED2DC26C28A403BBCA3435C3FB7971E9A564832FF08D9D387798ADEEAA19C84EA3105EEE9257AC0587E91F2CA3AB00BAB6D6C7EC825EE6AF47BF5B6F6AD18A92C9E465A7892D5DFD4B654D2973AAAD8001ACFC1DE02048702398DF710A00EB56EA652E5BBA68FB0D44399AB8A65090F19556E5626735EE984D75D6C088333D59C171504A57187D6235449DBC3F67808F284D5400681519022C33FB272A233E9EFAD5D5A9DD14965D4F6C75CF136C803CA3B929414B1B29EDB53F00CFCEF86DB4F0C1512D4B734D8F5C5A0906A7708DE6359942925FE084E20CF1C7674FEDFE4775707A713C702CE4E87755EA87E38D114AB27BEC0234C59554B5FBA3A1C5FA644F2EE53A7F5A3BDCCE31A358933C39B527DEE9A6B13A3E53D1F2B238AE3D8A6FD8E32F1B23DAE7CA267896578F46BE8B69D5130B3B64C1EA82BD4445555CCC8D8C82839F55A28A7FC4B2F384E51CA45D81C33BA4D13E8C03F4B604874305D73861A4BBE46CCD92B9807AB6223C634AA47683FF1C64C89BCEC941D4BBFED885B46B1D6801E39931F183366C54D73D83655895D321F9F0E05BCCD097059206AF8C5A9D054A1B2BED399E780DB66D502014608F6D4C6B9A14DCD688554EFA8D7F2FC0737E4E6A6C452DDD56352A8CF9D68763C077C0C1C3D6CA8DADDA97A4265D14823F7E02A4483BC8446F5E8F38C3A65A16FA152620B61FFCA58DD1A03FCE8732DE541E5E8A41FC87E1FCA5CA779762C795AF54996144F5F186121F7B3854FE184DA1E870DCA590564265135BF508B4CBAA3F01A38780E5BA1C5D8666A2CE8BF08E5BC37A6C14DCE265FB34AF4C91CA251CD6447ACCA150D05B25BA9C9DDC2F597C8D4B0D42DB8F3988E4A1991FFAE782BABAE8EA35A981C0AC8F8A9AFAA35B0E8DB6D19A77FBAABD1A772D0C98151CCAEEAAA924F61818E9D6B3230A629FA7EF8BF44E611E5812F7DE9470FFA0D0FB9916ADD4348282DEFEDAB18C6AE1B5DFCE60D218A8996ECDDC6138478B29F1588ECD61A184FA754C9789DCD73BC1DF740F437DF5F1B361E2AC30928EEF981516AFFBBC84D27BD1ABD686D1351BD5ABA66E51956D0957EB2074C5F64C7273311F5EF4154E83B1C773266D8ACED067119C4592AC1DCD83087C2DB8199BA3DEEBE8D06A555B642D686CB0F0DD3CA419BC2D320B440317FFB83C801DB9D655AC9551F10922392F1BD2A7A10B353267B2BE5B8178E6B7889A33771F86276E6DAB4B9E23C5636217774935F6E81155806CCF27146063265FA41ED7303D15E633A518E3E329C40BFA2C5B33563D44B9C994130A91A5941FF5A10EAA8A5FE2CD4FE65E8E8E1556064A55FC2CE634031B2D1759C1C252686167FC62400C0D43F4A0999B39D1D5F9EDAB9FCEE3756BC4F100BB5D99B413A3A5A7A10D9BB6EC24FD7B4DE0216DE49A0E99761E066F7FCA3E57C46F3F924AD3D83219C284520C6CB87E4289332A867E6D4535F7635E337E367E090C0BEE7F6DC55C0F4705EBE271BDCBEBBFD886BCF440EDE1F1A926C8B49056309B9C38099817FF47B67C741ADF94D205818CD5AC4E30E92D029483909939354AB884B8BCC0993871E9718A75DFFFC74395B532A58983B500735BC21B42B5F41E8F864AC5FCD0977D31EFCD46C93D2A4EDC9466F1B88FFEF31523001CE48D8F355B2BDE8A0A8438E9AF5FF1C1BC9FC1754260FFC0AD445193B822E7FE834E9627551D1B7ED85A415293EE84EF32C05DC95473A554034710B4A9DA4C7B3F15FECBC036634F62D6943162B9C583897864E59CE6F46F213B0EA52186A8A921C8B1EDB7C4BFFC78BF8F81BB9FDB01E4A7E246AB638B2E38B8304C424757E029E43DF9CD565B380CFC3898ACA1DD611045BD9EBEC8F177A8022199D0A7D13EC45DC0B47AE6446BE3AF3FCBDE28D0DC17365CDB51FA5329F101272C1C621C9B8187683A02831A901309F7790ADAA612322CF101D2820C4B916D2585181D54F1F36A85E3895C19FB751B46C7972BDAE3C044E0BBD0FFCFB0E047EE870F21C9E55F66AA6BCF8680F5ECC44BAEB2FC47990A9077AE267FFB931B4DCC6D7122DFADAD09EA3A0C16AF776F44F0AF34047C9A780F3B520A8E750230D5063FDFC9BF12FD6EAD401F43601BCC7F39E89FD7D5E9EC1A18B9011E4D789FD52E782C10FBF3263FB1CAD089305FBACDE0AB54DA1A6F332BBBD2160632D7AC1BC02486CB5CB506DB994C5F5824813B878784571BD807C450CF1ED665980B5AA8FC9928E2BA5F7457691AD5BAB068DE186B477D48E5D1B1CA9524457069D854689ADC65E63E107A5C55AAEF32B582FE54F0B93A85F0DFC1C267798F52166DD123FAB23AA37B36092D3F6CE83BE0B858CEE4C5B0E13562E68C1D259FCACD70F0CCF12E488A3F223BC334CE2ED27DA4A0F8B83154BBFE9F13E4F119193F67F9CBB7A9714834A884A4957B1168D1E1F46742DC29BB4F034EAB05EBAC5D4AFE97D7071C95A6C055A02AC93EB776E28447EB420D12CDF741FC2782257F20E4430D561BE142732D2A5A07070351CE3D94CCCC38CA05A3B897B38A4B1361AC326E0471866927E3B6123D75DB1F5D1B6F246771A21266B87C838592437274AAA30B1535E3FD3542421233E796CBA94DB00652C28C635379A0716AEA232B81825FD25359A10F84AD9A18706CC30F6EC6119C0CF8543ACFB65DB1A10646D0762B400B49288C480357AB76BDCD4958E166EC99FE60AA5334CB63B98D4A88FDCF02E63BC9A08A0BAE8904A5EBDF9FFBE3A3489261A076E3974EB6F862421F6F37283AFD0F95C4B889F3E3031482013DFE95030A0B9632AD80927CDC9C69D78FF1FEFB551BEA23FE2041BE9D41C128CE151FFF0B0DE1AAB55138ACB17AF6F492E24663E0422B21DD2A015EAB86148118B603E4DB82C3F537C0AFAEF1C3C82B483BAC09D714B8420516A5F818A212DA6F1930B407248B6665B55BE534BB32FCC219DFFAD9A7F7A6CC1703EE06340147CA6878CAFF73E3C7106DE30A0BE3EFD47261CBE2F070C3C685355AC254508F6207BA17A89280FE34639833E29B6B67A746E0DB51CED4388D550AC45A5A7762FE227869F0356252EBA4C0622D2B0E8629AC3D2BF93B07325DFA7FC733C147849045F8F10229B9481833A8B971AF90F9C1C9E27058FA600C8EE798C5B24F5EC4370F3F71E5D7375B3C31DF75579CD24CCB5A7CE967062F19345B9C2C2256D93625C5D2D7209315F9E358DC4BEB66160A8FA507567B3DBB57536F1C9C507DFBBDC3D963E6BD121633EB693AE100F0C64B051D830DEEE49F6B27DD39AA60FE7A58A5709C80980C93D33ACF90ACEF63A98362133AFAED928FC3EB793647EEAB531A76DEDF92FCA9AF51CF0AD1392576F203637782391C3025D117004E920FEC8047A4F38BD84BB1AA7F88CB97755F3116CE5E9F6A43919AD03C1B5FA03C76B92004AD4FF5E2A0B60B0152DDE9EEC3F49A40C1CBDBF66EEF501EB2277BE837B55086E8EC8AA17E5E93A08414E5CEAD55C5F2EC61150D2E80B53EF2B30190201C3829DB22E0317D73DB9E2CEEA0F1FAB7987B49E5CD6D40EBC44BE29E5C21F9C6476F02E285DFF3411DF54AE6686EEB06A17DEDD6A14279D75334BCEAECF6BBAE9CC424E277788953475AEB85C963B6B5542637E852D015910B847534A519CFC32D52169510940A98E310293DF5665A9EB50B630301A703DD66B7CE29E641390DC9615F0DA4B21E7AC862145E3D814E7817C6B9339F4C2161A8DCE38246532ACA149B0F4009A17BF57484AEF01E645A850C35B267F87726155A4E50C3B0C3EC1D9CB70288B81EE909C1C6481A61401BD72C146D133AB4F39B156CD7903C1C42E115E9C5203037C808BD295190FD830FF52EEC38F483A86D33B8FECB35E69BE2380296DB47C281C7140CC128F24D366E08106B6E18E6596B9FA2DA0D7C5500A05DBAA0C671065C069B7A80127C6831988D52D54E74329224C0D1AF05E482ED4FBBBCD151382AC76E083C0034671A4E268BBADA4583A16C3C57DB5944B762B9982C571293D7F367FDEE695858694DF4BB1ACE9681B9FC346A50372C582171A4AF21CEED3C3DC4BC05AC712FB54DF5652EDF278BBD930EAA537516A6AE928216E8A2CDD3F5477B7C100C82E82FAEC0BBEA7AEF0B72E195C35A44216C939D3F93B323344D1A9C173F501E67BDBBEE0A1EA4A6CB25527C6E4A4AA10330C6CA3C4E2ABB29EF0CD6495A7D1F18FC4E184AB0138C55F58EE0B552ED4B4AAECB28AB5E1CC4FFC422917E243C440FADB3DD7BBA57F79554AD8BDA842AB063B025F5E50D42E69E5C684DE7C79850BDDDEE9EFBC6BD9C192EA36BECCED2394A4AE80C99EC9B009467B4E800789E8B47FC3641E3487FF87E2B457C41477583D580BB31F18D435619DFCF2B120476718A1CD9960D5448556D1B2623BED9C8827AAC80F32B4934A768F89217A3DC055A807F57BCD3B6AEF544E49D23BF85ABB2031EC08E44F09A3B24E4E4CE01CAE7593504742D31C0B69DDD41BA88727A80869623B2CAFC07B7FEA769AD6DB847C5FFBF83A9135CC1969941AD2A782AD53550CFF43B4DAC2BD3A84C1A663BBF18434F6780A62B214EA056223468C987C1883B80126A347F0793D0CFD3F5396B7266C528CBF4E92474900823B9AE4DAEB76731EE262D684627DC8F839EECED8A0313F6439AAC39D45901300ABA223A7A68309E172EF68851B6F6D87CC2A3C34064F90B5E8A643C8CA2B2F12BBDECD783BBA1A42667DCED2DA7546D2A60525DC13209A1520D61D84EED3455C90F1D36E21D52A210FECA5F50626F24F4F23C1D035A7A1A1FD3A1866E337D4814214267A09C3D4C8BB3B65AFFBD62E1EBC63C182EFEB487A03399B54ACC75C2F574036E13FC1CA59DB02E731D1809F3CABCE79CFF8E3B0CE768240F0E8CE9FF939E4B1A6365664FA238A2B4C4C59B2FCEB1291C549BC9ABD6241D2D9C1C09CAB914737AA5CEA6BD1810DB78052DCD299EEB942A1734FBF02F853EEC0EE8608BF8AB26E73803C83FC4B2BD929C7719F6BF954D1E7C03B05F4F4BA4A6690194884682DF69931B83B3329DDDD044BD3C3C36FABC9898C57D3CAE8DBFF978632F74618856560EDBDDFC5C1634BFDBD760128B422B6C3FE9EE339CFBAB2C866D8E21292FF1B1675063A2B3BD3FA2B3E0E04ED9832582F5515AF2EE3883D55FB60A1F5284E22685EDCB5AF06EE0CD9712B372F38F1F42E5DB5AF73EB73A7B35FE72D8366C232E89D19F3430FD313C4E64190E98B0FE3A2FED197C64A2F0401C61D8B3624F4EEBC57CE06AA9A9C2805F46DD3408491BD1D7AB84C2DDCF5DA974B2068488AE47A9F07ED4385D8A621A69BCC42ADF231AF58032B8A905FABBE984CCEFD20CB37230AE9012BE8E990CA41D0EBC56994F2F4C216D4AC5F199ED0192910E15539B07CFA88C80D1F9B0E5880522F4837C25D4A33FD6693CDCA2BDBDBB7D46B9D8C537E382B549903534CC577FBE9D2FBC52DDC0EB017C21ADAA911578E0CBDBC8FA2043BDEB19CBF070E4DE8527B5ED5B7E5005F73C09B2279ECF72E1EC79A492070717FCC5768F673007735DFB1DE31442656FB3A2EFFE5390338ECC499C043E346A4DBA66B7EDE932FFD84982C6E87477C9C7843343C7E9E3F40537D461EF019ACC1EA840729C5B9AF95E715E58A9EBA0B5D5EF53FB8CC9D91F8016FD84A30A813CAC93DCFD90438CE6551F530418CA4EEB3394284794F9DC9FB1E55CAAE838D5A0C2E786EE97DFEA0826C013A0A5AD5CB45786E50B55988926CA737FA1492D6FF4FB6DBFCE31902845F99D14037F8800B4FD69401D86BC55508E470D0EDD1ADE2E0AD0107D8180396BA60468D4568B475C705375EF9C876286EFBBBC7AA2ACF14D47E1891486583448A98EBBBFA3DD28BAFAEFBC143DC294E4DF591F40CB6D461FE1CCBC3CB7C035E58EC55BDA4775EBF54EB931682746486E8482D66A81824EFE711ACB175698CF322A862B4748BF30A7FD7B77952A40A24492FCED8A5E5753843A42942A17ADD7ED20E5A361F1507C3DABE639046EFE39B6B9B33D252B140142EE927CE5E604B61C8156D4D3249712471E85A059529C7D6101E2D5CED0BF222EDD152AD19C307118AC0086653521EA59D6728CB4F64D6A0AEB2C3DDAB25909FEF00778D7003A85E41AAEE2174EC09FEA182E84A95E5BF99135ADD9A09419A8289C446AF84A690F56A09A84EBB1CED5515C36F27AB36065F8774F02A5CFE926BD4891985D68CFD7AD774D42774E7D35BD18745DE29942902818A35E1689C4D58445E26871A176C150FA8EB3ECF9BB19DE8A07FF884C9F7F084ABA006A049FD3B35074D85BDA9A615D5C32430507A52AC59FFF274B4E1CA95D4E35208026AB554031EB10E8D0EA1719ACDE43012A2AAA1F71550220B035B6A8E3664A70959639CC4EC34BA4EA5FBDFEFA6CC7540BB7145691883AA61465DFA97CD1B0B290B6AC144B55EBBF49D1C2B6ABDF8794929B68C055789F3E9C32180B57AFB974607AF82584F6DA9923AB74EAC0F60991A8C3BE4416A5BB623F79B3C763CEF31225D1269A95C6238C883492A12921ECB6A23E60E2F8CB94D824DDECC35F0FD59D0CEB1B2CFE5E6CBD507826AE3C493BB5168BC7BB247E4B2506E590D8C3FDC65A218FE065BC9359915D76AAE46948ED4831B9AED8721C33C4B51F114E46661FBCBA022556F48E0B850B9F943106625A3ED6B8C6C2702172AE2349F25580EA161F4477C690CBBFD330168DE3F23AFA97CCA21F7213AB79EB21F89BE7A498AAEF4F1CBF32C677CBA5B7E1B074AD2A4B6163F2FB4472469BC846E68F72AC1A4ED3B061B2FFB6EEF424B6DD4CC2E4C147D2D4F1900CD2284FF208634772392F7C9530112679F8D0F0E01ED42F8364966DEADB181BA0420CA68D1732B8C31799B4E6718230FC7BE2CBD0C676FD67F3078253D252D15E598805A8051BA2112A92AA32EB49931A71EB08F262E83719E77F81989E0DC60535DE3A805D31A6C57972371AB97550CB2CA44BCEE98165F9F82D8844280F41EF6FEEC5706AADF9DC82C02C818630646D2F215BFA00A581AC86553C310CB92B3ADD048CA0434E40F01E534FE092775F4BA9C0DECDEA7CD8F1B649AE1A6B414A1EA06A230978A18AE056634AFEFC779FC9B9ED5FA79E0B91231D30D0E30A09E5F42218D09FCB91CAE761EE9080555F95F1DF5023607BFAD4C794969E7B6E8B6D3CFCEE5FF09FDD35A70965F64766816FBD75B4DF79A9D84C0738D449F8A579C60649618BE2D931427CC300BD880B111D076A2D48DF501CACCD8A14502F2A2E39805E9A556D1A0EABCAC1E41ED5CFF55A311F188A0247ED97689CFF37F903D0874BE22A2A303877BCE5C183266F42578B6344F8192BCA68FA8AF6903B0C6AED13CAE2E0B9AF5CC864F86A099AB50BF473694478C97BDB711D176644423FB26ED049022AEC39CC70CFF06FDBDCD26378D3D57B1719E4D22155B046C8ACFE2294147910CB453309A3B3BBA2427DE3861C949FEF2B00F2B7847E182F3AF811E2F7907B9626CA96BE4446D5F4BDCC1A015A06C856C5758144EB0377DB77127ACEA86D7CD6EFEC90391C479B50478CE282463F42CC189BEED05C90B5EE8FBD3CA1EBEAE55FCA78F1E4DDE0E07696962EED3ABAAEEE4037ED1E114D312DA8D12092A6821C3C4F3EAE8D10E79CC7FD8729D4901228D6322495226319D5E60C818293DB5B2C1B9C390BC240DA061C1DF572F4783DFF4AC33F25192049C8DA52A72D09AB33E34850FA56917ECBB9E4463D0B41D1C263853362D35A08BB2A2D63C83F1C1F865CEDF37866830E38D6628EBD88ADA5EBA549BF0D3B0C48FFDD41898881A24C79D93F70D83CF2EA57393B4144095927C572FA9046FD1B427107C7079E3F3AFCD377C2E8EC50902F10E844EB86C9A549622D49EE4B5DA374A2A6A863F416F3551A51519E51ABCE4032B99E5652556BEEEB47B52A395F36676F8A1FFDE27FC0946451F76D783581D89D0D0B392DF9E4EE80841D7F11320FCA3C2DB0F68110607A91F86151100D7904BCA2326F36F97813A796A2BA49799B23B270FF16CA4F83AE605643C4AC0BD24F9F6B01F34E7CE8B27090A3FDFED4312CB78C1A55047522302D00698FB08E3F116B8F19EE18A40B5109550081B28C1D12D4F167BA8C61B69BF9C48C1DB08194F07FE2A7308A77F187EBEE2A99DCA8087A05DE50D3267B64A5788D32D8068C1AEC20017C2DD521192D6E8EED03B1D3DE5029DC04994390E5231E496914D0CF7FC46526EAC7255C1EEC85987906F20B98A1C7488426FE47EF688D59CEF1C8F194E95F54AA17C0C11479290A807702DFD55670B861EB4111FAFB1DA5E9E62932685F6545D791EB48813693F5315FEFD4BED551D1D506FE3BB57CD9FF8D20646505040932C00556534D607BFA219743F4A26D361AF22BCA9A963E84073ECA03AD98ED1210A2CCD438B587B3CC2B9E221EFA61B41DE572FF4D9A064343120E2F7B177AFF5D04D6E5193F36C762BC93B4689A8EB28824E28019068DF04128F86348FB1AF2BEEBDBD65B0B53DAE649A89A1EE78C1479B733A1A8118062F22950AF3AF6E7C509F4E3AC10969996313E22E05D25081FD94F226641B92669EC311DE84053559875B8A9574BF09502DD922413BCA24FDAFA18C40A32A9A8125B64C0D4BDB03070A786582D09DF6C93932EFD25F824BE834E31F953CD5FDCA932983B03F8CF7087E5246CE301FD5A96BC744A2DF62422D1DECF6E951D77F0E0591C35BE4B51F19997CE4C6941BF09D981467977DED376DC1E9F34F7F491C69B2E4463B5314EF2CE3F64C7D8A2EC4A1D719A2EB154036B276E06E43ED9D693CF39A4577EBB436287A2DA82EC31A758F6486776D5CD3AD5631BCDA6C34419AF7245E436E0A853623CDB7FC109EE8C401138D78E09DAC49E21A46869F2947B2E36B8E88E38C2C874E7CFBD1ABD1B959D3EE669E963A16CC2D2BE6AFC280D1D6057DD92F98A67876C5BC5E1525D8FDB5CBF741CFA9D1CA399B4D746DDC107C92D320D8000C8FBB3A89D40DAE283A5217A2C2AD6F6D1A2B2D6AFCD3ED17CDBAA3A800781A7ADF1E544E9063944DB349C40A183BCCAAD3E0CB05F1AED89D6111E1DCA10202E105C887921420A8BA30AED75046B14A8ABEA18A6B372456BFA1F6AD405ADB41D3F146114F4AE35FF5C0E63AF1514B9931CA33C6B7AED3BAE28308E9F96A2C76D0F050344981CA0C3B07D991D7A0D1170869BFEC005B762CBFF097724B63BD5EE9BCCDFB72090C39EBA10DE021E7344F5FE286100F7894733A5FF521CDC42458569635095C811838BA6743B653E33623124DEDCA65AA3CA63EF481BF565B84DC3CB34FF7EEAFCA1FF783D2597BDC57A7BEC3A25D81582AD82CD5610118D9557972B77CD8D8F331BEE76B1B35F2A04BD0E94E9EAC5A0CDAF05AE0B4C558B691C3E8B2433F5638400FF4ACE14CD5BACEA1FF8624E9F1DFE4272A1EC2C3AAF8EBDD5E200FA19E250C1DF8E0A4F9FD4ADA354DBAC55DFCCDC0D1EE7B2E6FC264B9851F021B401F3A783BF474B9584342467606DA1622C24409122ABC3D19E78431F10F2E7FA4EC2AB24554EF9DF5FAD9DB4F9DC89B4CBC9B6F7123A32238D082EE02B3C26CE8A8A53A7A62C69DA00D2D0351C38FB30529A37D2A1B9385197BED0C7B0F69BDE5371BDEBBB74A5B4C08560967DA3D3608ABA23246C64BC47F3FD96633202D1391D3AF00635F2CC3073D3E9724E6B419ABD90A8203FFE8DFD37653288E9D876A507995C730B2FBC9070764E4861227CEDE2F218AD26E6A6D1F27E19090CE80F285254AAF7BB525130A08CBA7E7A5703DC76986D6E89F1B1599755A0C63420FE7941545484D4A991751D97CB0B7040DC5CAE4BADCA4900C7766336EB0E5878FD49BC69144DFDD1F69191708F2CBC9C09BE79308E0279239CD1BABD259D368B8A4D01E7365BE8BBC4607E4EEB635275303A79BCC8AD59B3F6634AB3ACF23A3E56DB0180DBC37BBF54A70E8638F4C5954FA8D01E0AEDA2F9A499A389E96A898FEA51D4C74DD1AF4EE45BB0DF1B0A273057D6CBB366703A416538406862D1275E32249B94D4255AC177056CA4D06AA983ACCE5645B9A86D4FEEE7BAC4F00CC532AC4BA63EE0E2B03C364906ECAD7E803361DACD412E70DC56B239A662478D6082C099A1A6E7A33AC260AE08F91BDC66DDC272B318C9FA6320FA92B1CA9B9B79316D12F3BEBA9D5822E397823B965B081E030763ECB8CDF7600777D287C45C7BFA6A902B39678F7ED6BBEF5CA6E75A08B3F6F84A4D3B63209E08417420785D7CE1B2EFBD061E5F7DEA8B0FD08C53FDAEBFBDABCCE12162F8505663FAF62CE21E41659017D853F99E96005D40B350DC986404AA1477710E85453047DB7B36956E25B645B1A24962924E2F10502AD948C3844392C26BC1A268E7C73C0941F1EE50CBD964AF8ED11B93294807B3782551E7783D35F4D0ED4E03B32A0ABF858D958E20E9611EED2CE938A578108127A4981F11BDACBB9426E5EE16B5B00E5BEFDD6BA3822EF25D25F6DDF7768A3E76B12F527FF4BDAD7F832F2FBEE21EAA91EA396017BFCB60AFE3274D36D3C69D7220C0386686DDCAC9C8827EED78064AA54F739C060ED457C3B7C6AB24234936BC91543B520A489042952B1289C43627B88837378745B0399B7EE5AC5F7EB8DE47B27E1A33FBCA0DB865417EA9BB2F85812FF3225915956AB675D9ADC1F78024C4932557A014684689E8631AFEA190B62F3805A991B4F143A2A2440234C6BCF1DBAA104856585F7145CF91E96324FD214D444CBAE38D01AEFFE5BB742E2B5E891EF444FF48AADA19B40D15AEB4300EE76738E006B0B3BF90FD39CB69BB59340587A7C6AF9CB8B682AE1DB2EA65916A0550AB4F6F1CB16935E82A442E9D3BC4515206AA108990203EB02CFDC71090C3834B8A021E2581EDA1713431D6CBCEC20CEA273A452255A0E67C6ACE60E87541AAA3C480BC3C5A1E701ABC5D4ADF018FDF40367283C145A26F58701C24A0D195A21AFEDFF1601A809215074D6A8175AB13776F85E18159457E6C29188FD87F53B2DA397CE4D1E9C8A8AE59133E3EB1FF2FFBEA25A356865537606F77B7DF4B50CF82DD222E74F83813E25F176C26F2F320D0F4968A50F274EBD8907E29FBCB133DBA213798A049A20E0A72416A7CA36D091E36E4238D4EAA203407EC0AA8010789A39FD348F3862EE60C44B0E19AC4BF4E9586D2B3C1FFA4D29E77DC28CBDDF601D36EDD1689FD3081EF79AACECD2DD22E789BFCCBCDEE1475356700AA8C9DF4B92DC752D882CD7353CDE6C34FFF85D59623DCC1284F1767DE50B60B7BC436B68884A379B4D938C899DBE43AA4CAFCD73F8AF837D94BD6E5396A01A131BE7549B177A2A9652E2E466776519B9AB1BCFEB78C7D0559420C116685B82A63497D2C7A3F9025212FC16AF208A44615E7236687F940843663016501CACDA82FAB86D3997431508423B70ED44AC6EF62036DC8B42737DF1CD7EDC184ADCB63EFC4A4DF9C7F071AC2B6873E3045985C4BE040FBAE17A8B408F5B4AF190313FA0ECFE2BCE041E52D5817E78849B2B91928AFEF84189839576567F01D376360A05C78DF64C322AC1923EE34FD0BBEC9D604CEAF270D5E2B0E49949C02F80C674A2C9D3A861ADDB47AA0AC1E7246184BE0F737411F341D93F556EB753B7FB5B4D12230878849B8C7937CA71AAF308E3DC7E5A3DDF31F4BFD12CB9E44BFEC1DE3BFCAE8AB2FAF5B5F8A9A801FB0619967404C6649FDF94A2F11DF2AE6D836EC1A199D43FEAF6C1399E1C83DEBDC40B92B487CF649DEA37A2CD744E77A2A07B70EFA4CA98E920CCDFC5DF524E4F8DBE23BEF6F378E6A4518F19AD03F449E28FD440F6EE85113F9829B3726A0A18EBA7AE555478D1A450F43E488456A2904F87DF43AC1B58197841D72C66B27AEFBEFEE55257F067529BB28CDDA2085BE7A9C0F70BBC4CA30E7F43A870B45C7BA77A471035BAD3518CD9B6010869A7AA36B473078A69DBC9B127F8FB5EE590FDC6C1D825BA275915B53FF3CAB51F1536A8B2FE189A1D8509CB2B2CE6E15F0C76702F463F44A039E88B259644893055B18008BF842C8D78AD899604E55D28FCB834CDAD7432B5B78D3ACEBE77AAE28FF0847C6F32CEA39F17C2A6F8B2CDD88622C9C5EBC679189511C26B2EE887D2AE02667938B94A00F0DC152C1A547C10DA2ED37D4BF185F1618F82B667382766A015D2A2E65442261A8ADD103D3E514D03847E19152E13DFD958B5EF137BA8011F1B279E35C877F9AB8574C384E6FF060AD02AB7BE43A383FA8E7F11D425128186549EB90C3B358537D4D860F352A1216415A6D2022FAD7DC02E077C5E43538C24515DC11A6F37848CDE52B6F700032854F002364782EF850D75A451E5A67D26D20E727122870DA868990FA41E3E8FB842D77714FE6B97FE660CBBEF73077FF91D1BDA71A4D505ED2EFC550AAF092C3C8C0B2CB443EE479CC9981E312A77A465A82AE764476EB5CF25441F9B6F473C7376DD9189A3D11D46FD9430349F15C091E317287D0F782F62BC2CC08EAECE183B5298FD191EA11CBFDBD5B667B48E8058C47F07B6072193EA2744B1801CDF2DAAFBBD3795A059CE4CFE2CBE7DA0C1692584AFA4C0B99BFFBAB3595F0D6E1D31700A8AF8714D080D6DE3E2B56AA09C33E91DDC5253DCAE2CAD8C43E34DCFC90BCDEDC69C0FC2C7ABBEEFA27F0F3D0FADBB527CED10FF9540F5B0CCFC2059CF01E00DC979E373B0621541D185C9D5706330611DED7B7158BD278F6ABC4CD3E1F1C29FD3E35C5FE6AA86DD1168BDD79F84F072945FF220E6D28D6CA5C13F904B3150F69417A1ED7C0CEA4AA9F824B6E00184B766E543520C58D35AEBB35928D3861BED42FF2BF1C80BBE00F05EC63030783EE58AD3E034FA08388BF97209378863E3AC6FD3192FC2D0FAD55F1A35BD05599AD683E0202CCBBF22F8D144AEE2CCA539B65F67BE5F214AEA6CCD60619B831BC03123EF330F508C62AE1A0FC09EA74E2D3A3B4522CF5DD9257398BC9723CAD386F8BFE6DBCC14B7A448A8C78B6B188F9B435F05E36F3C3133E22425945DAFCF939F531DEC0D2727CFC10DEEED9DAB9BA4258E2E5A45930F374A09AF2E40DB80236D37614B1B1FCD7763C00868867928DBCE21F4230FB34AE59141C5FAF5F51E53A6E1C41007E6FD92CFF49D0B30156C995A9DB26A230C84AD871494461849797A135916197A40DE7BDC123FE6324D10CDC453AF496B160CC632CF0BBBCB4A45943312BA8A0E8736AEBCE85595D835E9837166D761B53E8ABD5D535570D30C0E383F8B3AAC405D6C929E6D03E9DA6008CF118D51A00C554CDD9EDFA38D7719FF26281FB0936629B088991C43B8D77579E36247151EFAA44C53BCAB63985332B74D54E3D3AB803F5DC4B22EDF758D1E163F820C87F0AB756208DAB6F597BBB18F60186A3A0E109CB0C7CD17D9458883BD9335E309D780290712A6D225CCAB883428CB0340224412B181EC48AB8F233C0AFBA5B5F99DCBAF86E683602FAD5FE4A76BDFF1E5B8A672183D87BE6171C01F7EBB4F5D6E6390DD4EDFAFB8AA5F6D317EADC059CF29934D742D9F34E36A5C75D60E4FF8F58DEAD5F35580C33A338E936B8D05FB1E41C4871F6CEC22AD881D72154FF29811360686D028613BAD6CC89BE1635F747863204C152B14C88F27A382941438F4D06433D87FD7ACB1492AACC372E091E51FCB239BADB528C856D2199F700E2216516D1A1A5D1686A018D9DA40EB8CFE9BFA53CF2849BF576B0B6A378C8AF003DF0CA8C182163F1B10A4EA3F5EE45E9383EB0E4EB95E7E8D9035BCBD78E95A45A0F5C54315A888BDA3852CC2DACC1DD34748FD2F469C7A9E9B0C57348C9FF0F2F3FBD1105011A2440DEAE7F35FD34ADE49D87E449F652A745D241C6FB4D9D1AA1A6B28A20571CAB6DABDC2EC9F457EBEB630A797906F41893214E2AEC231C0769347BF02338AD4022E0A69CE581CBCA7B5B9E9653BCE4DD31FAA7F792F39C3AA79997EC58572FA1FEC125C0459D8ABCF134C1F15D5420D26C414E986A57E422FF69E24322F837C3E9279AC25D703958FF0F1C7D6C613B20945175570DB91A117DFE01A09924D4343B4722BBD7A6A3DFC0128CA1A7B7D30E6BF710C70F4344D83947EFA71977ECB7511A527EE31A89C64D17FCD12502BEBD5ED5E6B1797A8DEBB8BA10F3389BBCCDCACFB4CF0008880A1663131D1B5BDFB695865EF6F37C4B5CEAEE752657341FDD998B4C552B37E5F9F25A8CDFAF4A6712D429802F6881700EC3374B9FF167F41A1274CE452D85F24FEE421ECB5B758D52359F82C0CCE42BE3E464696B4628EB4ACBA7EE6119914D8FA98257465F18C4CF36EF4988644C6E5835216E520E0CFFBF8E67C53EA85FA56373E48D17E9731938856CEBBAD3436BCC7649985ED28192A3C21257187C8AF8D91C2264A913EFEB30BAA5E85AD2FD84E1875850624D014A9291D286C157B21EC53555431AC5C9EF4F75FF1AAF6F6AB43A1E3EBD4213E79B3C093612DE626C5313328EC0A8C7989DA89182E9575F78CA4188F19ABD7E9AADB559C8620EAA40162C710CD52453461B747172BD6A7A73F1B1CC2073993A968DB1C85BDB3841D5BF3B9FBF3CCC4E5C4E58C92974F2D20BFA8BC710A919B552C40E4685274399AB248DC783FDBBDACF1065D870C49ED2D9CDA2DFC77DDCEDA69D68912478A7918F89C55878A7BEA2806E83CAB29FFCB16030BCCD630896E3F8D3DB006F0BB5747623C16DE51BAB085F63D2D45D430CDD5E64678EBCDCEC2A4DF196B75892C448E38B2D8A2B374F0C0949EBD1C0B69827752F1CF96EF53084EB9D4C7C2757A03885313B65127F13753FFAE49EFFE2761EAFF1EE73F59D54F1C20DEA2B8B3BA7C089CC7AD7440E48F8065606EA2DB4EC53C33F5F4A8FC06CF1CA11F46999EE86C90EF80DB42464E99885FE41A68E33717D1E785D454D015BA896746E21C22B2DFD640E1D255B482BEC301DC69ABEFD040E6DAA3590E4980BCD82B7E217F4482BADE69A683AD0214C8C9BCC39E049A96F489122D992275252700C9E6E0B757CB1BE3B5F2779FB6C7AF42EC9AE9EF3D01E719D5F81CED307128F7FD28E70589FB1D180BEF69C567BC71FC090F8146FD3EBE50AF9D49EAF35D0316C6D3D127ED06D13E1B02DB62D56CA27C4E3404B35AEE698240DCC3143E2EAE3FAA0748CE29C94887985A4698A39B5822B7ABA9E52CAF35BDF623EE1D41CF09DCC1C389354F74D52E7AA0AF73BF29EEEFEB49E587EAF2CA20F62019981C4FC602D5766722140B574658FB0709D6449D9C3653307E52DDBF9D29F3E0CEE540A5DCE060309FC1401B22583DD8EE22792609671C786ED38EEDED8027A915CDEB3DDAC8D100A7095F7D256084783B9D373056D66FF5DB146046A048A2C42AD2C7EC693663947DD6B1AE39E99B2A7BEF62F2597D17C4EB3F08A9FC62E4120E322B9B08205FF1D546D689233B67345C858F5144E8210F5FC23022E75D57D2414FDF7453FEA22F733082672497E205AD4DDBC4DCD68785EF1191D59A6B82E4CE8F502F5F9FED8581604884810CE20299A2761C09DC1D0AFBD4AF35A5B81D1645C2BF415AD8B8940CB5B9D5BD073F0F473C23C9975B1C1DEA1CB34DAEE92EDD6A9771D9E375A57C45A2974D20DC6E23910F2308BAE357D7980DE5C1C41B34BE44C3D5C8F086F10F100A6FAF0127C5A92A54E9D0EF0BD32A58B756CCE92EFB7908255EE4DBE19810AEA4AF2E07B6DBCCF24F712592395AB31A1957B871FB11A9B4E9B855DF73D54D1D4977310A3B5AE3F1D4CE8E2C2BE5729E5FF16C4FC11E9A0532410B2AD1512F4ECF789DF65D56A0A57E5C60EB71E2DFDE44FF3A4D3E1F4BC3CEFA99E12E364B76745C25801C665C994D01D62B7EC54D6145DE0620AA857D094422672CBE4B9FA8FEDCC4C3115C92C889C2A7EC3F4B89810E43E7E761D88B8745AF43189CDD52D717FECF5041BD17A38D93C2F919B2F789BAEBD4C2DCB0960A9346B8D8A96EA9491B97AF4464A58D316EA31A9039D2306EE751A9F19A87B4E08CAE59E8383D44B81AB08AB87B6CAE4474C717B3FB517C94259C7951858E2ECDDAC97A8EF4D968E21099B761C6B3C9E5F785F6D55891A18B7785BE8E5F4143C5584D0414E4C1463FBF27D2ABFEF26F974994D7A5FB046BB69F1C9EF5012E6AFF2626391BA3A8DDEAAD6637C1BD6280804E411A6B2E27E794CDB22411490FB55FD6632520239E0CBC8448AC71FCA2E157E6429FD0FD525D0C06841DCB4DBA54F1D1B22718DFD7C8B82FB48B962D16D1DFE9A2E82CFFC621E3C07549F7E883B1ED40BEB702D4C08DFAC6902B78169B3E439FBDB67C7DF77BBA5837FC3DF6669EA0BC309373329834DF26DC14D08AF61F1179A25A1CDAF705E20F549A8F664F9F84718843E78BDAB849F48430CFBD841F0C7E5E00B149A36360137F8DF2799D0C3AFA9101851DE039CBB6D33F01D883CD1CB81F3FC3F11C7D86F3731F92563CC163F598E01A52762953296FA68C6307016BEE89FF2B72553EC49752D9DD13FB4DA9B1068A4AC9924F57B175C819EF1314E4CD7E4710EE3E484FB8888B4A739B05A3EC7E5B274371B65D23D63255532DBB989760208337868327C1B04DB4296B79BB36C5DC24CD2B2AEAB4A726540965965F98493D730113124CCCDDAC1A0655698D36BA3E85539301B7950E99C70C85024644DD30D84D48D18C09E4B09D0E057392B1202E4163617404CA460F9AD8AD99DF9CC2F82DA706C30ECC3289E44C852179E83DF86D990067E43EA7857FDB67C08F16E7FD4FC83111CB00644B94BD0DCED45518302E10A40B2A73F3FE678A55F12F3C241E625A0E5629FF5C2DB2E1DA3CA73DD77FB097ED8BFD134332B134D0090D52BF664AE3E63B44FD9E3C2B3CA5ADD70CE8BA6C17330122C14B7298D475CDC0FCC31B075D3170E55729504BCCC2F4C552A656FFBEC3950DBC378EB8F8EC5B51EE8C44FE31CEE80C058B75A7929ADA02BE4D6E5370B93F25F66A97970586B176B26EA84DF0E8BE9704CD7E1348756D81FB3837398045A76C6D24A420654456689A4AEBB76FB761F7CAB96E2B3ACE24053EB4B1C8BC645645603E4F2085FE701262F30A96785C0D0D1E4884962ED1459805C017C5D655480EB707A4C120DA30C8264D303F7A35D373985DD4089D638E4DB0B06F86A8E804332AB4B3D3FB3CF998B84796A5453B835F134CB29EAD839A92D00CDF0296FA84CED971B08EDBFF3A9CDF3559926E2C934CB3366ECCD1D9E465A5BAF599DE4FFC3CDF3E492472D1A92379F893822D9944BA4658ED67B8EC8145FDDB85EAEFF4BB55A890EE1B99A2335A44A9CA7A7D82D8AE74EC190AEE7B519AC6ABEB47665FF0D80963CC83194FC2F1B5018464AD92CE026A3A6087B10569833F8295CF5D72B1AB908D9EBC8E95D1106AEA00A643228CC0F1DE48CF96BCCFAF7A1F3D03D3047F4C5C2CBD093214552540C93D162BF7BA028B450059F4D9ED08870B926F1BC34F2687C38E926559495385075AACDD782733FFCA1C85DD8E7803E8E69ACE6339A4B05868AD74414DAA9AC99486CBFE2A92F12D375AAB3B00AC2B2A4792422D454A0195B213E660644EFAF893D1F92850C2929EF18A33A06675243A079C4DCCEE31FAFF385C02C2B6A40B3E6C88E1DC2CE925AF024A23267702FD17E3F82DF189203F07A96BB4BBA74EFADC2676F7E3E430F6BFA727907DE4A92D088771D483B39CD3F0B6EF2013F215348DA523C8F77A468F66BB4BBC9CD30731F75FDC254B5891B065DBD3BA4C62AC8B0B7BADA05FD93690FA7CB397CB9D5EA6A5168596F2305218973AACD4A2DBD2D78EE17417167FEB670005C8D1335D8CC61717D519AC28D460E2BAD14DE33F07665651A081CE1AD37201226A2DBF653862A1F3AB947D56406186397722050A6BD7677CBC9804C6B1EAE2F8D0B044907AC0AAFB1E278A2050A78D79DB7EB90B8226DA6CE6F28AE299C9352CB5E385BDD9BFCFDBECC425EFC8F53EB382881E934AC39AF2B3E9832EE61731E9CFD2874585452CEC9A4069952309A4086516E55A62483112B1A42741088596024F6959800C051D0589EA91DBFA0143D678B908FFC267C988172F56376F6996CDBDA3729A0BD42BB48E080736ECE0EB4514B4173C47B399F2136B6E925C4780CBAEEF0E21FDA529D4CB033324C43BE557630AC9F45070ABFD154CCB467E0F954B81CABE519C79248AD3A50EBBD9E0AD003A7EC03588FD0FE0D9CF99B3E9E5D61426DE2390C1FA812A548CD886C8ED017F67EA05C07727676157D6D62D5EE885BF10DB9FC82624E933F3672AC2A5760B96BC7B9D186DBDFA547F152369D1520090924880F5B51A064BB069392023FCB9B2676234FCD1319E94230ED3CA43942FDEB1341D4ACE30BDDE299470C849339D939AEB94432CEBD2A45763B2FC8FA81300CF9B944FBDACBFF329335147DFDB871BE5651F3CCBFDECFCA8706059A394F46849B77E7A46EFCBD6B5E371E5DC8513879EEED56825B61FFF44EE0A53FD9EC58C1E166B0695E8EF9AFE5492DA8122F793AD48BB1F1D25B81CDEF1623270DDA1A2907D1004F2E09F76155DF89913ABD72F1C57FE07A3E695B84B4A6C92B05F67E02AEB945BAD814A4E96C606D1063CE61958B5C07E803F91869A52B06B1D7AF61D30EB960B75BBCED314C195B3DD6F3CEE44EF96DC32D4C75B64541C24A131CAE6C8C2E84FCBB5859F19B3E0D32022F52308C0BEAC61BFB111966BB12B3379D7CF4690460529DCEAE9DE0A157165ECC72799BE78E986435197721FC55311DB9D23888C44D38C35207BC26E15F4141160405E68A5F2BC4245070A54244AA6E7DCA4123F2868D35128D2C6BA505241C7C73D31C96B5920405E572ECEF3E947E42E71C355C9F96C742E50CB3AD3E28B7F662292AEF70DFF5286520CC01CD1B7A23D8A2FA445B80C76F4FF652B3BA1EED7227A736BD9F41062EC81B41A0EEE4782DB10A9F67A515BDF142F7159F65E96F33FAFE61577627F5381F34F489986B0A78E945A697EC70D77D0D00621267C8682E5D4059102D7D08CAAD192A6F1E0F1CFAD780BA301C0451A813E011B2E03CE5D2094B049A61B254CAC6E42990132D7BD3E98A80A5613EF21D01A94227FADCEB029CA0A68EC8F17DABBDBE086FDD49CEE03F87A949DCE6F28F677BAB99506450271617519D3AF66B04859C96CB43601961950D1A813B3E357A5F081252192C5C345540EEACCF40E96FB44C524547F275B9705B235E00EC2E80F749DD28CEFAD9AAA9A5FE8F3CF6EC8B81C4AD9941C01AC3C598427A0161D494495AA6A21BE0668608CF4C87634AC91449AF34925A4BBB06B2884391714B74DC3C3BF5E280F3CBCE125AE562B8B378933883086497558A058D15690B66BA8DCE64679B4DBC855D33CD743A728B5251C0AF3098176DC587117853336A14E2A639C34B2099E042AB8F71F0883FD0AC27028B6F4C92DA6B5A19F275AA8CD7B6B6E54A9D0BE42C81C4A6B6BDCEF479FDC3CFDB1E7F967EBD0364D7E74EE015FB5A5E0BF25E54EAE6E431A45C132D6DCD83E5DACD8058D574CC849D6CA1F1AD6398928404163ED36411539526E90F5C9EC5F7054DDDE8AD75D749E6CD30D3EDB55E5B42CFB0FCDE33DD8B6E063D5160B6321157CED20E8AA988CE9D692696239FE02FF92F228004C15E2EC2771457C9522ADE3B1A7CDD877C38CC327AF58C733EC9740C93638A7BAAF0D10470ACE536C790A560239A9577744AA15B85902CC206F32A9D380A713F8F31AC1DA67F430853D876B8F9A4C4D50480BE080A4B17EDDD46965A066934696F4AA97177091E9F399746715420458FD7FE43DEBEC8EFE496A7F0AF0749280FF2401E749A47ACDD6CA007C3B57E9B40FF0616687DEF25ECEF02430ACEB0DA652E3FA97BD0BFAFC14C8A4A3C9316DE2DEFE23C5013724D9A268CD2B20F79DFD4671B0C831B156997ECAAE5CA041344876889860C030E16FA3C3F068CDA28DBB08680A0130B6407A0CF3E436E3EC8093445CF0C79D70573395518BA160141C72AA6B950149A0BBFE590CC16CDBFA650E846C9787A9FFB4EA5B5C95AE3165C8CF936D90F7B22EED70D25BAEFD42953C852013BBC41453D3D3AD224EF599FA1868073EBDFEF7636C3A0F1491C4518D096E4DA59225D82EAC5875079D3BE29752E6AE2C6C7AF9CA88D867CEF750F975B04D72A03B8436246DF3409860FF5F3A49CBC734F1B5296DE14E44E10681F633F1123DF7CF940B72013C30A97DF28A695353DD69C249BB53192DC27670602C8396409352FE749DB002C8406F0133DA80CE6DA43BB0918775BBD599D13EDF33C1208F59610B71BCC77A06EE7FDE59016FB41F70451DE4E13D087E35E3A654CD8C6F147B9E6B96F3F0BE477C07DF2928EC47618089C9CC0F4355559738EC62F3ADBEF62AA4033F20415FC3E59A449FF4427CBC5C5E3C8AD25ECCBE10CB6441EA9023F062AF8006432E44ED358D3850EF42DC318D69736CB97809A6CF04AFA0A48E2DF3EFBAB7C297BC5312AAE12D296CF10055E7570C0FDD7C51340850599926BFB602E643007AEC6866122BCA79B83407FC9FDB78E93431D4C0377439F2462FFBF0BF18D07D46984C497C1B3F2E7DFCAE7BDF1959853C8158AE32B8DA39F02C29C5084B626E41429370A2A1814C6B6C1419D6B66406A1DD03DB72BDD6331A44CA630432367C7BB6CE5EE352DCA92E2C2BB6791D41327497725EF12825D49C8BA2528AEF1CC2460B471D7E79B0C7458A6856E3D6F3B11415498B775BB3AE156F103682EB2E42B01522A24C2992B3F744C11AE54075583604FB79B46D4F706FC5AECDD0C9A88F7B0A50EB54328EF8E1095B62930E30DDFB1B7868D5124B5E0FCA50869851205C5734A0A38C80163EF4E8D73B56BB5286DFEA89ECFC8DE0CA055CF554A16AF9E8169CAD3ED6A1EBC78717B9E06CD9A35EADB70B887F5E11EC8C5D45C202787E431606D4EC6655E75064E1EC10D39C990874F5E3A302E74CFA13F33B9918406FE4B1865F52E59BE109465FE95E4CF44DA04797AA45206FAD7BB4FFBFD0E802D1356910DC5FC881592A3FBB5382B8F00FB35CCC380B17BF039AD656CB03AC9273CE79987C5116022B5CD22B94AC5A2D3FE5B615F4DF2C18F8869662554E1573A535150682BB3519205D57B2CBE763FC863EB87E1A30F9B8AC044D274A90421B7CA0968F09B1EEE7F4B918368FE765FB3206BD12914A716D0BBAC30808C6A7C92B6AC4253C6C885D9EE0AA65105D20B6492F2DF933E9943B2519BC8840A75E72520DC4F5F65B20A679CA1880EBF33799532F41185B6C542082C931F1FD2FAD5ECDCEC161AF51A4FE6FD1D9571307B6E898F5DFB0D4BA1816798B28BB1FEF939304738E1D887BFFE51C1B30360FB5BAE8E769E6B26D0F7E84BBD11FC628B6DE55CCE61CD8E3DE146AEC0BE8C2B053D3CAD3717E34DC5FD17FB8551E8A024EFFF6173A9281795282872CABF510CD52BD3EC1D8EE5E61D8AFCF01334EA87660ED777AD7AAB4448B24DE0BA6720009C30BE5872ED3DFA5393A88304F03FA10372C1CE1805D69EA52C8D0307304EB4DBAE39B0349069A903D2E7418E92BB8032774548EDA3F3FBEB8B49652910E571D0FBD171CA867EFD980D2F53EFC4A8A49FA7FA12DCBFAD98A31D232C7ED5463EED1EF988F9221374D8D03AEEDF24E3FF1C3FE92B91CF82F31812103F0B0A3B286BB5DABF130919E49B83C224BA11635EADEC5BF9842599CF010CC8C0BA367CF45F124DD80C57C74316631F6B09CEBBBA447BD155307A2509BBCB54BF358ED64421BC64EF4485169DBFC340957C3E69B2756320435970C2F7868AC2FF7D44BE65A4010266862CF39FBB25D4EEE3CEE09703E4C6B33A50206EAEF680D2DF3A7F317DD46A27F5D9409182C9A61C305792D2BAD511C1D4867BECD6B180EF7BB0094A73837E13654AB608686BFDD7FDBA23A9D5AEC2229011804E9F460FFAC5859874160A971B95E481965B979B44ACD6927BA991223EE87BFCE238657FF70588BD49BF782415B8C636A1DD4D43B7B9B39AB8E1F551B8F410D406E05AD52C3C5FCC69FC72FC85A8BBBB739EE466E3BE7956D98C15717B62DD4401A2793DCAF4FE61BE96FB481DAF9CF154880E01A1B8EE9BB2CD24F7209FFF33B79C162A73F7BF1C205D12E4365AA97DCD0D5B18B911D7A55D8AE1C6D689A38883708CD342C519BB60CBF1DF345004DFC6E9303067B8FCAAF167D7FF742D3A63A01B8FBCEE573721596D49136735EB9AA7CCDC8948562D8778CAD47E9ABCB459EACE97A527DD193F0959B0C7D73EA007711273FE73F50D4C7C6CF4A9B6FBCB5490BC942D1E89B337D10C660F62EC054DA3907A58E206070E5448C734FED51EB89E1D25B688B7707A92A826BD7FE44D0BF12391C85707169FBEFE98BE6297C51892ECF80CDD3656502E9C28A9B8E7076EBBA831D8AC45ADF689DC9F5423E63456B24E716E576B9ABB1AC6179AF35B8F6DCA2A1A1E472F93C3D682FE360A3B7EFF363A02F5BF7BB0E46BFF78E59263CBAED6A1F6E5D8D2693D2D5471AC3E3FFDA4A807C5CDB8DE5982B64F2D69722C609A963441AE05463F50610AC9724EADA2229A1E6A9FFD17CE2D780F5624CF535E26E3400E5DE8DDA57E6BF9FA6B09FCBB84E39951702D734F71CA8890B702179854589936B8710694ABCBC48C5D759A53D9C089B73BF063EE880B2AF9C59A46748B532EA1DBBA155763073A6B3120D48EB8D7CDA2BF5B799C1248CAA5D88F406C5BB6394B536FB2C6953B270B09F97B44893264B1C198A4378AECD547D0B2CEE723A33B0ED09D8FA75DCE46C42A7AEF6769EBBF77D909EA36F390D29CB795680D3A23E5299B398B0FB3F50BB40E3123A43A47B93D6F016DBB4809D1758065C383F7041E403C75BDBDF46FBA30A15F33344F30ADAA449959BE12C37353A1405D3AA7324CE76607B8923C3C94191866239E1ACA9050FA94E780E87F19F51A9DDE3FE5DE080999A3AA7CDC03A4F128D9BB8D1CB52FA3619460221A79159FFF5E3A50E60C1CCD08796B7AF1BF72D762BED2EB9BED42848A9FA630A1C06C0A8D71509DE3497FC8B97400508A031EF5693C9FA64CC2A0775F6EFF586C31BC9DD400819FF5183C84EA6B09684C82A29682E1A1A371A6D8BCD51F34E8C1FD3627E0228E9C6240C6BD0BE5D12631CF8F8C2853D436C92E6AC81EF2B5368BFE7199949D372F255B98535454029CA1A3BB3E161C2ECBF8E34C057286AE8759D9759D707A2F78254B88889ED0CEC04068A77701E4FD4BF02855AFB52A9F4145D4DFFCA7EA73EE13590A5EC16AB6E47BA66C9930329D3F7335EAA755669395066AC369948709F98C4D91A85B9A201411E5B07C0A7A6300D994B74E0089ABA45C23190300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cleartomark%%EndFont TeXDict begin 39158280 55380996 2488 600 600 (10.dvi)@start /Fa 145[190 5[210 2[204 214 15[253 14[227 69[{TeXBase1Encoding ReEncodeFont}6 364.145 /ComicSansMS-Boldrf /Fc 197[66 6[119 119 119 49[{}4 206.559 /CMBX10 rf/Fd 178[199 133 10[152 65[{}3 165.247 /CMMIB7 rf /Fe207[60 48[{}1 165.247 /CMBSY7 rf /Ff 254[164 1[{}1 513.918/CMBSY10 rf /Fg 159[174 1[190 2[190 34[158 1[0 3[1908[285 7[285 14[222 17[222{}10 247.87 /CMBSY10 rf /Fh141[124 9[147 1[99 102[{}3 247.87 /CMBXTI10 rf /Fi 162[771[77 29[217 2[77 16[108 108 4[232 34[168{}8 247.87 /CMBX12rf /Fj 205[101 101 101 48[{}3 165.247 /CMBX8 rf /Fk 133[1381[163 3[103 1[131 1[149 2[256 4[165 135 141 4[157 16[1791[236 283 187 10[216 5[79 79 29[129 170 5[166 21[{}20247.87 /CMMIB10 rf /Fl 107[83 83 25[110 124 144 102 11099 102 101 1[113 111 110 163 58 114 1[59 122 112 107115 124 108 125 108 9[219 137 1[143 13[128 2[127 1[1546[63 3[129 129 129 129 129 95 2[52 88 58 2[77 77 6[5030[139 2[{TeXBase1Encoding ReEncodeFont}45 210.691 /ComicSansMSrf /Fn 141[149 9[176 1[119 102[{}3 297.444 /CMBXTI10rf /Fo 161[228 36[190 190 1[0 3[228 8[342 7[342 33[{}7297.444 /CMBSY10 rf /Fp 161[167 93 1[93 29[260 2[93 16[130130 4[279 1[102 33[{}9 297.444 /CMBX12 rf /Fq 195[18566 39[85 7[157 11[{}4 206.559 /CMMIB10 rf /Fr 133[1651[196 3[124 1[157 1[179 2[307 4[199 1[169 4[188 10[2025[215 3[225 5[205 4[259 5[95 95 36[200 1[123 7[226 11[{}19297.444 /CMMIB10 rf /Fs 105[39 28[46 3[46 4[47 1[46 1[242[25 51 4[45 21[77 2[58 16[54 54 54 54 54 54 54 54 4054 45 22 1[24 2[32 32 40[{TeXBase1Encoding ReEncodeFont}2687.7881 /ComicSansMS rf /Fu 104[223 2[99 99 24[136 131149 173 123 131 119 123 121 131 135 133 132 196 69 137102 71 146 134 128 138 148 130 150 129 9[263 164 186172 175 159 1[131 202 201 223 139 2[138 194 172 153 158182 152 159 185 1[132 3[75 75 8[114 1[129 63 105 70 2[9393 46 36[166 2[{TeXBase1Encoding ReEncodeFont}61 252.83/ComicSansMS rf /Fw 134[257 257 1[257 286 171 200 228286 286 257 286 428 143 286 1[143 286 257 171 228 286228 1[257 9[514 371 371 343 286 2[314 400 1[485 343 2[2002[314 343 1[371 8[171 12[171 3[171 171 40[{TeXBase1Encoding ReEncodeFont}39 513.918 /Times-Boldrf end%%EndProlog%%BeginSetup%%Feature: *Resolution 600dpiTeXDict begin%%PaperSize: A4 end%%EndSetup%%Page: 1 1TeXDict begin 1 0 bop 0 TeXcolorgray 1 TeXcolorgray 0TeXcolorgray 1 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray0 TeXcolorgray 1 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0.5 TeXcolorgray0 TeXcolorgray 0.75 TeXcolorgray 0 TeXcolorgray -6006416 aSDict begin [ /Page 1 /View [ /Fit ] /PageMode /UseOutlines /DOCVIEWpdfmark end -600 6416 a -600 6416 aSDict begin [ /CropBox [0 0 595 890] /PAGES pdfmark end -600 6416 a -600 6416aSDict begin [ {Catalog} << /ViewerPreferences<</FitWindow true/CenterWindowtrue>>>> /PUT pdfmark end -600 6416 a -600 6416 aSDict begin H.S end -600 6416 a -600 6416 aSDict begin 12 H.A end -6006416 a -600 6416 aSDict begin [ /View [/XYZ H.V] /Dest (Doc-Start) cvn H.B /DEST pdfmarkend -600 6416 a 4360 6416 a tx@Dict begin 90 Rot end 4360 6416a 4609 1909 aSDict begin [ /Rotate 90 /PAGES pdfmark end 4609 1909 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 46091909 aSDict begin H.S end 4609 1909 a 0 TeXcolorgray 0 TeXcolorgray 46091909 aSDict begin H.R end 4609 1909 a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a 4609 1909 aSDict begin [ /Title () /Subject () /Creator (LaTeX with hyperref package)/Author () /Producer (dvips + Distiller) /Keywords () /DOCINFO pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ /Page 1/View [ /XYZ null null null ] /Title (Connecting Loose Ends)/OUT pdfmark end 46091909 a Gray 4977 2027 a Fw(Connecting)128 b(Loose)g(Ends)p0 TeXcolorgray Black Black Green Black Green Black OliveGreenBlack 4876 2582 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w Fu(freshness)76 b(function)g(\(recap\))pBlack Green Black Green Black OliveGreen Black 4876 2983a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(POPLmark)g(challenge)p Black Green Black Green Black OliveGreenBlack 4876 3385 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w(future)h(work)p 0 TeXcolorgray 10821 5925a 0 setgray 10821 5925 a 0.5 TeXcolorgray 9441 6307 a Fs(Munich,)25b(12.)g(July)h(2005)e(\226)i(p.1)g(\(1/1\))p 0 TeXcolorgray4360 6416 a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Page: 2 2TeXDict begin 2 1 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a 46091909 aSDict begin [ /Page 2/View [ /XYZ null null null ] /Title (Freshness Function)/OUT pdfmark end 4609 1909 a Gray 5431 2027 a Fw(Fr)-9 b(eshness)128b(Function)p 0 TeXcolorgray Black Black Green Black GreenBlack OliveGreen Black 4876 2582 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w Fu(A)75 b(criterion)g(when)h(a)g(construction)f(that)h(\223picks)e(a)5169 2874 y(fresh)i(atom\224)g(is)f(independent)i(of)f(which)e(fresh)5169 3167 y(atom)h(is)g(chosen:)p1 1 0.8 TeXcolorrgb 1 1 0.8 TeXcolorrgb 5169 5589 57242213 v 1 1 0.8 TeXcolorrgb Black 5231 3646 a(Given)pBlue 75 w Fr(pt)6245 3690 y Fq(\013;\023)p Black 65633646 a Fu(,)p Blue 75 w Fr(at)7020 3690 y Fq(\013)p Black7262 3646 a Fu(and)h(a)g(function)p Blue 76 w Fr(h)95b Fp(:)f Fr(\013)i Fo(!)f Fr(\023)p Black Fu(:)p BlackGreen Black Green Black OliveGreen Black 5485 4083 a@beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 6.86105 6.86105 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 292 w(if)pBlue 75 w(\002nite)q Fp(\()p Fu(supp)7332 4165 y Fq(\013)75954083 y Fr(h)p Fp(\))p Black 75 w Fu(and)p Blue 5777 4526a Fo(9)p Fr(a:)g(a)g Fp(#)g Fr(h)76 b Fo(^)g Fr(a)95b Fp(#)g(\()p Fr(h)57 b(a)p Fp(\))p Black 5777 5056 aFu(then)p Blue 5542 5453 a Fo(9)p Fp(!)p Fn(fr)33 b Fr(:)95b Fo(8)p Fr(a:)g(a)g Fp(#)g Fr(h)g Fo(\))g Fp(\()p Fr(h)57b(a)p Fp(\))95 b(=)g Fn(fr)p Black 1 1 0.8 TeXcolorrgbBlack 0 TeXcolorgray 10821 5925 a 0 setgray 10821 5925 a 0.5 TeXcolorgray9412 6307 a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.2)g(\(1/2\))p0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Page: 2 3TeXDict begin 2 2 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a Gray5431 2027 a Fw(Fr)-9 b(eshness)128 b(Function)p 0 TeXcolorgrayBlack Black Green Black Green Black OliveGreen Black4876 2582 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black293 w Fu(A)75 b(criterion)g(when)h(a)g(construction)f(that)h(\223picks)e(a)5169 2874 y(fresh)i(atom\224)g(is)f(independent)i(of)f(which)e(fresh)5169 3167 y(atom)h(is)g(chosen:)p 1 1 0.8 TeXcolorrgb1 1 0.8 TeXcolorrgb 5169 5589 5724 2213 v 1 1 0.8 TeXcolorrgbBlack 5231 3646 a(Given)p Blue 75 w Fr(pt)6245 3690 yFq(\013;\023)p Black 6563 3646 a Fu(,)p Blue 75 w Fr(at)70203690 y Fq(\013)p Black 7262 3646 a Fu(and)h(a)g(function)pBlue 76 w Fr(h)95 b Fp(:)f Fr(\013)i Fo(!)f Fr(\023)pBlack Fu(:)p Black Green Black Green Black OliveGreenBlack 5485 4083 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 6.86105 6.86105 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 292 w(if)p Blue 75 w(\002nite)q Fp(\()p Fu(supp)73324165 y Fq(\013)7595 4083 y Fr(h)p Fp(\))p Black 75 wFu(and)p Blue 5777 4526 a Fo(9)p Fr(a:)g(a)g Fp(#)g Fr(h)76b Fo(^)g Fr(a)95 b Fp(#)g(\()p Fr(h)57 b(a)p Fp(\))pBlack 5777 5056 a Fu(then)p Blue 5542 5453 a Fo(9)p Fp(!)pFn(fr)33 b Fp(\()p Fn(h)28 b Fp(\))p Fr(:)95 b Fo(8)pFr(a:)g(a)g Fp(#)g Fr(h)g Fo(\))g Fp(\()p Fr(h)57 b(a)pFp(\))95 b(=)g Fn(fr)33 b Fp(\()p Fn(h)28 b Fp(\))p Black1 1 0.8 TeXcolorrgb Black 0 TeXcolorgray 10821 5925 a 0 setgray10821 5925 a 0.5 TeXcolorgray 9398 6307 a Fs(Munich,)e(12.)f(July)h(2005)e(\226)i(p.2)g(\(2/2\))p 0 TeXcolorgray 4360 6416a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Page: 3 4TeXDict begin 3 3 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a 46091909 aSDict begin [ /Page 4/View [ /XYZ null null null ] /Title (Proof (Existence))/OUT pdfmark end 4609 1909 a Gray 5675 2027 a Fw(Pr)-9 b(oof)128b(\(Existence\))p 0 TeXcolorgray Black 4623 2549 a Fl(From)62b(the)h(assumption)g(there)g(exists)h(an)p Blue 63 wFk(a)8445 2586 y Fj(0)p Black 8619 2549 a Fl(with)47402932 y(1.)p Blue 59 w Fk(a)5103 2969 y Fj(0)5293 2932y Fi(#)80 b Fk(h)p Black 63 w Fl(and)63 b(2.)p Blue 58w Fk(a)6634 2969 y Fj(0)6825 2932 y Fi(#)79 b(\()p Fk(h)h(a)76462969 y Fj(0)7758 2932 y Fi(\))p Black 0 TeXcolorgray10821 5925 a 0 setgray 10821 5925 a 0.5 TeXcolorgray 9412 6307a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.3)g(\(1/4\))p0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Page: 3 5TeXDict begin 3 4 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a Gray5675 2027 a Fw(Pr)-9 b(oof)128 b(\(Existence\))p 0 TeXcolorgrayBlack 4623 2549 a Fl(From)62 b(the)h(assumption)g(there)g(exists)h(an)pBlue 63 w Fk(a)8445 2586 y Fj(0)p Black 8619 2549 a Fl(with)47402932 y(1.)p Blue 59 w Fk(a)5103 2969 y Fj(0)5293 2932y Fi(#)80 b Fk(h)p Black 63 w Fl(and)63 b(2.)p Blue 58w Fk(a)6634 2969 y Fj(0)6825 2932 y Fi(#)79 b(\()p Fk(h)h(a)76462969 y Fj(0)7758 2932 y Fi(\))p Black 4623 3318 a Fl(We)62b(take)p Blue 63 w Fh(fr)28 b Fi(\()p Fh(h)23 b Fi(\))pBlack 64 w Fl(to)62 b(be)p Blue 63 w Fk(h)80 b(a)71963355 y Fj(0)p Black 7370 3318 a Fl(and)62 b(have)47403704 y(3.)p Blue 58 w Fk(a)80 b Fi(#)f Fk(h)p Black 63w Fl(and)63 b(claim)f(that)p Blue 63 w Fi(\()p Fk(h)80b(a)p Fi(\))f(=)g(\()p Fk(h)h(a)8712 3741 y Fj(0)88243704 y Fi(\))p Black 0 TeXcolorgray 10821 5925 a 0 setgray 108215925 a 0.5 TeXcolorgray 9398 6307 a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.3)g(\(2/4\))p 0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 43606416 a eop end%%Page: 3 6TeXDict begin 3 5 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a Gray5675 2027 a Fw(Pr)-9 b(oof)128 b(\(Existence\))p 0 TeXcolorgrayBlack 4623 2549 a Fl(From)62 b(the)h(assumption)g(there)g(exists)h(an)pBlue 63 w Fk(a)8445 2586 y Fj(0)p Black 8619 2549 a Fl(with)47402932 y(1.)p Blue 59 w Fk(a)5103 2969 y Fj(0)5293 2932y Fi(#)80 b Fk(h)p Black 63 w Fl(and)63 b(2.)p Blue 58w Fk(a)6634 2969 y Fj(0)6825 2932 y Fi(#)79 b(\()p Fk(h)h(a)76462969 y Fj(0)7758 2932 y Fi(\))p Black 4623 3318 a Fl(We)62b(take)p Blue 63 w Fh(fr)28 b Fi(\()p Fh(h)23 b Fi(\))pBlack 64 w Fl(to)62 b(be)p Blue 63 w Fk(h)80 b(a)71963355 y Fj(0)p Black 7370 3318 a Fl(and)62 b(have)47403704 y(3.)p Blue 58 w Fk(a)80 b Fi(#)f Fk(h)p Black 63w Fl(and)63 b(claim)f(that)p Blue 63 w Fi(\()p Fk(h)80b(a)p Fi(\))f(=)g(\()p Fk(h)h(a)8712 3741 y Fj(0)88243704 y Fi(\))p Black 4623 4076 a Fl(Trivially)61 b(true)i(for)pBlue 63 w Fk(a)79 b Fi(=)g Fk(a)7041 4114 y Fj(0)p Black7152 4076 a Fl(.)f(For)p Blue 63 w Fk(a)h Fg(6)p Fi(=)gFk(a)8374 4114 y Fj(0)p Black 8485 4076 a Fl(:)4740 4460y(4.)p Blue 58 w Fk(a)h Fi(#)f(\()p Fk(h)h(a)6037 4497y Fj(0)6149 4460 y Fi(\))p Black 4623 4846 a Fl(since)pBlue 63 w Fk(a)f Fi(#)h Fk(h)p Black 63 w Fl(\(3\),)pBlue 63 w Fk(a)f Fi(#)g Fk(a)7064 4883 y Fj(0)p Black7176 4846 a Fl(,)p Blue 63 w(\002nite)p Fi(\()p Fl(supp)gFk(h)p Fi(\))p Black Fl(,)p Blue 63 w(\002nite)q Fi(\()pFl(supp)f Fk(a)10142 4883 y Fj(0)10254 4846 y Fi(\))pBlack 4623 5096 a Fl(and)62 b(thus)p Blue 5758 5519 a(supp)oFi(\()p Fk(h)80 b(a)6705 5556 y Fj(0)6817 5519 y Fi(\))fFg(\022)g Fl(supp)o Fi(\()p Fk(h)p Fi(\))65 b Fg([)eFl(supp)o Fi(\()p Fk(a)9143 5556 y Fj(0)9255 5519 y Fi(\))pBlack 0 TeXcolorgray 10821 5925 a 0 setgray 10821 5925 a 0.5 TeXcolorgray9398 6307 a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.3)g(\(3/4\))p0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Page: 3 7TeXDict begin 3 6 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a Gray5675 2027 a Fw(Pr)-9 b(oof)128 b(\(Existence\))p 0 TeXcolorgrayBlack 4623 2549 a Fl(From)62 b(the)h(assumption)g(there)g(exists)h(an)pBlue 63 w Fk(a)8445 2586 y Fj(0)p Black 8619 2549 a Fl(with)47402932 y(1.)p Blue 59 w Fk(a)5103 2969 y Fj(0)5293 2932y Fi(#)80 b Fk(h)p Black 63 w Fl(and)63 b(2.)p Blue 58w Fk(a)6634 2969 y Fj(0)6825 2932 y Fi(#)79 b(\()p Fk(h)h(a)76462969 y Fj(0)7758 2932 y Fi(\))p Black 4623 3318 a Fl(We)62b(take)p Blue 63 w Fh(fr)28 b Fi(\()p Fh(h)23 b Fi(\))pBlack 64 w Fl(to)62 b(be)p Blue 63 w Fk(h)80 b(a)71963355 y Fj(0)p Black 7370 3318 a Fl(and)62 b(have)47403704 y(3.)p Blue 58 w Fk(a)80 b Fi(#)f Fk(h)p Black 63w Fl(and)63 b(claim)f(that)p Blue 63 w Fi(\()p Fk(h)80b(a)p Fi(\))f(=)g(\()p Fk(h)h(a)8712 3741 y Fj(0)88243704 y Fi(\))p Black 4623 4076 a Fl(Trivially)61 b(true)i(for)pBlue 63 w Fk(a)79 b Fi(=)g Fk(a)7041 4114 y Fj(0)p Black7152 4076 a Fl(.)f(For)p Blue 63 w Fk(a)h Fg(6)p Fi(=)gFk(a)8374 4114 y Fj(0)p Black 8485 4076 a Fl(:)4740 4460y(4.)p Blue 58 w Fk(a)h Fi(#)f(\()p Fk(h)h(a)6037 4497y Fj(0)6149 4460 y Fi(\))p Black 4623 4827 a Fl(We)62b(get)h(from)g(\(2,4\))g(and)f(\(1,3\):)4740 5211 y(5.)pBlue 58 w Fi(\()p Fk(a)48 b(a)5449 5248 y Fj(0)5561 5211y Fi(\))5669 5269 y Ff(\001)5833 5211 y Fi(\()p Fk(h)80b(a)6343 5248 y Fj(0)6455 5211 y Fi(\))f(=)h(\()p Fk(h)g(a)74495248 y Fj(0)7560 5211 y Fi(\))p Black 4740 5551 a Fl(6.)pBlue 58 w Fi(\()p Fk(a)48 b(a)5449 5589 y Fj(0)5561 5551y Fi(\))5669 5610 y Ff(\001)5833 5551 y Fi(\()p Fk(h)80b(a)6343 5589 y Fj(0)6455 5551 y Fi(\))f(=)h(\(\()p Fk(a)48b(a)7517 5589 y Fj(0)7628 5551 y Fi(\))7736 5610 y Ff(\001)79015551 y Fk(h)p Fi(\)\(\()p Fk(a)h(a)8753 5589 y Fj(0)88645551 y Fi(\))8972 5610 y Ff(\001)9137 5551 y Fk(a)92945589 y Fj(0)9405 5551 y Fi(\))80 b(=)f(\()p Fk(h)h(a)pFi(\))p Black 0 TeXcolorgray 10821 5925 a 0 setgray 10821 5925a 0.5 TeXcolorgray 9398 6307 a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.3)g(\(4/4\))p 0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 43606416 a eop end%%Page: 4 8TeXDict begin 4 7 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a 46091909 aSDict begin [ /Page 8/View [ /XYZ null null null ] /Title (Proof (Uniqueness))/OUT pdfmark end 4609 1909 a Gray 5460 2027 a Fw(Pr)-9 b(oof)129b(\(Uniqueness\))p 0 TeXcolorgray Black 4623 2554 a Fl(From)62b(the)h(assumption)g(there)g(exists)h(an)p Blue 63 wFk(a)8445 2591 y Fj(0)p Black 8619 2554 a Fl(with)p Blue63 w Fk(a)9263 2591 y Fj(0)9454 2554 y Fi(#)79 b Fk(h)pBlack 63 w Fl(and)4623 2801 y(we)63 b(have)4740 3143y(1.)p Blue 59 w Fg(8)p Fk(a:)79 b(a)g Fi(#)h Fk(h)159b Fg(\))f Fi(\()p Fk(h)80 b(a)p Fi(\))g(=)f Fh(fr)79793201 y Fj(1)p Black 4740 3411 a Fl(2.)p Blue 58 w Fg(8)pFk(a:)h(a)f Fi(#)h Fk(h)159 b Fg(\))f Fi(\()p Fk(h)80b(a)p Fi(\))g(=)f Fh(fr)8013 3470 y Fj(2)p Black 46233784 a Fl(Clearly,)p Blue 61 w Fh(fr)5670 3842 y Fj(1)58613784 y Fi(=)g Fh(fr)6408 3842 y Fj(2)p Black 6519 3784a Fl(.)4623 4266 y(The)62 b(freshness)i(function)f(can)g(be)g(used)g(to)f(de\002ne)h(the)4623 4490 y(lambda-case)e(for)i(recursive)h(functions:)p Blue 5462 4962 a Fk(g)9 b Fi(\([)p Fk(a)pFi(])p Fk(:t)p Fi(\))81 b(=)f Fk(f)27 b(r)8 b Fi(\()pFk(\025a)7431 4860 y Fe(0)7502 4962 y Fk(:)79 b(f)78015000 y Fd(LAM)8361 4962 y Fk(a)8518 4860 y Fe(0)86364962 y Fi(\()p Fk(a)48 b(a)9106 4860 y Fe(0)9176 4962y Fi(\))9284 5021 y Ff(\001)9448 4962 y Fk(t)p Fi(\))pBlack 4623 5340 a Fl(and)62 b(so)h(for)f(all)g(\223fresh\224)g(atoms)pBlue 64 w Fk(a)7549 5250 y Fe(00)p Black 7742 5340 aFl(we)h(have)p Blue 5940 5770 a Fk(g)9 b Fi(\([)p Fk(a)pFi(])p Fk(:t)p Fi(\))81 b(=)e Fk(f)7311 5807 y Fd(LAM)78715770 y Fk(a)8028 5667 y Fe(00)8206 5770 y Fi(\()p Fk(a)48b(a)8676 5667 y Fe(00)8806 5770 y Fi(\))8914 5828 y Ff(\001)90795770 y Fk(t)p Black 0 TeXcolorgray 10821 5925 a 0 setgray 108215925 a 0.5 TeXcolorgray 9427 6307 a Fs(Munich,)25 b(12.)g(July)h(2005)e(\226)i(p.4)g(\(1/1\))p 0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 43606416 a eop end%%Page: 5 9TeXDict begin 5 8 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a 46091909 aSDict begin [ /Page 9/View [ /XYZ null null null ] /Title (POPLmark Challenge)/OUT pdfmark end 4609 1909 a Gray 5113 2027 a Fw(POPLmark)128 b(Challenge)p0 TeXcolorgray Black 4623 2582 a Fu(\223Many)76 b(proofs)g(about)f(programming)i(languages)f(are)4623 2874 y(long,)f(straightforward,)h(and)h(tedious,)e(with)g(just)h(a)4623 3167 y(few)f(interesting)i(cases.)93 b(Their)75 b(complexity)h(arises)4623 3459y(from)g(the)f(management)i(of)f(many)g(details)g(rather)46233751 y(than)f(from)h(deep)h(conceptual)e(dif\002culties;)i(yet)f(small)4623 4044 y(mistakes)f(or)g(overlooked)g(cases)h(can)f(invalidate)h(large)4623 4336 y(amounts)g(of)f(work.)93 b(These)75b(effects)i(are)f(ampli\002ed)h(as)4623 4628 y(languages)f(scale:)94b(it)75 b(becomes)g(hard)i(to)e(keep)4623 4920 y(de\002nitions)h(and)g(proofs)f(consistent,)g(to)g(reuse)i(work,)4623 5213y(and)f(to)f(ensure)i(tight)e(relationships)g(between)i(theory)46235505 y(and)f(implementations.)94 b(Automated)77 b(proof)e(assistants)4623 5797 y(offer)h(the)g(hope)f(of)g(signi\002cantly)i(easing)e(these)4623 6090 y(problems.\224)p 0 TeXcolorgray 10821 5925a 0 setgray 10821 5925 a 0.5 TeXcolorgray 9412 6307 a Fs(Munich,)26b(12.)f(July)h(2005)e(\226)i(p.5)g(\(1/2\))p 0 TeXcolorgray4360 6416 a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Page: 5 10TeXDict begin 5 9 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a Gray5113 2027 a Fw(POPLmark)128 b(Challenge)p 0 TeXcolorgrayBlack 4623 2582 a Fu(\223Many)76 b(proofs)g(about)f(programming)i(languages)f(are)4623 2874 y(long,)f(straightforward,)h(and)h(tedious,)e(with)g(just)h(a)4623 3167 y(few)f(interesting)i(cases.)93b(Their)75 b(complexity)h(arises)4623 3459 y(from)g(the)f(management)i(of)f(many)g(details)g(rather)4623 3751 y(than)f(from)h(deep)h(conceptual)e(dif\002culties;)i(yet)f(small)4623 4044y(mistakes)f(or)g(overlooked)g(cases)h(can)f(invalidate)h(large)46234336 y(amounts)g(of)f(work.)93 b(These)75 b(effects)i(are)f(ampli\002ed)h(as)4623 4628 y(languages)f(scale:)94 b(it)75b(becomes)g(hard)i(to)e(keep)4623 4920 y(de\002nitions)h(and)g(proofs)f(consistent,)g(to)g(reuse)i(work,)4623 5213 y(and)f(to)f(ensure)i(tight)e(relationships)g(between)i(theory)4623 5505 y(and)f(implementations.)94 b(Automated)77 b(proof)e(assistants)46235797 y(offer)h(the)g(hope)f(of)g(signi\002cantly)i(easing)e(these)46236090 y(problems.\224)4471 4081 y tx@Dict begin tx@NodeDict begin {96.7627 89.56271 312.0444 156.02223.59999 } false /N@B 16 {InitRnode } NewNode end end 4471 4081 a Red Black1 1 0.8 TeXcolorrgb Black 78 w @beginspecial @setspecial tx@Dict begin STP newpath 0.8 SLW TeXDict begin Red end 0.05 true3.8 neg 89.56271 neg 308.2444 96.7627 .5 Frame gsave 1 1 0.8 setrgbcolorfill grestore gsave 0.8 SLW TeXDict begin Red end 0 setlinecap stroke grestore end@endspecial -1720 x Fu(However,)h(despite)g(much)f(encouraging)i(progress)e(in)4549 2653 y(recent)h(years)h(and)f(the)f(availability)h(of)g(several)g(mature)4549 2946 y(tools,)e(their)i(use)g(is)f(still)g(not)h(commonplace.)93 b(.)45 b(.)g(.)g(We)75 b(would)45493238 y(like)g(to)g(answer)h(two)f(questions:)p BlackGreen Black Green Black OliveGreen Black 4803 3639 a@beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 292 w(What)g(is)g(the)h(current)h(state)e(of)h(the)g(art)f(in)5095 3918 y(formalizing)h(language)h(metatheory)g(and)f(semantics?)5095 4211 y(What)f(can)g(be)g(recommended)i(as)f(best)f(practices)g(for)5095 4503y(groups)h(\(typically)f(not)h(proof-assistant)g(experts\))50954795 y(embarking)g(on)f(formalizing)h(language)h(de\002nitions,)50955087 y(either)f(small-)g(or)f(large-scale?)p Black GreenBlack Green Black OliveGreen Black 4803 5489 a @beginspecial@setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 292 w(What)g(improvements)h(are)h(needed)g(to)e(make)h(the)f(use)5095 5781 y(of)g(tool)g(support)h(commonplace?)p 0 TeXcolorgray 10821 5925 a 0 setgray 10821 5925a 0.5 TeXcolorgray 9398 6307 a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.5)g(\(2/2\))p 0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 43606416 a eop end%%Page: 6 11TeXDict begin 6 10 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a 46091909 aSDict begin [ /Page 11/View [ /XYZ null null null ] /Title (Some Tasks)/OUT pdfmark end 4609 1909 a Gray 6278 2027 a Fw(Some)129 b(T)-47b(asks)p 0 TeXcolorgray Black Black Green Black GreenBlack OliveGreen Black 4876 2586 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w Fu(type-language)77 b(of)p Blue76 w Fr(F)7412 2630 y Fq(<)p Fc(:)p Black 7748 2586 aFu(\(transitivity)f(of)5169 2878 y(subtyping\))p BlackGreen Black Green Black OliveGreen Black 4876 3279 a@beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(considering)f(terms)h(\(evaluation,)5169 3572 y(type-soundness)c(\227)e(preservation)h(and)g(progress\))4623 4109 y(Start)76 b(small,)f(be)h(able)f(to)h(reuse)g(code:)p Black Green Black Green Black OliveGreen Black4876 4497 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black293 w(add)g(records)p Black Green Black Green Black OliveGreenBlack 4876 4885 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w(add)g(pattern-matching)h(\(interesting)f(binding)51695177 y(issues\))p 0 TeXcolorgray 10821 5925 a 0 setgray 10821 5925a 0.5 TeXcolorgray 9427 6307 a Fs(Munich,)25 b(12.)g(July)h(2005)e(\226)i(p.6)g(\(1/1\))p 0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 43606416 a eop end%%Page: 7 12TeXDict begin 7 11 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a 46091909 aSDict begin [ /Page 12/View [ /XYZ null null null ] /Title (Evaluation Criteria)/OUT pdfmark end 4609 1909 a Gray 5415 2027 a Fw(Ev)-5 b(aluation)127b(Criteria)p 0 TeXcolorgray Black Black Green Black GreenBlack OliveGreen Black 4876 2582 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w Fu(Overhead)76 b(of)f(formalisation)h(should)g(not)g(be)5169 2861 y(prohibitive)e(\(they)i(say)g(de)g(Bruijn)g(indices)g(do)f(not)5169 3153 y(meet)h(this)f(criterion\).)pBlack Green Black Green Black OliveGreen Black 4876 3541a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(The)g(representation)i(and)f(proof-assistant)5169 3833 y(syntax)g(should)g(not)f(depart)i(too)e(radically)h(from)5169 4126 y(the)f(usual)i(conventions.)p Black Green Black Green Black OliveGreenBlack 4876 4513 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w(The)e(infrastructure)j(should)e(be)f(usable)h(\(after,)51694792 y(say,)f(one)h(semester)g(of)g(training\))g(by)f(someone)51695085 y(who)f(is)h(knowledgeable)i(about)e(programming)51695377 y(language)h(theory)g(but)g(not)g(an)f(expert)i(in)51695669 y(theorem)f(prover)g(technology.)p 0 TeXcolorgray10821 5925 a 0 setgray 10821 5925 a 0.5 TeXcolorgray 9427 6307a Fs(Munich,)25 b(12.)g(July)h(2005)e(\226)i(p.7)g(\(1/1\))p0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Page: 8 13TeXDict begin 8 12 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a 46091909 aSDict begin [ /Page 13/View [ /XYZ null null null ] /Title (My Existing Implementation)/OUT pdfmark end 4609 1909 a Gray 6226 2027 a Fw(My)129 b(Existing)58052506 y(Implementation)p 0 TeXcolorgray Black Black GreenBlack Green Black OliveGreen Black 4876 2954 a @beginspecial@setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w Fu(abstract)75 b(theory)h(about)g(permutations)p Black Green Black Green Black OliveGreenBlack 4876 3350 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w(automated)h(construction)e(of)g(a)h(new)g(type)51693643 y(corresponding)g(to)f(the)g(alpha-equivalence)51693935 y(classes)g(\(almost)g(completed,)h(summer\))p BlackGreen Black Green Black OliveGreen Black 4876 4336 a@beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(automation)g(for)f(induction)h(principles)g(and)5169 4629 y(recursion)g(combinators)f(\(non-trivial,)g(autumn?\))p Black Green Black GreenBlack OliveGreen Black 4876 5016 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(automated)i(rule)f(inductions)g(with)f(build-in)5169 5295 y(variable)h(convention)f(\(???\))p0 TeXcolorgray 10821 5925 a 0 setgray 10821 5925 a 0.5 TeXcolorgray9412 6307 a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.8)g(\(1/6\))p0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Page: 8 14TeXDict begin 8 13 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a Gray6226 2027 a Fw(My)129 b(Existing)5805 2506 y(Implementation)p0 TeXcolorgray Black Black Green Black Green Black OliveGreenBlack 4876 2954 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w Fu(abstract)75 b(theory)h(about)g(permutations)pBlack Green Black Green Black OliveGreen Black 4876 3350a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(automated)h(construction)e(of)g(a)h(new)g(type)5169 3643 y(corresponding)g(to)f(the)g(alpha-equivalence)5169 3935 y(classes)g(\(almost)g(completed,)h(summer\))p Black Green Black Green Black OliveGreenBlack 4876 4336 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w(automation)g(for)f(induction)h(principles)g(and)51694629 y(recursion)g(combinators)f(\(non-trivial,)g(autumn?\))pBlack Green Black Green Black OliveGreen Black 4876 5016a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(automated)i(rule)f(inductions)g(with)f(build-in)5169 5295 y(variable)h(convention)f(\(???\))4530 4066 y tx@Dict begin tx@NodeDict begin {54.89037 47.69037 306.35394 153.176973.59999 } false /N@B 16 {InitRnode } NewNode end end 4530 4066 a Red Black 1 1 0.8 TeXcolorrgbBlack 78 w @beginspecial @setspecial tx@Dict begin STP newpath 0.8 SLW TeXDict begin Red end 0.05 true3.8 neg 47.69037 neg 302.55394 54.89037 .5 Frame gsave 1 1 0.8 setrgbcolorfill grestore gsave 0.8 SLW TeXDict begin Red end 0 setlinecap stroke grestore end@endspecial Blue-821 x Fp(\()p Fo(8)p 0 0 1 TeXcolorrgb Fr(x)p Blue 57w(a)p Fp(\))95 b Fr(P)105 b Fp(\()p Fu(Var)q Fp(\()pFr(a)p Fp(\)\))57 b Fr(x)4608 3697 y Fp(\()p Fo(8)p 0 0 1TeXcolorrgb Fr(x)p Blue 57 w(t)5305 3742 y Fc(1)54903697 y Fr(t)5614 3742 y Fc(2)5743 3697 y Fp(\))95 b(\(\()p0 0 1 TeXcolorrgb Fo(8)p Fr(z)p Blue 13 w Fp(\))g Fr(P)105b(t)7265 3742 y Fc(1)p 0 0 1 TeXcolorrgb 7450 3697 aFr(z)p Blue 13 w Fp(\))76 b Fo(^)g Fp(\(\()p 0 0 1 TeXcolorrgbFo(8)p Fr(z)p Blue 13 w Fp(\))95 b Fr(P)105 b(t)94353742 y Fc(2)p 0 0 1 TeXcolorrgb 9621 3697 a Fr(z)p Blue12 w Fp(\))7487 4032 y Fo(\))95 b Fr(P)105 b Fp(\()pFu(App)p Fp(\()p Fr(t)9083 4076 y Fc(1)9212 4032 y Fr(;)57b(t)9488 4076 y Fc(2)9616 4032 y Fp(\)\))h Fr(x)46084484 y Fp(\()p Fo(8)p 0 0 1 TeXcolorrgb Fr(x)p Blue 57w(a)f(t)p Fp(\))95 b Fr(a)g Fp(#)g Fr(x)76 b Fo(^)171b Fp(\(\()p 0 0 1 TeXcolorrgb Fo(8)p Fr(z)p Blue 13 wFp(\))95 b Fr(P)105 b(t)p 0 0 1 TeXcolorrgb 56 w(z)pBlue 13 w Fp(\))95 b Fo(\))g Fr(P)105 b Fp(\([)p Fr(a)pFp(])p Fr(:t)p Fp(\))57 b Fr(x)p 4608 4634 6114 9 v 68564898 a Fp(\()p Fo(8)p 0 0 1 TeXcolorrgb Fr(x)p Blue 57w(t)p Fp(\))94 b Fr(P)105 b(t)57 b(x)p Black 0 TeXcolorgray10821 5925 a 0 setgray 10821 5925 a 0.5 TeXcolorgray 9398 6307a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.8)g(\(2/6\))p0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Page: 8 15TeXDict begin 8 14 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a Gray6226 2027 a Fw(My)129 b(Existing)5805 2506 y(Implementation)p0 TeXcolorgray Black Black Green Black Green Black OliveGreenBlack 4876 2954 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w Fu(abstract)75 b(theory)h(about)g(permutations)pBlack Green Black Green Black OliveGreen Black 4876 3350a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(automated)h(construction)e(of)g(a)h(new)g(type)5169 3643 y(corresponding)g(to)f(the)g(alpha-equivalence)5169 3935 y(classes)g(\(almost)g(completed,)h(summer\))p Black Green Black Green Black OliveGreenBlack 4876 4336 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w(automation)g(for)f(induction)h(principles)g(and)51694629 y(recursion)g(combinators)f(\(non-trivial,)g(autumn?\))pBlack Green Black Green Black OliveGreen Black 4876 5016a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(automated)i(rule)f(inductions)g(with)f(build-in)5169 5295 y(variable)h(convention)f(\(???\))4530 4066 y tx@Dict begin tx@NodeDict begin {84.9336 77.73361 306.35394 153.176973.59999 } false /N@B 16 {InitRnode } NewNode end end 4530 4066 a Red Black 1 1 0.8 TeXcolorrgbBlack 78 w @beginspecial @setspecial tx@Dict begin STP newpath 0.8 SLW TeXDict begin Red end 0.05 true3.8 neg 77.73361 neg 302.55394 84.9336 .5 Frame gsave 1 1 0.8 setrgbcolorfill grestore gsave 0.8 SLW TeXDict begin Red end 0 setlinecap stroke grestore end@endspecial -1453x Fu(If)g(a)h(\002nite)g(set)p Blue 76 w Fr(A)p Black75 w Fu(supports)p Blue 75 w Fp(\()p Fr(f)8040 2658 yFc(1)8170 2613 y Fr(;)57 b(f)8491 2658 y Fc(2)8620 2613y Fr(;)g(f)8941 2658 y Fc(3)9070 2613 y Fp(\))p Black75 w Fu(and)p Blue 5675 3170 a Fp(\()p Fo(9)p Fr(a)95b Fo(62)g Fr(A)p Fp(\)\()p Fo(8)p Fr(t)57 b(x)p Fp(\)\()pFr(a)95 b Fp(#)g Fr(f)8773 3215 y Fc(3)8959 3170 y Fr(a)58b(t)e(x)p Fp(\))p Black 4608 3784 a Fu(then)75 b(there)i(exists)e(a)h(function)p Blue 8086 3710 a Fp(^)8012 3784 y Fr(f)pBlack 108 w Fu(satisfying:)p Blue 5265 4321 a Fp(^)51914396 y Fr(f)33 b Fp(\()p Fr(V)76 b(ar)105 b(a)p Fp(\))698b(=)207 b Fr(f)7903 4440 y Fc(1)8089 4396 y Fr(a)52654703 y Fp(^)5191 4777 y Fr(f)33 b Fp(\()p Fr(App)94 b(t)63584822 y Fc(1)6544 4777 y Fr(t)6668 4822 y Fc(2)6796 4777y Fp(\))341 b(=)207 b Fr(f)7903 4822 y Fc(2)8089 4777y Fr(t)8213 4822 y Fc(1)8399 4777 y Fr(t)8523 4822 yFc(2)8783 4703 y Fp(^)8709 4777 y Fr(f)32 b Fp(\()p Fr(t)91644822 y Fc(1)9293 4777 y Fp(\))9555 4703 y(^)9480 4777y Fr(f)h Fp(\()p Fr(t)9936 4822 y Fc(2)10065 4777 y Fp(\))52655084 y(^)5191 5158 y Fr(f)g Fp(\()p Fr(Lam)95 b Fp([)pFr(a)p Fp(])p Fr(:t)p Fp(\))206 b(=)h Fr(f)7903 5203y Fc(3)8089 5158 y Fr(a)58 b(t)8589 5084 y Fp(^)85155158 y Fr(f)33 b Fp(\()p Fr(t)p Fp(\))p 0 TeXcolorgray7734 5493 a Fu(for)76 b(all)p Blue 95 w Fr(a)96 b Fo(62)fFr(A)p Black 0 TeXcolorgray 10821 5925 a 0 setgray 10821 5925 a0.5 TeXcolorgray 9398 6307 a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.8)g(\(3/6\))p 0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 4360 6416a eop end%%Page: 8 16TeXDict begin 8 15 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a Gray6226 2027 a Fw(My)129 b(Existing)5805 2506 y(Implementation)p0 TeXcolorgray Black Black Green Black Green Black OliveGreenBlack 4876 2954 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w Fu(abstract)75 b(theory)h(about)g(permutations)pBlack Green Black Green Black OliveGreen Black 4876 3350a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(automated)h(construction)e(of)g(a)h(new)g(type)5169 3643 y(corresponding)g(to)f(the)g(alpha-equivalence)5169 3935 y(classes)g(\(almost)g(completed,)h(summer\))p Black Green Black Green Black OliveGreenBlack 4876 4336 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w(automation)g(for)f(induction)h(principles)g(and)51694629 y(recursion)g(combinators)f(\(non-trivial,)g(autumn?\))pBlack Green Black Green Black OliveGreen Black 4876 5016a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(automated)i(rule)f(inductions)g(with)f(build-in)5169 5295 y(variable)h(convention)f(\(???\))p 0 TeXcolorgray 10821 5925 a 0 setgray 10821 5925 a 0.5TeXcolorgray 9398 6307 a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.8)g(\(4/6\))p 0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 4360 6416a eop end%%Page: 8 17TeXDict begin 8 16 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a Gray6226 2027 a Fw(My)129 b(Existing)5805 2506 y(Implementation)p0 TeXcolorgray Black Black Green Black Green Black OliveGreenBlack 4876 2954 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w Fu(abstract)75 b(theory)h(about)g(permutations)pBlack Green Black Green Black OliveGreen Black 4876 3350a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(automated)h(construction)e(of)g(a)h(new)g(type)5169 3643 y(corresponding)g(to)f(the)g(alpha-equivalence)5169 3935 y(classes)g(\(almost)g(completed,)h(summer\))p Black Green Black Green Black OliveGreenBlack 4876 4336 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w(automation)g(for)f(induction)h(principles)g(and)51694629 y(recursion)g(combinators)f(\(non-trivial,)g(autumn?\))pBlack Green Black Green Black OliveGreen Black 4876 5016a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(automated)i(rule)f(inductions)g(with)f(build-in)5169 5295 y(variable)h(convention)f(\(???\))4530 4066 y tx@Dict begin tx@NodeDict begin {85.29504 78.09506 306.35394 153.176973.59999 } false /N@B 16 {InitRnode } NewNode end end 4530 4066 a Red Black 1 1 0.8 TeXcolorrgbBlack 78 w @beginspecial @setspecial tx@Dict begin STP newpath 0.8 SLW TeXDict begin Red end 0.05 true3.8 neg 78.09506 neg 302.55394 85.29504 .5 Frame gsave 1 1 0.8 setrgbcolorfill grestore gsave 0.8 SLW TeXDict begin Red end 0 setlinecap stroke grestore end@endspecial BlackBlack Blue 4862 2571 a Fi(\()p Fg(8)p Fk(x)49 b Fi(\000)eFk(a)g(\034)33 b Fi(\))81 b Fl(valid)o Fi(\(\000\))64b Fg(^)f Fk(a)79 b Fi(:)h Fk(\034)112 b Fg(2)80 b Fi(\000)eFg(\))i Fk(P)119 b Fi(\000)78 b Fl(Var)p Fi(\()p Fk(a)pFi(\))i Fk(\034)112 b(x)4862 3017 y Fi(\()p Fg(8)p Fk(x)49b Fi(\000)e Fk(M)76 b(\034)81 b(\033)9 b Fi(\))5744 3287y(\000)79 b Fg(`)g Fk(M)108 b Fi(:)79 b Fk(\034)113 bFg(!)79 b Fk(\033)73 b Fg(^)63 b Fk(P)119 b Fi(\000)79b Fk(M)107 b Fi(\()p Fk(\034)114 b Fg(!)79 b Fk(\033)9b Fi(\))80 b Fk(x)f Fg(^)5744 3556 y Fi(\000)g Fg(`)gFk(N)107 b Fi(:)80 b Fk(\034)97 b Fg(^)63 b Fk(P)119b Fi(\000)79 b Fk(N)107 b(\034)112 b(x)80 b Fg(\))57443826 y Fk(P)119 b Fi(\000)79 b(\()p Fk(App)47 b(M)76b(N)28 b Fi(\))79 b Fk(\033)89 b(x)4862 4272 y Fi(\()pFg(8)p Fk(x)49 b Fi(\000)e Fk(a)g(M)76 b(\034)81 b(\033)9b Fi(\))5744 4541 y Fk(a)79 b Fi(#)h Fk(x)63 b Fg(^)hFk(a)79 b Fi(#)g(\000)63 b Fg(^)h Fi(\()p Fk(a)79 b Fi(:)hFk(\034)18 b(;)47 b Fi(\000\))79 b Fg(`)h Fk(M)107 bFi(:)80 b Fk(\033)88 b Fg(^)5744 4811 y Fi(\(\()p Fg(8)pFk(z)10 b Fi(\))81 b Fk(P)119 b Fi(\()p Fk(a)79 b Fi(:)hFk(\034)18 b(;)47 b Fi(\000\))80 b Fk(M)107 b(\033)88b(z)10 b Fi(\))80 b Fg(\))5744 5081 y Fk(P)119 b Fi(\000)79b(\()p Fk(Lam)48 b Fi([)p Fk(a)p Fi(])p Fk(:M)28 b Fi(\))81b(\()p Fk(\034)113 b Fg(!)79 b Fk(\033)9 b Fi(\))80 bFk(x)p 4759 5387 5868 9 v 6196 5601 a Fi(\000)f Fg(`)gFk(M)108 b Fi(:)80 b Fk(\034)112 b Fg(\))80 b Fk(P)119b Fi(\000)78 b Fk(M)108 b(\034)k(x)p Black 0 TeXcolorgray10821 5925 a 0 setgray 10821 5925 a 0.5 TeXcolorgray 9398 6307a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.8)g(\(5/6\))p0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Page: 8 18TeXDict begin 8 17 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a Gray6226 2027 a Fw(My)129 b(Existing)5805 2506 y(Implementation)p0 TeXcolorgray Black Black Green Black Green Black OliveGreenBlack 4876 2954 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w Fu(abstract)75 b(theory)h(about)g(permutations)pBlack Green Black Green Black OliveGreen Black 4876 3350a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(automated)h(construction)e(of)g(a)h(new)g(type)5169 3643 y(corresponding)g(to)f(the)g(alpha-equivalence)5169 3935 y(classes)g(\(almost)g(completed,)h(summer\))p Black Green Black Green Black OliveGreenBlack 4876 4336 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w(automation)g(for)f(induction)h(principles)g(and)51694629 y(recursion)g(combinators)f(\(non-trivial,)g(autumn?\))pBlack Green Black Green Black OliveGreen Black 4876 5016a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(automated)i(rule)f(inductions)g(with)f(build-in)5169 5295 y(variable)h(convention)f(\(???\))4530 4066 y tx@Dict begin tx@NodeDict begin {102.28644 95.08646 306.35394 153.176973.59999 } false /N@B 16 {InitRnode } NewNode end end 4530 4066 a Red Black 1 1 0.8 TeXcolorrgbBlack 78 w @beginspecial @setspecial tx@Dict begin STP newpath 0.8 SLW TeXDict begin Red end 0.05 true3.8 neg 95.08646 neg 302.55394 102.28644 .5 Frame gsave 1 1 0.8 setrgbcolorfill grestore gsave 0.8 SLW TeXDict begin Red end 0 setlinecap stroke grestore end@endspecial BlackBlack Blue 4836 2221 a Fg(8)p Fk(x)48 b(M)12 b(:)80 b(P)119b(M)108 b(M)f(x)4836 2549 y Fg(8)p Fk(x)48 b(a)g(M)76b(M)6080 2459 y Fe(0)6150 2549 y Fk(:)5257 2818 y(a)jFi(#)h Fk(x)64 b Fg(^)f Fk(M)108 b Fg(\000)-48 b(!)71352856 y Fj(1)7326 2818 y Fk(M)7637 2728 y Fe(0)7771 2818y Fg(^)63 b Fi(\()p Fg(8)p Fk(z)10 b(:)80 b(P)119 b(M)108b(M)9597 2728 y Fe(0)9747 2818 y Fk(z)10 b Fi(\))159b Fg(\))5257 3088 y Fk(P)119 b Fi(\()p Fk(Lam)48 b Fi([)pFk(a)p Fi(])p Fk(:M)28 b Fi(\)\))82 b(\()p Fk(Lam)48b Fi([)p Fk(a)p Fi(])p Fk(:M)8767 2998 y Fe(0)8839 3088y Fi(\)\))80 b Fk(x)4836 3358 y Fg(8)p Fk(x)48 b(M)76b(M)5875 3268 y Fe(0)5993 3358 y Fk(N)g(N)6569 3268 yFe(0)6639 3358 y Fk(:)5257 3627 y(M)108 b Fg(\000)-48b(!)6107 3664 y Fj(1)6298 3627 y Fk(M)6609 3537 y Fe(0)67433627 y Fg(^)63 b Fi(\()p Fg(8)p Fk(z)10 b(:)81 b(P)119b(M)107 b(M)8569 3537 y Fe(0)8719 3627 y Fk(z)10 b Fi(\))80b Fg(^)5257 3897 y Fk(N)107 b Fg(\000)-47 b(!)6060 3934y Fj(1)6250 3897 y Fk(N)6514 3807 y Fe(0)6648 3897 yFg(^)63 b Fi(\()p Fg(8)p Fk(z)10 b(:)81 b(P)119 b(N)107b(N)8380 3807 y Fe(0)8529 3897 y Fk(z)10 b Fi(\))159b Fg(\))5257 4166 y Fk(P)119 b Fi(\()p Fk(App)48 b(M)76b(N)28 b Fi(\))79 b(\()p Fk(App)48 b(M)8016 4076 y Fe(0)81344166 y Fk(N)8398 4076 y Fe(0)8468 4166 y Fi(\))80 b Fk(x)48364495 y Fg(8)p Fk(x)48 b(a)g(M)76 b(M)6080 4405 y Fe(0)61984495 y Fk(N)f(N)6773 4405 y Fe(0)6844 4495 y Fk(:)52574764 y(a)k Fi(#)h(\()p Fk(x;)48 b(N)12 b(;)48 b(N)68424674 y Fe(0)6913 4764 y Fi(\))p Fg(^)5257 5034 y Fk(M)108b Fg(\000)-48 b(!)6107 5071 y Fj(1)6298 5034 y Fk(M)66094944 y Fe(0)6743 5034 y Fg(^)63 b Fi(\()p Fg(8)p Fk(z)10b(:)81 b(P)119 b(M)107 b(M)8569 4944 y Fe(0)8719 5034y Fk(z)10 b Fi(\))80 b Fg(^)5257 5303 y Fk(N)107 b Fg(\000)-47b(!)6060 5340 y Fj(1)6250 5303 y Fk(N)6514 5213 y Fe(0)66485303 y Fg(^)63 b Fi(\()p Fg(8)p Fk(z)10 b(:)81 b(P)119b(N)107 b(N)8380 5213 y Fe(0)8529 5303 y Fk(z)10 b Fi(\))159b Fg(\))5257 5573 y Fk(P)119 b Fi(\()p Fk(App)48 b Fi(\()pFk(Lam)g Fi([)p Fk(a)p Fi(])p Fk(:M)28 b Fi(\))49 b Fk(N)28b Fi(\)\))80 b(\()p Fk(M)8818 5483 y Fe(0)8889 5573 yFi([)p Fk(a)g Fi(:=)f Fk(N)9840 5483 y Fe(0)9911 5573y Fi(]\))h Fk(x)p 4836 5703 5715 9 v 6142 5915 a(M)108b Fg(\000)-48 b(!)6992 5952 y Fj(1)7183 5915 y Fk(N)186b Fg(\))159 b Fk(P)119 b(M)107 b(N)g(x)p Black 0 TeXcolorgray10821 5925 a 0 setgray 10821 5925 a 0.5 TeXcolorgray 9398 6307a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.8)g(\(6/6\))p0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Page: 9 19TeXDict begin 9 18 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a 46091909 aSDict begin [ /Page 19/View [ /XYZ null null null ] /Title (Future (I))/OUT pdfmark end 4609 1909 a Gray 6474 2027 a Fw(Futur)-9 b(e)128b(\(I\))p 0 TeXcolorgray Black Black Green Black GreenBlack OliveGreen Black 4876 2582 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w Fu(recursion)76 b(is)f(de\002nitely)i(in)e(need)i(of)5169 2874 y(simpli\002cation)p Black GreenBlack Green Black OliveGreen Black 5301 3221 a @beginspecial@setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 6.86105 6.86105 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 292 w(Andy)g(Pitts)e(needs)i(11)e(densely)i(written)5593 3513 y(pages)f(to)f(justify)i(that)e(the)h(NBE-function)5593 3806 y(with)f(names)h(is)f(justi\002ed.)pBlack Green Black Green Black OliveGreen Black 4876 4207a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(so)g(far)h(everything)g(is)f(\223optimised\224)i(for)5169 4499y(HOL-based)f(provers)g(\227)f(obvious)g(question,)h(what)51694792 y(would)f(the)h(nominal)g(approach)f(look)g(for)51695084 y(non-HOL-based)h(provers?)94 b(It)76 b(might)f(turn)h(out)51695376 y(that)f(one)h(cannot)f(transparently)j(have)e(nominal)51695669 y(types)g(in)f(Coq,)h(for)f(example.)p 0 TeXcolorgray10821 5925 a 0 setgray 10821 5925 a 0.5 TeXcolorgray 9427 6307a Fs(Munich,)25 b(12.)g(July)h(2005)e(\226)i(p.9)g(\(1/1\))p0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Page: 10 20TeXDict begin 10 19 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a 46091909 aSDict begin [ /Page 20/View [ /XYZ null null null ] /Title (Future (II))/OUT pdfmark end 4609 1909 a Gray 6374 2027 a Fw(Futur)-9 b(e)128b(\(II\))p 0 TeXcolorgray Black Black Green Black GreenBlack OliveGreen Black 4876 2582 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w Fu(so)75 b(far)h(only)g(single)f(binders)h(are)h(considered)5169 2874 y(\(this)d(is)h(probably)h(not)f(enough,)h(the)g(theory)g(on)5169 3167 y(paper)g(extends)g(to)g(more)g(interesting)g(cases\))p Black Green Black Green BlackOliveGreen Black 4876 3568 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w(we)f(already)i(pushed)g(the)e(limits)g(of)h(Isabelle)5169 3860 y(quite)g(a)g(bit)f(\(surprisingly\):)pBlack Green Black Green Black OliveGreen Black 5301 4207a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 6.86105 6.86105 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 292 w(the)h(existing)f(datatype-package)j(needed)f(to)5593 4494 y(be)f(extended)pBlack Green Black Green Black OliveGreen Black 5301 4827a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 6.86105 6.86105 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 292 w(the)g(de\002nition/overloading)h(mechanism)5593 5114 y(needed)h(to)d(be)g(\002xed)p Black Green Black Green Black OliveGreen Black4876 5502 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black293 w(the)g(type-class)h(system)g(proved)g(very)h(valuable,)51695795 y(but)e(a)h(limitation)f(is)g(just)h(a)f(hassle)h(\(can)f(this)g(be)5169 6087 y(\002xed,)h(or)f(is)g(this)g(an)h(in-principle)g(limitation?\))p 0 TeXcolorgray 10821 5925 a 0 setgray 10821 5925a 0.5 TeXcolorgray 9387 6307 a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.10)f(\(1/1\))p 0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 43606416 a eop end%%Page: 11 21TeXDict begin 11 20 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a 46091909 aSDict begin [ /Page 21/View [ /XYZ null null null ] /Title (Future (III))/OUT pdfmark end 4609 1909 a Gray 6274 2027 a Fw(Futur)-9 b(e)128b(\(III\))p 0 TeXcolorgray Black Black Green Black GreenBlack OliveGreen Black 4876 2582 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w Fu(it)75 b(seems)h(dif\002cult)g(to)f(characterise)h(the)g(set)g(of)5169 2861 y(\002nitely)g(supported)h(functions;)f(this)f(means)h(they)5169 3153 y(need)g(to)f(be)h(de\002ned)h(explicitly,)f(but)g(then)f(the)5169 3445y(Abs-Rep-mechanism)g(becomes)h(burdensome)5169 3868y(one)f(needs)i(to)e(be)g(able)h(to)f(overload)p Blue76 w Fr(\025)p Black Fu(,)g(which)5169 4147 y(goes)g(to)g(the)h(fundamentals)i(of)d(HOL)g(\(can)g(this)5169 4439 y(be)g(done;)h(semantics\))p Black Green Black Green Black OliveGreenBlack 4876 4827 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecialBlack 293 w(it)f(would)h(have)f(been)h(extremely)i(nice)d(if)h(the)51695119 y(nominal)f(project)h(could)f(have)h(already)51695412 y(contributed)g(to)f(the)h(\223SN-proof/extraction)h(of)51695704 y(programs\224-project;)g(but)e(the)h(nominal)g(work)f(is)51695996 y(just)g(not)h(yet)g(in)f(a)h(state)g(where)g(it)f(is)g(really)5169 6288 y(usable)h(for)g(this)p 0 TeXcolorgray 108215925 a 0 setgray 10821 5925 a 0.5 TeXcolorgray 9401 6307 a Fs(Munich,)26b(12.)f(July)h(2005)e(\226)i(p.11)f(\(1/1\))p 0 TeXcolorgray4360 6416 a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Page: 12 22TeXDict begin 12 21 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a 46091909 aSDict begin [ /Page 22/View [ /XYZ null null null ] /Title (Future (IV))/OUT pdfmark end 4609 1909 a Gray 6288 2027 a Fw(Futur)-9 b(e)129b(\(IV\))p 0 TeXcolorgray Black Black Green Black GreenBlack OliveGreen Black 4876 2582 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 9.14807 9.14807 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 293 w Fu(of)75 b(course)h(one)f(has)h(to)f(provide)h(worked)5169 2874 y(examples:)p Black Green Black GreenBlack OliveGreen Black 5301 3221 a @beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 6.86105 6.86105 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 292 w(lambda-calculus)h(\(in)e(various)h(forms\),)f(my)5593 3513 y(term-calculus)i(from)f(the)g(PhD)p BlackGreen Black Green Black OliveGreen Black 5301 3847 a@beginspecial @setspecial tx@Dict begin STP newpath 0.0 SLW TeXDict begin Green end 0. true0.0 0.0 6.86105 6.86105 .5 Frame gsave 2.0 -45. PtoC Shadow TeXDictbegin OliveGreen end gsave fill grestore stroke grestore gsave TeXDictbegin Green end gsave fill grestore stroke grestore gsave TeXDict beginGreen end fill grestore gsave 0.0 SLW TeXDict begin Green end 0 setlinecapstroke grestore end@endspecial Black 292 w(de\002nition)h(of)e(SML/FreshML)i(\227)e(showing)5593 4139 y(some)h(form)g(of)f(correctness)h(\(VanInwegen\))5593 4555 y(\223Proving)g(theorems)h(about)e(substitutions)5593 4848 y(\(and)h(related)h(operations)f(such)f(as)5593 5140 y(alpha-conversion\))g(required)j(far)f(more)f(time)55935432 y(and)g(HOL)g(code)f(than)h(any)g(other)g(variety)g(of)55935725 y(theorem.\224)p 0 TeXcolorgray 10821 5925 a 0 setgray 108215925 a 0.5 TeXcolorgray 9387 6307 a Fs(Munich,)26 b(12.)f(July)h(2005)e(\226)i(p.12)f(\(1/1\))p 0 TeXcolorgray 4360 6416 a tx@Dict begin -90 Rot end 43606416 a eop end%%Page: 13 23TeXDict begin 13 22 bop 0 TeXcolorgray 4360 6416 a tx@Dict begin 90 Rot end 43606416 a 4609 1909 aSDict begin /product where{pop product(Distiller)search{pop pop popversion(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 movetoclosepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)showgrestore}if}{pop}ifelse}{pop}ifelse}if end 4609 1909 a 4609 1909 aSDict begin H.S end 4609 1909a 0 TeXcolorgray 0 TeXcolorgray 4609 1909 aSDict begin H.R end 4609 1909a 4609 1909 aSDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmarkend 4609 1909 a 4609 1909 aSDict begin [ {ThisPage}<</Trans << /S /R >> >> /PUT pdfmark end 4609 1909 a 46091909 aSDict begin [ /Page 23/View [ /XYZ null null null ] /Title (What the POPLmark-People Say:)/OUT pdfmark end 4609 1909 a Gray 6540 2027 a Fw(What)129 b(the)49182408 y(POPLmark-P)-10 b(eople)128 b(Say:)p 0 TeXcolorgrayBlack Black Black 5169 3189 a Fu(\223Our)76 b(own)f(preliminary)i(experiments)g(with)5169 3482 y(Urban's)e(methods)h(have)f(been)i(encouraging\224)4623 4019 y(Well,)e(it)g(seems)h(still)f(some)g(time)h(and)g(research)4623 4298 y(before)g(I)f(can)h(make)f(good)g(on)h(this.)p Black Black 6833 5205 a Fa(The)158 b(End)46235594 y Fl(Thank)61 b(you)h(for)h(coming.)78 b(Any)62b(comments)j(and)d(criticism)i(about)4623 5873 y(the)e(lecture)h(and)f(work)h(is)g(most)h(welcome!)p 0 TeXcolorgray 10821 5925a 0 setgray 10821 5925 a 0.5 TeXcolorgray 9387 6307 a Fs(Munich,)26b(12.)f(July)h(2005)e(\226)i(p.13)f(\(1/1\))p 0 TeXcolorgray4360 6416 a tx@Dict begin -90 Rot end 4360 6416 a eop end%%Traileruserdict /end-hook known{end-hook}if%%EOF