From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=JYfMbie2twRc1qZwyP7eX4Uq9QZEVMcuAvgTo+HwcNM=; b=B7a0Ftjl5DzhWqnJqh8UGywtJPrzGWIVncnK3Inkly+D/trCi9sNUoyhTC1OKhHzWi wKH4/KTIcnQ/EWrMZJBJxMoklGwfpZS629yKlwXEHQT89G5yQh5fqc2sYK7q6Ao8TfsD wfOWy/VM+BQiryvlib71x0EPtcP0rkm5KwFMVZbBWcEUlaXnm4AUHCICXb7vBzj4LR72 h7ZTzrrG7Vjhke7t/F3JLAJq1eBbaxdzRCILgKClb2jeivx9dRu1ZXIBr9FLJUKJ4W4i flpfvlzsp+9nLsZTrv+qglIA2nQInCrBbZsa2HB9pLdO4CIB0S/yBbJUael64uucXzf1 wsIw== Subject: [PATCH 1/4] CodeSamples/count: Restore atomic125.eps References: From: Akira Yokosawa Message-ID: Date: Wed, 5 Dec 2018 00:28:50 +0900 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit To: "Paul E. McKenney" Cc: perfbook@vger.kernel.org, Akira Yokosawa List-ID: >From 01e55591da491ee4b42839383b567e98f051285c Mon Sep 17 00:00:00 2001 From: Akira Yokosawa Date: Tue, 4 Dec 2018 23:34:53 +0900 Subject: [PATCH 1/4] CodeSamples/count: Restore atomic125.eps Commit 3b62f67a76e1 ("Regenerating the atomic counter graph on a more modern CPU") accidentally overwrote atomic125.eps. Restore it and restore old atomic.eps (of Nehalem) as atomic_nehalem.eps. Also restore .png files. Signed-off-by: Akira Yokosawa --- CodeSamples/count/atomic125.eps | 856 +++++++------ CodeSamples/count/atomic125.png | Bin 3189 -> 3337 bytes CodeSamples/count/atomic_nehalem.eps | 2266 ++++++++++++++++++++++++++++++++++ 3 files changed, 2752 insertions(+), 370 deletions(-) create mode 100644 CodeSamples/count/atomic_nehalem.eps diff --git a/CodeSamples/count/atomic125.eps b/CodeSamples/count/atomic125.eps index 1e28a27..179f3d4 100644 --- a/CodeSamples/count/atomic125.eps +++ b/CodeSamples/count/atomic125.eps @@ -1,7 +1,7 @@ %!PS-Adobe-2.0 %%Title: Is Parallel Programming Hard, And, If So, What Can You Do About It? -%%Creator: gnuplot 5.0 patchlevel 3 -%%CreationDate: Mon Jul 16 22:02:17 2018 +%%Creator: gnuplot 4.4 patchlevel 0 +%%CreationDate: Wed Jan 5 07:20:51 2011 %%DocumentFonts: (atend) %%BoundingBox: 50 95 302 355 %%Orientation: Portrait @@ -20,29 +20,42 @@ gnudict begin /Dashlength 1 def /Landscape false def /Level1 false def -/Level3 false def /Rounded false def /ClipToBoundingBox false def -/SuppressPDFMark false def /TransparentPatterns false def /gnulinewidth 5.000 def /userlinewidth gnulinewidth def /Gamma 1.0 def -/BackgroundColor {-1.000 -1.000 -1.000} def % /vshift -33 def /dl1 { - 10.0 Dashlength userlinewidth gnulinewidth div mul mul mul + 10.0 Dashlength mul mul Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if } def /dl2 { - 10.0 Dashlength userlinewidth gnulinewidth div mul mul mul + 10.0 Dashlength mul mul Rounded { currentlinewidth 0.75 mul add } if } def /hpt_ 31.5 def /vpt_ 31.5 def /hpt hpt_ def /vpt vpt_ def +Level1 {} { +/SDict 10 dict def +systemdict /pdfmark known not { + userdict /pdfmark systemdict /cleartomark get put +} if +SDict begin [ + /Title (Is Parallel Programming Hard, And, If So, What Can You Do About It?) + /Subject (gnuplot plot) + /Creator (gnuplot 4.4 patchlevel 0) + /Author (paulmck) +% /Producer (gnuplot) +% /Keywords () + /CreationDate (Wed Jan 5 07:20:51 2011) + /DOCINFO pdfmark +end +} ifelse /doclip { ClipToBoundingBox { newpath 50 50 moveto 302 50 lineto 302 410 lineto 50 410 lineto closepath @@ -50,7 +63,7 @@ gnudict begin } if } def % -% Gnuplot Prolog Version 5.1 (Oct 2015) +% Gnuplot Prolog Version 4.4 (January 2010) % %/SuppressPDFMark true def % @@ -62,16 +75,15 @@ gnudict begin /Z {closepath} bind def /C {setrgbcolor} bind def /f {rlineto fill} bind def -/g {setgray} bind def /Gshow {show} def % May be redefined later in the file to support UTF-8 /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow {currentpoint stroke M 0 vshift R - Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def /Rshow {currentpoint stroke M dup stringwidth pop neg vshift R - Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def /Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R - Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def /UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def /DL {Color {setrgbcolor Solid {pop []} if 0 setdash} @@ -84,8 +96,7 @@ gnudict begin dup 1 lt {pop 1} if 10 mul /udl exch def} def /PL {stroke userlinewidth setlinewidth Rounded {1 setlinejoin 1 setlinecap} if} def -3.8 setmiterlimit -% Classic Line colors (version 5.0) +% Default Line colors /LCw {1 1 1} def /LCb {0 0 0} def /LCa {0 0 0} def @@ -98,21 +109,19 @@ gnudict begin /LC6 {0 0 0} def /LC7 {1 0.3 0} def /LC8 {0.5 0.5 0.5} def -% Default dash patterns (version 5.0) -/LTB {BL [] LCb DL} def +% Default Line Types /LTw {PL [] 1 setgray} def -/LTb {PL [] LCb DL} def +/LTb {BL [] LCb DL} def /LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def /LT0 {PL [] LC0 DL} def -/LT1 {PL [2 dl1 3 dl2] LC1 DL} def -/LT2 {PL [1 dl1 1.5 dl2] LC2 DL} def -/LT3 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC3 DL} def -/LT4 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def -/LT5 {PL [4 dl1 2 dl2] LC5 DL} def -/LT6 {PL [1.5 dl1 1.5 dl2 1.5 dl1 1.5 dl2 1.5 dl1 6 dl2] LC6 DL} def -/LT7 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC7 DL} def -/LT8 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC8 DL} def -/SL {[] 0 setdash} def +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def /Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def /Dia {stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V @@ -319,8 +328,7 @@ gnudict begin /PatternFill {gsave /PFa [ 9 2 roll ] def PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec - TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse - clip + gsave 1 setgray fill grestore clip currentlinewidth 0.5 mul setlinewidth /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def 0 0 M PFa 5 get rotate PFs -2 div dup translate @@ -334,14 +342,9 @@ gnudict begin % /languagelevel where {pop languagelevel} {1} ifelse -dup 2 lt - {/InterpretLevel1 true def - /InterpretLevel3 false def} - {/InterpretLevel1 Level1 def - 2 gt - {/InterpretLevel3 Level3 def} - {/InterpretLevel3 false def} - ifelse } + 2 lt + {/InterpretLevel1 true def} + {/InterpretLevel1 Level1 def} ifelse % % PostScript level 2 pattern fill definitions @@ -430,17 +433,16 @@ Level1 {Level1PatternFill} {Level2PatternFill} ifelse /Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall currentdict end definefont pop -% /MFshow { { dup 5 get 3 ge { 5 get 3 eq {gsave} {grestore} ifelse } {dup dup 0 get findfont exch 1 get scalefont setfont [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 - get exch 4 get {textshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get - textshow 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop pop aload pop M} ifelse }ifelse }ifelse } ifelse } forall} def @@ -1848,51 +1850,6 @@ ba6d2a8e73b10c6de72a8e8f3bfeab8344fe6622fadd5d01457e31e8facd74cb cleartomark {restore}if %%EndProcSet -Level1 SuppressPDFMark or -{} { -/SDict 10 dict def -systemdict /pdfmark known not { - userdict /pdfmark systemdict /cleartomark get put -} if -SDict begin [ - /Title (Is Parallel Programming Hard, And, If So, What Can You Do About It?) - /Subject (gnuplot plot) - /Creator (gnuplot 5.0 patchlevel 3) - /Author (imre) -% /Producer (gnuplot) -% /Keywords () - /CreationDate (Mon Jul 16 22:02:17 2018) - /DOCINFO pdfmark -end -} ifelse -% -% Support for boxed text - Ethan A Merritt May 2005 -% -/InitTextBox { userdict /TBy2 3 -1 roll put userdict /TBx2 3 -1 roll put - userdict /TBy1 3 -1 roll put userdict /TBx1 3 -1 roll put - /Boxing true def } def -/ExtendTextBox { Boxing - { gsave dup false charpath pathbbox - dup TBy2 gt {userdict /TBy2 3 -1 roll put} {pop} ifelse - dup TBx2 gt {userdict /TBx2 3 -1 roll put} {pop} ifelse - dup TBy1 lt {userdict /TBy1 3 -1 roll put} {pop} ifelse - dup TBx1 lt {userdict /TBx1 3 -1 roll put} {pop} ifelse - grestore } if } def -/PopTextBox { newpath TBx1 TBxmargin sub TBy1 TBymargin sub M - TBx1 TBxmargin sub TBy2 TBymargin add L - TBx2 TBxmargin add TBy2 TBymargin add L - TBx2 TBxmargin add TBy1 TBymargin sub L closepath } def -/DrawTextBox { PopTextBox stroke /Boxing false def} def -/FillTextBox { gsave PopTextBox 1 1 1 setrgbcolor fill grestore /Boxing false def} def -0 0 0 0 InitTextBox -/TBxmargin 20 def -/TBymargin 20 def -/Boxing false def -/textshow { ExtendTextBox Gshow } def -% -% redundant definitions for compatibility with prologue.ps older than 5.0.2 -/LTB {BL [] LCb DL} def -/LTb {PL [] LCb DL} def end %%EndProlog %%Page: 1 1 @@ -1904,436 +1861,595 @@ doclip 0 setgray newpath (NimbusSanL-Regu) findfont 100 scalefont setfont -BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if 1.000 UL LTb -LCb setrgbcolor -490 975 M +670 1050 M 63 0 V -1786 0 R +1636 0 R -63 0 V stroke -430 975 M +610 1050 M [ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 0)] ] -33.3 MRshow 1.000 UL LTb -LCb setrgbcolor -490 1181 M +670 1239 M 63 0 V -1786 0 R +1636 0 R -63 0 V stroke -430 1181 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 20)] +610 1239 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 5000)] ] -33.3 MRshow 1.000 UL LTb -LCb setrgbcolor -490 1386 M +670 1428 M 63 0 V -1786 0 R +1636 0 R -63 0 V stroke -430 1386 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 40)] +610 1428 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 10000)] ] -33.3 MRshow 1.000 UL LTb -LCb setrgbcolor -490 1592 M +670 1617 M 63 0 V -1786 0 R +1636 0 R -63 0 V stroke -430 1592 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 60)] +610 1617 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 15000)] ] -33.3 MRshow 1.000 UL LTb -LCb setrgbcolor -490 1797 M +670 1806 M 63 0 V -1786 0 R +1636 0 R -63 0 V stroke -430 1797 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 80)] +610 1806 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 20000)] ] -33.3 MRshow 1.000 UL LTb -LCb setrgbcolor -490 2003 M +670 1994 M 63 0 V -1786 0 R +1636 0 R -63 0 V stroke -430 2003 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 100)] +610 1994 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 25000)] ] -33.3 MRshow 1.000 UL LTb -LCb setrgbcolor -490 2208 M +670 2183 M 63 0 V -1786 0 R +1636 0 R -63 0 V stroke -430 2208 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 120)] +610 2183 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 30000)] ] -33.3 MRshow 1.000 UL LTb -LCb setrgbcolor -490 2414 M +670 2372 M 63 0 V -1786 0 R +1636 0 R -63 0 V stroke -430 2414 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 140)] +610 2372 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 35000)] ] -33.3 MRshow 1.000 UL LTb -LCb setrgbcolor -490 2619 M +670 2561 M 63 0 V -1786 0 R +1636 0 R -63 0 V stroke -430 2619 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 160)] +610 2561 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 40000)] ] -33.3 MRshow 1.000 UL LTb -LCb setrgbcolor -490 2825 M +670 2750 M 63 0 V -1786 0 R +1636 0 R -63 0 V stroke -430 2825 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 180)] +610 2750 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 45000)] ] -33.3 MRshow 1.000 UL LTb -LCb setrgbcolor -490 975 M +670 1050 M 0 63 V -0 1787 R +0 1637 R 0 -63 V stroke -490 875 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 1)] +670 950 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 0)] ] -33.3 MCshow 1.000 UL LTb -LCb setrgbcolor -754 975 M +913 1050 M 0 63 V -0 1787 R +0 1637 R 0 -63 V stroke -754 875 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 2)] +913 950 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 20)] ] -33.3 MCshow 1.000 UL LTb -LCb setrgbcolor -1018 975 M +1155 1050 M 0 63 V -0 1787 R +0 1637 R 0 -63 V stroke -1018 875 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 3)] +1155 950 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 40)] ] -33.3 MCshow 1.000 UL LTb -LCb setrgbcolor -1282 975 M +1398 1050 M 0 63 V -0 1787 R +0 1637 R 0 -63 V stroke -1282 875 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 4)] +1398 950 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 60)] ] -33.3 MCshow 1.000 UL LTb -LCb setrgbcolor -1547 975 M +1641 1050 M 0 63 V -0 1787 R +0 1637 R 0 -63 V stroke -1547 875 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 5)] +1641 950 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 80)] ] -33.3 MCshow 1.000 UL LTb -LCb setrgbcolor -1811 975 M +1884 1050 M 0 63 V -0 1787 R +0 1637 R 0 -63 V stroke -1811 875 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 6)] +1884 950 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 100)] ] -33.3 MCshow 1.000 UL LTb -LCb setrgbcolor -2075 975 M +2126 1050 M 0 63 V -0 1787 R +0 1637 R 0 -63 V stroke -2075 875 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 7)] +2126 950 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 120)] ] -33.3 MCshow 1.000 UL LTb -LCb setrgbcolor -2339 975 M +2369 1050 M 0 63 V -0 1787 R +0 1637 R 0 -63 V stroke -2339 875 M -[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 8)] +2369 950 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 140)] ] -33.3 MCshow 1.000 UL LTb -LCb setrgbcolor -1.000 UL -LTB -LCb setrgbcolor -490 2825 N -490 975 L -1849 0 V -0 1850 V --1849 0 V -Z stroke -1.000 UP 1.000 UL LTb +670 2750 N +0 -1700 V +1699 0 V +0 1700 V +-1699 0 V +Z stroke LCb setrgbcolor -LCb setrgbcolor -80 1900 M +140 1900 M currentpoint gsave translate -270 rotate 0 0 moveto [ [(NimbusSanL-Regu) 100.0 0.0 true true 0 (Time Per Increment \(ns\))] ] -33.3 MCshow grestore LTb LCb setrgbcolor -1414 725 M +1519 800 M [ [(NimbusSanL-Regu) 100.0 0.0 true true 0 (Number of CPUs \(Threads\))] ] -33.3 MCshow LTb -% Begin plot #1 1.000 UP 1.000 UL LTb -LCb setrgbcolor +% Begin plot #1 +1.000 UP +1.000 UL +LT0 /NimbusSanL-Regu findfont 100 scalefont setfont -/vshift -33 def -490 1019 M -0 10 V -0 -10 R -31 0 V --31 10 R -31 0 V -233 335 R -0 28 V --31 -28 R -62 0 V --62 28 R -62 0 V -233 102 R -0 112 V -987 1494 M -62 0 V --62 112 R -62 0 V -233 3 R -0 199 V --31 -199 R -62 0 V --62 199 R -62 0 V -234 69 R -0 133 V --31 -133 R -62 0 V --62 133 R -62 0 V -233 -1 R -0 241 V --31 -241 R -62 0 V --62 241 R -62 0 V -233 -56 R -0 238 V --31 -238 R -62 0 V --62 238 R -62 0 V -233 63 R -0 200 V --31 -200 R -31 0 V --31 200 R -31 0 V -490 1023 Pls -754 1378 Pls -1018 1569 Pls -1282 1696 Pls -1547 1934 Pls -1811 2119 Pls -2075 2300 Pls -2339 2625 Pls +682 1051 M +0 1 V +-31 -1 R +62 0 V +-62 1 R +62 0 V +18 12 R +0 3 V +-31 -3 R +62 0 V +-62 3 R +62 0 V +17 12 R +0 6 V +-31 -6 R +62 0 V +-62 6 R +62 0 V +18 20 R +0 6 V +-31 -6 R +62 0 V +-62 6 R +62 0 V +17 27 R +0 9 V +-31 -9 R +62 0 V +-62 9 R +62 0 V +18 32 R +0 12 V +-31 -12 R +62 0 V +-62 12 R +62 0 V +17 26 R +0 14 V +-31 -14 R +62 0 V +-62 14 R +62 0 V +18 32 R +0 30 V +-31 -30 R +62 0 V +-62 30 R +62 0 V +17 29 R +0 46 V +-31 -46 R +62 0 V +-62 46 R +62 0 V +18 6 R +0 45 V +-31 -45 R +62 0 V +-62 45 R +62 0 V +18 42 R +0 48 V +-31 -48 R +62 0 V +-62 48 R +62 0 V +17 24 R +0 39 V +-31 -39 R +62 0 V +-62 39 R +62 0 V +18 22 R +0 58 V +-31 -58 R +62 0 V +-62 58 R +62 0 V +17 24 R +0 32 V +-31 -32 R +62 0 V +-62 32 R +62 0 V +18 29 R +0 82 V +-31 -82 R +62 0 V +-62 82 R +62 0 V +17 -33 R +0 74 V +-31 -74 R +62 0 V +-62 74 R +62 0 V +18 -5 R +0 79 V +-31 -79 R +62 0 V +-62 79 R +62 0 V +17 -13 R +0 83 V +-31 -83 R +62 0 V +stroke 1538 1921 M +-62 83 R +62 0 V +18 -32 R +0 72 V +-31 -72 R +62 0 V +-62 72 R +62 0 V +17 -12 R +0 85 V +-31 -85 R +62 0 V +-62 85 R +62 0 V +18 -31 R +0 55 V +-31 -55 R +62 0 V +-62 55 R +62 0 V +18 -12 R +0 107 V +-31 -107 R +62 0 V +-62 107 R +62 0 V +17 -48 R +0 81 V +-31 -81 R +62 0 V +-62 81 R +62 0 V +18 -31 R +0 69 V +-31 -69 R +62 0 V +-62 69 R +62 0 V +17 -36 R +0 90 V +-31 -90 R +62 0 V +-62 90 R +62 0 V +18 -51 R +0 79 V +-31 -79 R +62 0 V +-62 79 R +62 0 V +17 0 R +0 47 V +-31 -47 R +62 0 V +-62 47 R +62 0 V +18 -221 R +0 217 V +-31 -217 R +62 0 V +-62 217 R +62 0 V +17 31 R +0 83 V +-31 -83 R +62 0 V +-62 83 R +62 0 V +18 -291 R +0 304 V +-31 -304 R +62 0 V +-62 304 R +62 0 V +17 -44 R +0 104 V +-31 -104 R +62 0 V +-62 104 R +62 0 V +18 -16 R +0 73 V +-31 -73 R +62 0 V +-62 73 R +62 0 V +682 1052 Pls +731 1066 Pls +779 1081 Pls +828 1108 Pls +876 1143 Pls +925 1185 Pls +973 1224 Pls +1022 1276 Pls +1070 1339 Pls +1119 1404 Pls +1168 1479 Pls +1216 1548 Pls +1265 1630 Pls +1313 1690 Pls +1362 1764 Pls +1410 1823 Pls +1459 1888 Pls +1507 1969 Pls +1556 2005 Pls +1604 2071 Pls +1653 2123 Pls +1702 2171 Pls +1750 2223 Pls +1799 2276 Pls +1847 2336 Pls +1896 2353 Pls +1944 2416 Pls +1993 2352 Pls +2041 2515 Pls +2090 2453 Pls +2138 2572 Pls +2187 2650 Pls % End plot #1 % Begin plot #2 1.000 UL -LTb LT1 -LCb setrgbcolor /NimbusSanL-Regu findfont 100 scalefont setfont -490 1023 M -264 355 V -264 191 V -264 127 V -265 238 V -264 185 V -264 181 V -264 325 V +682 1052 M +49 14 V +48 15 V +49 27 V +48 35 V +49 42 V +48 39 V +49 52 V +48 63 V +49 65 V +49 75 V +48 69 V +49 82 V +48 60 V +49 74 V +48 59 V +49 65 V +48 81 V +49 36 V +48 66 V +49 52 V +49 48 V +48 52 V +49 53 V +48 60 V +49 17 V +48 63 V +49 -64 V +48 163 V +49 -62 V +48 119 V +49 78 V % End plot #2 % Begin plot #3 stroke -LTb LT2 -LCb setrgbcolor /NimbusSanL-Regu findfont 100 scalefont setfont -490 1066 M -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V -19 0 V -18 0 V -19 0 V +682 1050 M +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V +15 0 V +15 0 V +16 0 V +15 0 V +15 0 V % End plot #3 stroke -2.000 UL LTb -LCb setrgbcolor -1.000 UL -LTB -LCb setrgbcolor -490 2825 N -490 975 L -1849 0 V -0 1850 V --1849 0 V +670 2750 N +0 -1700 V +1699 0 V +0 1700 V +-1699 0 V Z stroke 1.000 UP 1.000 UL LTb -LCb setrgbcolor stroke grestore end diff --git a/CodeSamples/count/atomic125.png b/CodeSamples/count/atomic125.png index 8cb327e16335a307735e8f9423a973fa5b7362aa..f2b860ae4d0615f7580a5320ee7305cfd0777739 100644 GIT binary patch delta 2897 zcmX9;c_37K8$M^oHttxap(a~R*1EEkQP#mta>r0w)F%vX(#o}qoKvJ_#Dox{B2B?|>5mj1%=s-WUYD|Ir3A`BL;n2BMt-h&Sp-pD@jk6a;q)x&o0yaDF!PMHzH1kp zd)iuGk{c?j+gOSY50obKe7|J-lRh^e+=anh*=#Q7HLQ~1Mlef3V@Lk#y%uRNO`#&U zm}etEr}j+-41Mp@)0d#VOzm0#(QGVO>alCB?TS5)CG?Z0@l}O5i27fxXlvU~OS`iS z4^Pc!gte&}i4a!upf&^htl%9TJF3K(7YiP`8pDThaeVO-dD=Q0U9y*(NiUFMQ{Qk_otkVSBA+G0-%icP4c!vsyR=n5WCzt*f&y;AF3>gmB@zQto ziPTNz%QjP+RUx6-?>1^y+lQ9S(U!oFvxy?{FMZekj@l{fa(lL_(Ci8w0VHW=tpwIP z89$d+Hw3i2c=dL_3j2dWlzly7X-aY#rIS-*#TGWLD<9;Byz3nR=-4w4rszB8$i>xA z%V(;>bM%8R$Q$?Cqy1}|eq{pD!LLcgo_7;?h?V-6Q$yhFvh$min6EAZ!b1UuCe_}> z@gD73%w=@Euk0FI=^%rq^wGECUG-XxH3Rajq7+Tt)l>#CuxABD7|J`h=nbI@FyqM( z_LZUwd=lM#O^L;#@Ah{eld&z7V;mz zOa}QbFX?l}+He(~#c`}en9%h2_r|6c2Tck`q|m%X=ZoDS{}eFUzO=7<+U@g8=WwI2 zgL5wNK=fCv+nFi1d%&53b2k%yZEFars2X(3Rm5}DF*KlLFgyHb>lM`5WaH!ut^%(f zvPN2E58uVz7!@M<5|v`SS>*%WNB|m-_ZV@#mnk_9@T|&HJ(vpSS$`ck@YRe`VfE}K z!wb4?d=(MBC_DZ7r&9jsn6oqDh!ucW3NfcG|BTGs#*&>Mga1aaTAEZ@0IG`H)$fEI zZ=qKSs+(S9A5N|Jw2GFhSbY2%bmIg}-$W5U{Nt&BGOSyZ=H-g$K~am5mpy{43@3py z+x&rlO44qyDptPlp>jW6vJ=`;ed?tdS!iW2Xd`UYOd&?Izo zJ*kj!gmDs((NDLwEo!=>w3GEs`CiakI2c1Tkvw?+{38gPkdXsHy9?xP6wiS9w*wL;~iI= z(eZnbqP2nkZyqf>Cl*h;@RH9a%DIw>>uhV=G&8Z8{V0OP!O)#P-s=T-4eP4f>J)G+ zzz@_e(i$&>q+B@~U<}lCN)+T7np@j~-EBr%{xc_>$E$#V)wX2}XrTE6NT1 zRE3p6(>v4$?=8^Uu;%+uMzs5q$ALC?i0)x}L!wd@*3Z|z`?!iT8+rOR5Y4EPHnlTh zx7wBq2fw4W9+Qzm*J_RXgr4c17tA6hymh{~p(YMehPzJ@|C`ZxnkfW`;gcJMey(5I_MO+#8H&eSCzH zZwkc2YoR(KD+v%Q6g=qcsoE8)ny&_8X)ZFW0?e+eM3q~Y5IwknI_ss(O9#Y`PmCTJ znIwbQ=f@y`F2f2yrmALNqo04_(XHJ?)R8cwjPzs> z3e3uRmTwVki2b<1OXl@`Cn1KWwgyP+zRB^FXW|1g04S-a#iunBeSPj(Dh1wsZSFg(u5&!ioi-q zCT|r!zJU<3x@HMD5KqVa+(4$=^iHk^b7V%LR)A+E923>!kGpO4{Y*?*_n}4JLL`v! zp`4)mIDIn^c|C)OKlJLKsRC6vmnXrkUaD?BG!ndiwc~FSTz`O}-HvkM+u5b>r8Ova zjn@L$Upae&!eK&VI3fiVV(tJkmx}}<40Oy6br&6K^=E<4uye~|&3f`Tr(RAmX1kfR z2Anv;#{dBA_IMJ{;W+rH34OB4CW6mM!dRztu1Y%?4)xlQU5;m z)&85!skw1VWkp4s>)l4dN}ZmDB==JFl2Ezqt9ZV^eskyGLbnZRC4kWJS${?5nONWU zt9chPii&$hpdjfKA8#9RUI5|dWm4Uev$1%ykGVEH{xPMb6?L|#S?efy%%9_)(&x7G znldy|HujM~wQ1Q!1pZx}+_zU;GSA~Ec9s8G$Tf-^F4+ur)XUWCa?82qn7LN|`FGe( z?TtJZ#TqYI(EM$eiK*Y|kdKGb*Tlq@ZTH7CaXGOdH EKlOoE^Z)<= delta 2747 zcma)8i96KWAO3!42E*8jBBCpmtu)y}mM9fj%9?dZi=m8=NX)3vVk?ZnL>G;aEjuyO z?S^a55;ZlZG$y+-2($Q&?)?LP=XuWayq|O4=RN21c|YfQ&O?P2`LuoDf$IJH!1F*} zm}~9SH|aPG005#PXWYX8K=SXc31(_ZDguDmiuFkg=Sbq*R|$M+<4)mo*~E#?+|7MH zD6ECGtmcRG#$VH}XT_#p=@m%lEwzDzb-43U-B8hy?CiU`S zfJf?Z`HXjd#&Xk!=6dDiFlxlycUQ%G4pnV`JifX7PC&5|mfj6W4hSK9ZJkI`%G$UR zYF9`7tk2bj`RokY3&zVH>pyk&SU%EPR^vtgd>yL1GL|&8Jm$}spmNJ?5_<`K4oa?O zZF7a&jIXta$4*x*v94n>_&G|36SapLQK=Qxhz>qZL@kL&{j)pP$P@x=;YpI8Bjr1DG;xx>#JEkwz0Q@ZXrxc7=i z%Mb07Bd-Xq7#W>hd=xfc@s9gaNtexJ`r#oiuP#;1O-1u6nr9$UgU(JoF{^FZN_KqE z<$gP=Fz3WiKsy3k`L8@}(qDVtEzDaL_t$XY8|loN;i>Gje19#7=4AzC~M;*B0>-T^p$ez$~7ko}pQ)}55|mmu;O`_84|L?ERg%SZ*iUI<7QhF3OnOfB1x zYS>F=&HQgYm>YDSahRoXSWD`p9LCwHk=dgSkv~sz*&F_L)UUr}a21Ap?nRbW!wF}{=;{f4WF7^?lT;C(}bw)%UMoS<>qP`>P=bRM*xuO=nwVeNK!UE_!ft3iPhnE$*C7|$tQaWH zbOGE(OT6A`;7XQGxe2(3o9TnbBg6wJSK6d8D6Vz}aAMe9fzzd@MUXDEiz$HQpSJ}| z5?8RIbm>xq2^Jx+pWiD(QE|TB?u=c!oF^b$)SV}9*x^zE)0X_@z@&h%GUtHy_YYAZ7tLT(?1WWKe3tl?)aYD5c$sCS;_%J~wpiRMPXERd z^Ej5nGGk2`#f}`NJW<1et%M9`Y><5?Q9IM6GC5XyMj23T^n9ut}_W zEJWUEDq$oO5@{l3H0JJW3XwmzE{NL_tVb%3wmk-fGg|y^qLa%9)yP2_0t3yYDdEz` zLv#8c9mB3kAJhf(D!dPLHtn`K~x&6YF}v~J8U_QrG%^!^KWD0Yi|xE z3kv6H4x&Croy9rrk%A$K381ZK12qpw7@Gfn6768L#VCi!S8{l#fyBjAx}-^~*}b?E zkzbQaVz#xweN+4Vs|}J89)9BSRdGr=^+_V!FLeh5+3;-@A(6)8Ps|)YnnA{%g>BIC zGQ!2b@N%#j!++YPKjqKyEs0CL+bJ}!wtaUR5R!T3pm>R%##A%66^LE(NEe77XINV& z9zwl?|3Mwem3hkdvGo@eqYfa6z1KT{14k5+(gJ0N2*4?4w4-C`Ih!DXb0b%5_h?@f z`1I07jyOF$NC1SL8S+RMP0|riJb<&y5epWP#6VjYF|^?6lnw|L2mTi0nc_-(jwB13 zLpkS2%!>!!Fk~s&OGRJ5v;+i`G)HwXUaH3W2g?k=q)C&{>&aBTOHhIb-Ypk6#n!|% zjQ`UsYHinD_75@bx!^@@eD97N?omeSmz4>DNu`S_KQ9Re&ed(N-Tam!D*p8*QNAJ zQ$iv{kR#<2y08#9q|=QT)V@5oH)0z_#ddQh6OiBA=6%7SK|@9D4Ev$~aluUlV`JrG zQ^nlXzbCU2qpRl=P%nbYn5*MxHUprrML$n%)HXjH^32lhRfMR=o$$1KmkWAf`5~VM zcp5eB`x6&1-oWVyQM##djp?UQvVrG>hGosQUdUP_Z8pjycw-&i)(n%p_Hln+9^Sls zcHj!xXuK=N-@(X>-xnj*xFPqECQFHXR+E9CcdSA{j5cF?mup6w=g)#)4 zq6}SI3%}6)As0Nz9h^pW&N^@Wz+C$D!;}%y^jBCtKI-=TT@(yC&PLEX=c8`VMoayY zQjrRJ_4mc~-0pta$K*N%%DULl_o*o<5CD+1o6ts+fwf}MxXG>jt*z`&R#^Jp{U3(j BSH=JU diff --git a/CodeSamples/count/atomic_nehalem.eps b/CodeSamples/count/atomic_nehalem.eps new file mode 100644 index 0000000..5e3ed2b --- /dev/null +++ b/CodeSamples/count/atomic_nehalem.eps @@ -0,0 +1,2266 @@ +%!PS-Adobe-2.0 +%%Title: Is Parallel Programming Hard, And, If So, What Can You Do About It? +%%Creator: gnuplot 4.4 patchlevel 0 +%%CreationDate: Wed Jan 5 07:20:50 2011 +%%DocumentFonts: (atend) +%%BoundingBox: 50 95 302 355 +%%Orientation: Portrait +%%Pages: (atend) +%%EndComments +%%BeginProlog +/gnudict 256 dict def +gnudict begin +% +% The following true/false flags may be edited by hand if desired. +% The unit line width and grayscale image gamma correction may also be changed. +% +/Color false def +/Blacktext false def +/Solid false def +/Dashlength 1 def +/Landscape false def +/Level1 false def +/Rounded false def +/ClipToBoundingBox false def +/TransparentPatterns false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/Gamma 1.0 def +% +/vshift -33 def +/dl1 { + 10.0 Dashlength mul mul + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if +} def +/dl2 { + 10.0 Dashlength mul mul + Rounded { currentlinewidth 0.75 mul add } if +} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +Level1 {} { +/SDict 10 dict def +systemdict /pdfmark known not { + userdict /pdfmark systemdict /cleartomark get put +} if +SDict begin [ + /Title (Is Parallel Programming Hard, And, If So, What Can You Do About It?) + /Subject (gnuplot plot) + /Creator (gnuplot 4.4 patchlevel 0) + /Author (paulmck) +% /Producer (gnuplot) +% /Keywords () + /CreationDate (Wed Jan 5 07:20:50 2011) + /DOCINFO pdfmark +end +} ifelse +/doclip { + ClipToBoundingBox { + newpath 50 50 moveto 302 50 lineto 302 410 lineto 50 410 lineto closepath + clip + } if +} def +% +% Gnuplot Prolog Version 4.4 (January 2010) +% +%/SuppressPDFMark true def +% +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/N {newpath moveto} bind def +/Z {closepath} bind def +/C {setrgbcolor} bind def +/f {rlineto fill} bind def +/Gshow {show} def % May be redefined later in the file to support UTF-8 +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow {currentpoint stroke M 0 vshift R + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R + Blacktext {gsave 0 setgray show grestore} {show} ifelse} def +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def +/BL {stroke userlinewidth 2 mul setlinewidth + Rounded {1 setlinejoin 1 setlinecap} if} def +/AL {stroke userlinewidth 2 div setlinewidth + Rounded {1 setlinejoin 1 setlinecap} if} def +/UL {dup gnulinewidth mul /userlinewidth exch def + dup 1 lt {pop 1} if 10 mul /udl exch def} def +/PL {stroke userlinewidth setlinewidth + Rounded {1 setlinejoin 1 setlinecap} if} def +% Default Line colors +/LCw {1 1 1} def +/LCb {0 0 0} def +/LCa {0 0 0} def +/LC0 {1 0 0} def +/LC1 {0 1 0} def +/LC2 {0 0 1} def +/LC3 {1 0 1} def +/LC4 {0 1 1} def +/LC5 {1 1 0} def +/LC6 {0 0 0} def +/LC7 {1 0.3 0} def +/LC8 {0.5 0.5 0.5} def +% Default Line Types +/LTw {PL [] 1 setgray} def +/LTb {BL [] LCb DL} def +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def +/LT0 {PL [] LC0 DL} def +/LT1 {PL [4 dl1 2 dl2] LC1 DL} def +/LT2 {PL [2 dl1 3 dl2] LC2 DL} def +/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def +/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def +/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def +/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def +/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def +/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def +/Dia {stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt} def +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt} def +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke} def +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt} def +/Star {2 copy Pls Crs} def +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill} def +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill} def +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt} def +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF {stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill} def +/Pent {stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt} def +/PentF {stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore} def +/Circle {stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt} def +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def +/C1 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath} bind def +/C2 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath} bind def +/C3 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath} bind def +/C4 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath} bind def +/C5 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc} bind def +/C6 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath} bind def +/C7 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath} bind def +/C8 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C9 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath} bind def +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath} bind def +/C11 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C12 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C13 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C14 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc} bind def +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath} bind def +/Square {dup Rec} bind def +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill Bsquare} bind def +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare} bind def +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare} bind def +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare} bind def +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def +/DiaE {stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke} def +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke} def +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke} def +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke} def +/PentE {stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore} def +/CircE {stroke [] 0 setdash + hpt 0 360 arc stroke} def +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def +/DiaW {stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V Opaque stroke} def +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V Opaque stroke} def +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V Opaque stroke} def +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V Opaque stroke} def +/PentW {stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + Opaque stroke grestore} def +/CircW {stroke [] 0 setdash + hpt 0 360 arc Opaque stroke} def +/BoxFill {gsave Rec 1 setgray fill grestore} def +/Density { + /Fillden exch def + currentrgbcolor + /ColB exch def /ColG exch def /ColR exch def + /ColR ColR Fillden mul Fillden sub 1 add def + /ColG ColG Fillden mul Fillden sub 1 add def + /ColB ColB Fillden mul Fillden sub 1 add def + ColR ColG ColB setrgbcolor} def +/BoxColFill {gsave Rec PolyFill} def +/PolyFill {gsave Density fill grestore grestore} def +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def +% +% PostScript Level 1 Pattern Fill routine for rectangles +% Usage: x y w h s a XX PatternFill +% x,y = lower left corner of box to be filled +% w,h = width and height of box +% a = angle in degrees between lines and x-axis +% XX = 0/1 for no/yes cross-hatch +% +/PatternFill {gsave /PFa [ 9 2 roll ] def + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec + gsave 1 setgray fill grestore clip + currentlinewidth 0.5 mul setlinewidth + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def + 0 0 M PFa 5 get rotate PFs -2 div dup translate + 0 1 PFs PFa 4 get div 1 add floor cvi + {PFa 4 get mul 0 M 0 PFs V} for + 0 PFa 6 get ne { + 0 1 PFs PFa 4 get div 1 add floor cvi + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for + } if + stroke grestore} def +% +/languagelevel where + {pop languagelevel} {1} ifelse + 2 lt + {/InterpretLevel1 true def} + {/InterpretLevel1 Level1 def} + ifelse +% +% PostScript level 2 pattern fill definitions +% +/Level2PatternFill { +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} + bind def +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} +>> matrix makepattern +/Pat1 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} +>> matrix makepattern +/Pat2 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L + 8 8 L 8 0 L 0 0 L fill} +>> matrix makepattern +/Pat3 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L + 0 12 M 12 0 L stroke} +>> matrix makepattern +/Pat4 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L + 0 -4 M 12 8 L stroke} +>> matrix makepattern +/Pat5 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} +>> matrix makepattern +/Pat6 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} +>> matrix makepattern +/Pat7 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L + 12 0 M -4 8 L 12 4 M 0 10 L stroke} +>> matrix makepattern +/Pat8 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L + -4 0 M 12 8 L -4 4 M 8 10 L stroke} +>> matrix makepattern +/Pat9 exch def +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def +} def +% +% +%End of PostScript Level 2 code +% +/PatternBgnd { + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse +} def +% +% Substitute for Level 2 pattern fill codes with +% grayscale if Level 2 support is not selected. +% +/Level1PatternFill { +/Pattern1 {0.250 Density} bind def +/Pattern2 {0.500 Density} bind def +/Pattern3 {0.750 Density} bind def +/Pattern4 {0.125 Density} bind def +/Pattern5 {0.375 Density} bind def +/Pattern6 {0.625 Density} bind def +/Pattern7 {0.875 Density} bind def +} def +% +% Now test for support of Level 2 code +% +Level1 {Level1PatternFill} {Level2PatternFill} ifelse +% +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall +currentdict end definefont pop +/MFshow { + { dup 5 get 3 ge + { 5 get 3 eq {gsave} {grestore} ifelse } + {dup dup 0 get findfont exch 1 get scalefont setfont + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 + get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get + show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop + pop aload pop M} ifelse }ifelse }ifelse } + ifelse } + forall} def +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def +/MLshow { currentpoint stroke M + 0 exch R + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def +/MRshow { currentpoint stroke M + exch dup MFwidth neg 3 -1 roll R + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def +/MCshow { currentpoint stroke M + exch dup MFwidth -2 div 3 -1 roll R + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def +/XYsave { [( ) 1 2 true false 3 ()] } bind def +/XYrestore { [( ) 1 2 true false 4 ()] } bind def +%%BeginProcSet: ../../fonts/uhvr8a.pfb +%!PS-AdobeFont-1.0: NimbusSanL-Regu 1.05a +%%Title: Is Parallel Programming Hard, And, If So, What Can You Do About It? +%%CreationDate: Thu Mar 20 10:08:51 2003 +%%Creator: Primoz Peterlin +%%DocumentSuppliedResources: font NimbusSanL-Regu +% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development +% Generated by PfaEdit 1.0 (http://pfaedit.sf.net/) +%%EndComments +FontDirectory/NimbusSanL-Regu known{/NimbusSanL-Regu findfont dup/UniqueID known{dup +/UniqueID +get 5020902 eq exch/FontType get 1 eq and}{pop false}ifelse +{save true}{false}ifelse}{false}ifelse +11 dict begin +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def +/FontName /NimbusSanL-Regu def +/FontBBox [-174 -285 1001 953 ]readonly def +/UniqueID 5020902 def +/PaintType 0 def +/FontInfo 9 dict dup begin + /version (1.05a) readonly def + /Notice (Copyright \050URW\051++,Copyright 1999 by \050URW\051++ Design & De\ +velopment) readonly def + /FullName (Nimbus Sans L Regular) readonly def + /FamilyName (Nimbus Sans L) readonly def + /Weight (Regular) readonly def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -151 def + /UnderlineThickness 50 def +end readonly def +/Encoding StandardEncoding def +currentdict end +currentfile eexec +69d900414434c93d12731064fd536c430f0d1610cd3375452676cd606a5bb242 +c10907a5bd9376f92a21ad5b1848a71c72c2b1f2e98fc6dbfb2e6c7d58f554dd +1e867bfc4b07a94035a628f3e0ae48fd1aae1cd99ea9bd6a0c2a5cfb81777d13 +ff195e956f8556495b0e331dfab4b85e7ed17e24a88bdd49ed1e6a99e1ea53bd +56db08d1b932c6f8710f4f02883a38439bbb0802fab586d7afd17c75c2c867dc +8595e7f5d98f9a3c5a1e366b3823919841929cc44f5fe6d2a0393fdebd1d14ef +b6fae1fa9d15b5c57b3b3e241b704a53dd0f8d1edf05b0d574935acd7a667a8e +8743b27e906be3128e9943b31050d63500866cdaab6903605abffe737e95baa8 +cad2c6cd5380ff5961ccbc56980823ae0dc1f87ec51d79b152eaf1610afc7d0a +7275025ea45420cb6462ff426fd3a0f9f6356012188b3b072c9b3ac6e09e111e +66f203b84b28fa74e02f510bf39a9cb0da968a5287382c753a24e4b9b2a1b1b9 +0dfb3ef712e23996a31f115b9f6df17db1dfd368eb1a5ac477473b492bd7f155 +486c9f1d6f2818430819af48fa0e8228f88709c33e4522dd66cd8bd3889d987e +5c937a18018b64af4ca6ff1cc26375559e2e811867c10da979533c1fb61b0713 +d41619f53e993b6077539498beabf1cbc6135280888735b11ccf273ee1057b31 +affed835f9c07d59634c7b98cfc5973a20ab5704e65ed9508506fcd91d14a007 +dda6a32cbb92089f23879796c84033d649be7aee25fcdf372639eafa8b4f7119 +a94c1a2557be20cc99730867f3f12fa0d94060021a31b6ab77a76b3a82c5c21d +1655f9d60323cbd0370efa4a7ffe43ecee2ff2010f2198d5eaa915a1214a628f +539840b827766ee0723fb98694ebc19c52918bc041362e7d04f18f2b89a73098 +4f33bf9f3166f182cbe9c7f9634c0ff3c4595f0dbe6211ae7bfe2dd1dc7300eb +2e2dad4fe6db12fd1d656e5b9723e9b459e88ff180d7cf1694ddeab7835372b4 +2840c0c8e32ebf80bd51b9b0a2bc7eb5138b97c9bfc0b1601c4d50063e8fb4bc +d9ccc8285f548d0dbf8fed28461b2b566fa49155a8afc116434b39a80dea350a +2af2ed3e0ab1f8a3dc4399ef04a51aff29847eea033d8e37195ba171287bb3f9 +fb79ce4cc7655690e65382e789b41c41c77b2d243ff4aea956d5f5218acca29f +abdad21a2cb80d16023b4af7d030ba2708d94b6bf8605c6ecf8b6671bb1744c6 +355e1a6711e486de31d2776d66120f13950bccd6fef9c22dcead1181146da0fc +bc27f02e676ef58233e21381ecd7b548158b622e5c65c680f85339a93941020b +ebdfdfd1ccf0e84d8f10c927d146866249ca7a1f05301063aad96650ac58894e +4bd3a8597a039665257522809fc9c5a0f2561ba71185a191bc66dedb187acb59 +0e6b5d673e24e5b1efbf79bdc092690cce83ec0c64176d5ac1451b55cee4a860 +ed34e2fc4547f314bdf234d7d36ef03a241257518e9906fdcdfbd7e7b4c648a4 +1341787677bda550341b2f1dd6e4e8d22305e213e2e177da99d22d2ae0e15e63 +17c24dcd04ea82aefe5137553f2c394e8fa1ab72e31a31d995abae6181753ec8 +e7594f7e8810895a7545cf7e5698b05fa8a2bcf47fad1e4a86b28fa010cff56a +384800455be036ee896dff611fb78dfefdb0f0e48a9813080db35089bbcba525 +4f78a64e4090edf276645961c355bcd58b4d61f8c9797172f66a5814b1616c8b +fd6d3860cbeddc58f45670c2f28cc437e2e3d42ccecb4b145aaef9cae80c6547 +ea68c0d453945f7cb55e03fbdc29cf12046ca3f4638b131e03ea8a4d86efe79e +e274f4faa3e8043ae78c7ded728931c69b9f707cde97442b360779d4a07d1d8a +aaa7067444fbd50b106389c0c6c1917f72000e75a7f058ab549fbeaef528db44 +dbea3021441d9a00f04da765d9dde32f8a88ee07a77d530260443ddeddadef98 +b1eeafa5f6ed123e0ced5ef2f913911022705305bd94b9677c7db01eb32805d3 +57b6cb408978d492a8d8002925c55cfb20aaed5531a44fa926093a1cb2f373e1 +8a9dc8b2b87a39417d78d8899bddf305a682b4da5855dfad242d3115b7592d85 +0152057ee65b6382611580f8e1423b68e9dec70e8bc41368f1c07072f5bcc3c7 +c55d7f1126f1bd66fdc19e8190b4be56ee011c9485713f28d33d325bf17af103 +c3d05e77ba7cd12d8eced28c4267396f3a7155a8737f9b0d7db0319dad607ffe +22c319ee64f60c578c35add0a8d9d4d8618f1ee2909de8c549e85dccf16664e9 +fcecd191f8502faa5a84aa4e995b235dcb849f9a38631e3b9adc418f5d6b6872 +5d842d936ce35feb53c542bc0ae4d56f9a2ceccaa12e4893a8e9636497e2f53e +4f7429e293f84865b0b194d11073d99caad492fc6bfa3c6ae8c12e9d95aa5fe7 +f43a207656b360b4cbd3a5db3320769fdee29279c49084e4b8f79e73ab562bc7 +2424e480cd06ec4625f390849eb491bdb7edb7e1b36c547753cf8f73b7bd0299 +e2d51f2fd2ab4fe53c63c78552f4ebe1bc63a99f3b98646ec45b5198ec94002e +96698b27a9f1d866dd0aefa30551019eb4fed06363182d67759500c3a762254a +baf4a2f2a88c43757fa0afe83447634255fc5c1e00f7d267d63eb5fd43af1379 +53153675a67001b84480de176743c240b25a68042aac49ed34a569c8a039e504 +a40a70802f41b44e5800a7aae8e3377b74d39d491daa67bef4ad8170cc81a8a7 +b2cec0a7254f280cda8989c9751bf29c0c9f23043251592d1f0074b8b6aa22c9 +16d7674561cb69a2a4a81938b0f74cb885b1bae7c0655a7c984b6bb390f4b3ec +2afdb990105cd23b20ffaaaf9275429fbf067b5c12a514241c028d9bcbc5d67e +e73f5b8935eb6202618ec68bc3fc7ace51a5f57c8915f67299adac78aa16b13d +d10ca06a91943b36afdce58844433cf2163a70c202bd6284daef9e2ff9c2b947 +4fc4a738c02ed75c70e94189b84ac5545d34d3fbabc01f2ca718059ec54b1be4 +36b1aa20e11123f70792cf315baaa2fc2328a3aa6c506b75b8957c141f634e9f +637fd26f14d69d0678d5f8ee1a8340daa18aa6aea3bbba81b3ff4b7f4a006021 +05e08503c57c5e8dd6d3c74bf638791cb29cc6a95b2811cf61b3714077befc31 +8c4ee38b64d46e5965a9816cd56b91179b8a92e110f74d2902b8d89db7ddf5b0 +1242e3ca7a31b3dc17e59010e0962bb77092e92c6cfcf43e40e621b86e1845df +8f8927a0d3012efa854a7b3737608b0016cced92176d4ed553077f245117a4de +e1b60ad95a83246b63e594f3ee04db9bf961b46f8a7eec15d92216e60256e1bf +68bb5539e181250f81fd363ce13ca8990dcf8c3ff9152026fc384c1fab27fd52 +484be67f302a25f15a6c401e49e042c15b944150153c99fbff35563340e1b64d +f5d81d86a5075de64c1e8abd78a50c25b26dc97e99984009138d74bb8eb501aa +4323746bd9325057b1b5afe094894add806e5a7695fe9b0a14bfd2073a634b53 +b9cb7461b911244ad00d38b9758b2ee330fa934e907162b395ad1f5f7b821d8a +6b759dd9be83fc0b5d8c0e658db980c6205940e39b5dbbaa35e3bcaef7664c1d +5df03311f94c6f84ec94a7ba3aa9c1826016e9b117e49eaae4c9c8a243a6890c +e85200b8f4ec0574543dd594071e24a1c16163cf0ab2d9e187f9e15825f579da +8c3ed52426f200571834bbdc44adffaa4bc7c2d477f6e80deae0f254d07969ec +f456fd9597555db37c092b7456da6906a741ef1ce52397cae65ab7fd7e14ad34 +f29913bbf4ecfd81d705e3604c958057241936d1a07e1df6572b46399fed2635 +528af4f2ec88b39f7b01398298382b2f27e7daa3b4d22ce6019413f66a819996 +0357b0175270e79cf7646153233006178b9a6bc43da3a8bf19e9b52fc99f4ba2 +126c53b1ef4a345b2f7e4f98034372230d2b36956329630a38375af28bd94952 +1e9a39f0c9e0d7ac835c4244b341b12053e962e3c36d4299765578eb49d246c4 +09033ca1bd669eb8a62c1194ead50a0d93a09c632250abc2edac18266fc1d0e4 +c1a6fd7df63b46a04ba972ebbfb2609c456a49696fe5bee9eea1aec3f3dd991b +acbbbf3fda754eda86bb9f9a6cac0da61e177a9091edcb012f7bba3ccb1c13a4 +3926a0d25cb32a4b8c2f629f47992475754878d605e5de8388082e75530174d3 +a4629ebc1f00d628255439fbe94ae6c4fef76b9aa0d1e9ee8b39a0db0fb6c36c +55084ecbee71ffc5bfe9b178d148ef451a48fc8caeae1dec1ad5a6245560ea4f +e44e3bf8307603b524702bb129654d181ddadb70c678cdd69088b2dc8261234d +b9c7a933dc532a29256b34c3a05d779cf97a06d4512c631e3b14687b9e351bc5 +d529008c851c24aa3e8971508e3dc97282f387a82427ab28ecd7fe0374c13d1a +008ae66dd8944070abaf45e7a60642033c4ee644f929e005007e325ca8af4288 +a49cf7549c047523ea25e489af740105ac3d461aba8c7737876ed3d5c2e879c1 +63d4dac3186d8c4ca15e8e1cef082643d605842de26b20784b5bfa3f09368345 +c9101238b261cd57a6a20ddd5dd38886ebfd84a70d972f891f598e3cd6b85ba9 +7fbe9250967c3b203c6224fc78e91e9105d2d7f72a09204aed2f451df1083214 +1a2221cd0c2d75c37b263af814f3301ddb948aaa80dd0357e35e180517480226 +2303f216b73a87ccd96441172aa81b1e435750e5c665f602fdb02cbac18ff548 +af36f41e219f064c5b64d88ddeae5ada11fbbfdfc1747b8cfde51c128e471add +c48baa5277ac6f0799c903d18c63c22af20cf2f02f177037738a152a0d5e1730 +4d99d7a4e87eb609c7c0f86fe4ba59140dadd4cde67ee108845e975dfd8d7a1a +8fce80883e9d22a36e3cf90a1f2103a8d3fd5f53cc8711030d2483f7564f04ab +b39d0592e327e72139d6a9cdbc148f5add9a192526a4c5366d3d5e566e70cebe +ba9d2078e2977923fc74b06fafebb81ee4366a32cd3b7ef2632776accfec671b +7f820c386701a97391bc1d3236ead403f90750dddb6bb12d951162420c6a15fa +a0bb78248f7ec1ab6a1c69e809cf36c0cfdf283610c3d967a41408d373d5fd72 +385ebc238f18a254982d8b2a49abe28871b49aaf2ca3a3134afffeb9535885dd +89ba5d2ebce072a99f8718c1ed5f374d18ad3d2ad2c8b193113f1676f4396c92 +b608ca2fe99c258e68a1edb98477ceea17053f6fd1b24229eedeeeb0a296667e +2896098dc756eca49527d98da373bf15a8ab6af1f80e38282f72e20e5e9a1c1c +c88578094b535cbbb2b9688e76ed5aa7baef252745a920bd41f2d6d117705e66 +4a179a2ef37e583f98054dacd3f906c5b74e78e836d10d890ef6e51603b61cfd +cd5121dc2d3ad687bf3245c1325fdf500eac93d45e23b26ba05bcd16cf26e00c +d63bc2d0c500922aef5900b332ef50b65cc937f54e48919d9d1cecb5e81b3cc8 +62a675ad5b403eac1f9140e2810c26c3a3d74e4fb87ac80e78f97e30479fd649 +fb917a88ef37239ae1e64f7487e5f45a6cec1f613356d7eb5f46eea50271dbd4 +226d6930d1c4e38d1b00cf95e18714a5ed0f0cd6a10203b6601fa373fc31d0af +f4ebffd288392d480180183b5106346ec0d1cf4d3c8fe21224500d3d3f251bd0 +681a3b6f065fbef75c7308c4d82d089ea490d7ac6380da68f8a88ce96563211f +edd945549cef2960ec542095fec9dc6b4d4613c61f0de5fe36d0b834bd19501b +1fb73c05757dc4222a2b4ef45588bf5ef51c5c3f8184c4304702494c828d7f6f +8fd4378a581b974ae16d51c815c196ff8902c3681f4bfc168d29f067a65a571e +89b816b4e095f264ba561334031aa8d22c29f1b161531398cf72fa62565fee02 +60b0dcc734c7bcc1532ed7d3a915d12497ebf9de920f508b90622acfbc636b30 +e354220fbc80cacd37085405668bd979d0e18fc748d90381ecebfde7b2ff90a3 +85e9713bc55ce84da933d94bb239be152494d3d57b05aa003dae9f92d5c55e89 +21f16d5ea3591764dd8be1e70b4c19816a4a3aaba875e658fdc67741c203f1d4 +e62b0fe02f63696a48c832f41c5c2e6827a362d48140dd3b2e0afc86fc40a8f2 +c448f196fd8c051b2eae74850d054dbd9ed912456f1dda8a6a8120a9c52f909c +1517f0f1d60a89111efb276b08455d3bb452417f1d87bcfe0a8f17a0e3dd89ce +b85987088e283e95d63b7ff850fc9ea13c49f92b5a658b7610a025a6ec490f54 +0287d85697f4ca8e2b3cfc3cdbdf60f3acce2316b49812733b024d44a8e7bb28 +bf01f80808585cacef9c4269dc8f235c15188ace4342ffcf5f0bc646d3e747a3 +53038f60ba7a7db23252ab6a2d1831d9785c82bb6a8f931d012bc2c2bba87e5d +e0dfc0522e14e959dc634fa72c5bc51a536d322bdac301e2e0cf756e3cf532c4 +004e60a63dcdcfaf661dbba6a85fc3eef3ca4f206f6a2bd5c3ffa0c20c80d288 +d2a6a6f6d3664c5d0355f8b4ac2d706fd472013bc2ec142aae8f141ad97e59d7 +56ce58200d76596b46d6d942e744d6f2588df121ef72c1b4ebfee1f541edd337 +7519ab28632e3cd6c33e83d5320d48b118a32b7943129a8a6fb15cb50db15732 +92eb2fadfce8fcc8c401ff0fa522b3bf30b87d1b24d16131f4ebaa7daea08c5b +169a3e287357edcfab5b33354cd765305222aa78673761416b29c96ac08886a1 +23ecb2e381370c6b2057fba48637c818db92bf8de894ae937782beaa4e32db70 +a720949ea2bcfc54bb196122387ba771441ffecbd6e0fb54efd294a3d109d123 +3d5ac42d4b4da68fe4217484bb975578c53a08e94728516204b126ba11723314 +07339b9d873fbc84ea5b3b6a7b7d0acedc3e042f830830ce565b7a26f1bdd54f +d21ac76a325ad54b3efb01d867563247d4f100c5b363fb3a218b9098aaf5a3ce +fb6e4b4177d9b6bfe23ceb43e59a885074294587304998154d0d74ab7dc1668d +12d1b4a10777b78882e133cffd355ab23231c6083b55b1e940f755381acf661c +daa6b8a4ec33c89be0a2afbfb65468ab16af7dc083f7ed4d62695280e8d0e55d +6d7ceac92998dccf29891943974d53b8ef363af6aba6d8bc0d155165d1244dc3 +52105cfe06b44c9bcf236b074dbcca06bf14ec8f81b9bcaa759645f4c27a07ac +e5b4b8d9e384c862acf202d1c217accac9871bbf6ccbef4183749d02eaf95396 +cb7a4e84757d9b9d167927584924633d70def5664184e7cd7842af6bcd223548 +18845c562b3801afcdd0d72dbe1815bf1bb3cf8ee1aaaa83de6a3e27083e62ab +2136f48fcc5a3997746d1eb0b703886185f73072e2745d3878d3cd83fc523677 +235c8fbbe0c8dfa45ade77fa687a0e2ed86193ca35eb436b90f2925e483bf5d3 +3d2ad942346f45029ec4b54109a1b5d369611087ff5aa90539291b88dd2aabb3 +fc795ec6aec574fac06aa6357aa99b59a29f51e4ac1c3637f7b5f8628ffce04e +26a842f4b13428e8e87764015784232027ac430072138757b73e9fd5542949bb +d1d6ff9946049d4c0a4c37566ea8ee84eae695663412ba83a353d18cdf614bcf +3d8e243cdedb86c08ac7600040ea55c14907854b8dec1ecb85d369e6143c11cf +1afc2be394368b5893addd71f0378dccf5f5e48b3c8835ccce161793b918c1d4 +e51e344118fc1740b1d41d435585836b3261532247a8570d860c155e03d5a8ef +33decc19960542df7b4b6a7babe0aac2213157bf11df21b109d7dc8ddb8c5c10 +25aaa6eacbd2d588cb23dbebafd3a66fce2fbb4533fb8c1ade543c3677d12983 +7e6e755bc1fd91ad14c17d7bd930b6464f2f79da7d9c6d2c1a9f0fe37c063999 +6ac611a934830e2047a56505d0404fe29c9f52a755c415d740d9ae598d6a023d +f5ed0e1ded43b392ef1561d89cdbce05f0733af96afe2b24b30c5d725d217d74 +3e8a023ef716037fff953f85dcb538910900c3294c4d95988b9ccf37ca44199f +828f5247fb7155c8cb092b27953ff88b44c870dbb3b7d527a3c21e5b3c177a9c +a79ac129c9d2d48615cbdc203cbb36d372cd605ffcceb2cad3fbfb0fdb0e3476 +859a5f19c5f7c6669e903a281d4412b860bd929b1ee9aaaac001909ffc90f758 +e0364deacd0cf2bfbf989539f3fc98dd195ba98f47326b6308d41b37ea2bd844 +182e699afcfd4ec3fcb3e24c67f0203f3583fe31b53d93b7bafaa6e293d03379 +057ee574a15b9e76b3c4a0c23e1379f10eb2cefec5f0c74df9d1e3f15a923781 +96d839e941d42ace33bdc0e2a514cee3fede79a107c1cbcb893a52e16f965057 +6fbf8b910cf7f16cdf1432bd112b865459a27799e63f136dce31e633646142e4 +b2a7c7d6c772b1d5067b72113c17fd8e45e800ea2f2f92852762f5d5c6304ac5 +e0fb7c64ca58c9fecfbc66e6f6ea7359f270e526d497575b877c38c1ac280404 +0aae27b2d42e5fa04c6927434930bd937f6b741c9455b48094d2914bbe16ec8b +1b2257624dda57c53ff3a86c07fea3f9a8255cb172b60e10e69f515af4946ddd +055a37fc3d5a6f286586f0d7789cd3e5580098a3fcebafba13bc12bdc742d29d +a24caf0659c54f6257215d9b2de05ba12d91b143ae7904d97042bfbc02d56f72 +cd84962ebfc2db1f724b7908b62b7effaea4ff78bff8c9ae5a3c92f4778e2e31 +873f15c0d1435b7f5962f6e21a1fad4d94cb8c5dcf18fce875bca9550e20d89c +09884bd8ac291b0c7a6d62f9cfaa0bc1f13db710c6351a6d549013d6d888d682 +9eb00947cb6b546128742ffd3218b645dbc3fba97205ff8a8527f1e8cde3af50 +9b61b413b0c25f7c9ec4efa5119dbf92f497e9a10644ae52a5b47253e423bdeb +b6a54a20bbd9efa63d2e307056843bd1ce641c8300c594fad16406b25ef62046 +ce901f65e4e996910db9a27473cbba22d132800b97fd4811e6b81735ab30e65c +fd6c8753aa7fd68be77f28353a7a514f7b9c4096852bb018101b8e0ec7b88872 +e9ae63b3258fe7bb17464ab1a4f28a71d9c6f521907668fb3a5dea208ef198cd +09e67e88e1267c6ce8ee9050b2bfa1d5c6f3824ed5a57a4872ab418745f7453c +174d514a9c457e84bf7e44c8a67bdd311278887bb697cc67cceec9f179a5267e +7075318bb09455b3c07c499446b670a70c1ca5e6bd28143afdf0fb7d36df3366 +3ea0f8c12d01631ef8de21dfb38c7993691ec0c33662266a03ab4a317f6c2d25 +f46c99f456a9a7fba51067d0fa704d437e62e8a8124f020f8bc59461a32be8df +f39f8bb4e92a549ec99ba6072b2a6b66f0ea0015f96cbc087aa9bef1416f4662 +50647f37a368e75b2bcbdf4fa3304d20c9dc56920ded4ebf55c237f6769b5906 +3a3eb017b1a663cc9481c79b8948e5492d8ec892e3c43c08f0c1a87a30d7a9b6 +03f35241a3cc9e52165d8d04ed952727b2a6016185d2ec32b4bc88b5522c2d7f +9db2ab060c5321113f0468c187d58915979287566b045d4d73d37e2dfedb68c0 +da667548063f775e3258b705e11541092fb5a46e82845d720cd9a597509122e5 +bdd170b4002e727a66174dd6409be8720150613917e43ff456b5c43189823b83 +9edf533fb7d4c709f51e2ed5ae242a1ec4f41939ff8d89d92deef30b1108a0d3 +1ddd6dd9ab35cef4ab0fc7fdf631de6dbf360170c95a088681f923ec7288b07a +51a84009230529372491044e11949574495bf8e806ec448d0a7a2df74fc07e86 +2198ab516bc3480c9d700980ba4758a69d9d55295bae8fe3b8a4cb2d5beb528c +ac4889868a889a8b4227ed29b9a8cf29d9e88f2450c67027ad5c1b21caa3b387 +98ea155f5376b193b5a3c3d549414a7da07f9a776b894afba1c099d37dca4c17 +099b69cfae216575942370b1d384f2b6488f76144d1e1ca77d242648daabe525 +f87c11602cf712f95a817b0a98d9e54cc3fbb41a0df3d31e19918ccc9ac31263 +7f18ce4fbcb1698143f1fabddb6c0cc913b7269e7dfd8d0bcec142665f281c6a +ec02980aaebc6a8e77c180bb5753be1bccaa518423b70ebd6d3356ab50f58047 +08915340e38b68050c32797603e402d351b7ac1fc6d95a932c0271a805ee7fd5 +e0c5c1c20eb7e64d8cd7f126efc463478e134bb128f70f82b968f022aec9adb6 +cb0eebffee6604b1ede0d8515c6ae0c9b0408c2da3a912c51f21280878f2967d +d236ca55ce44f0c9f9a915c8d9aed9b6a3d13c107f18c6f43372638ea7631edd +ae78b32402581fffd9f4d7f53564211070798bba7f51c79a5b11a8ab865584ac +9a7748fcb9074a47cc3c3707c6957f9fb4904a86ab6ad881f1319f3e16150754 +6f0bd8fcca92b47ceb127dda9e2ea868c240fa2c17293a83b3d0f6b8d9715dc3 +306f41635f16d023870df1fe5dbdffa7d4f5a4bdb1dff6874cdd4ed9967fc799 +b16626355dd8b581d17dd202c776028657efb23a97d6c58a1ec3545a494351f6 +7c7a0c36cd2545445cb03073fc014b1d2d97926ed55c0590f432ddd6cb11de3d +dc1212622b351ee9aadca98bdbbaf6a78cb1950717be38e314cf39dbb9677686 +84847f456a86bca3c90b7d4d3711b24553e892251f704874091336bc8236a827 +4617444590eb9057b1854daa0e70bf182cb400c510af162e5a06b22b0b27c69f +14271c0dc982f64d21b7b557fe714bb76fe22377673ec61f760f87c51b14641f +c9813202a3a861a0e36ea2870785b3f523f67ef149a19ad352978291fd3bc6a4 +c05e7717f777d09a12d89de562b6143a300558df252063c0f9519e681babd890 +e636beac1bbf457d5dc7d0f1248848e48946c8c66ba9f345a2ee66e725c1fa41 +01ebce5dc5eec5c7655efdc26ef814f0e0d8972b255ec6338e7c7e5a59fcdc31 +1defc94df922ce892b9b453f8b7236603cef2ba3c291fe9d3891d03d8cd51478 +61f9fcecdb1e0c4db0aa86266e24f53636cf46e53d06dade2258081e64a26502 +713ae84d7ef1918faf5ea1dd8aed39c52386b1c486496a635c2234a4adf881ec +b40fd9bce066a3b9777fcd2d1bff42ea412b8734429220c1159a0690c8e0b22d +5b8225c308f8761800a80c2a07fa72aeb31b8eb28ab961f7721c1bfb0773642b +a72e77102997b7c557b08e0df067ee387593f947c36d3991a264979e5a1fb78d +05b9aec119acdd3f5036a9c67fb9e425c9efbb918c7f04bb9e1cd05b95137d8a +eea46bc69ae0c3b50637fc6ef8b781d938ab703f62234e13e0e62dc258ac6a65 +0943692867744ba4984a1723f59f71be1072dbda7b1e91c8c3df379ec81a7c29 +5a7407e59fae78b6227a9c34bfeccaf964137c43b2c945068605a974fee6b864 +02d237f47ca261aaf5622cca28fb31dfec9b3ad78260ccfa13c4ef211ac8f863 +7aee6b5579afe8c957b669c66caf735a2155b15ed4f1f22258e8e39c0fdce883 +bc1a9d30083636db87bfb76dda816b234f60713a8327aeecbac306dfcd2b1235 +ca0f15d9664efe8630675f9dcdb65207cdb8677cd3e87c102dade7dd6a5795d6 +d759866f516a5d6f42b463193568c56dc795fd23a5d18df3f7acc7a2cb4ce997 +8ab2d7dcd5762ec0419b61d65356481d4bc68a505784101d51cd8afe6477fd0b +66d906ed3988cff0e0d420157ec976d3b671f60289539d993b994e67155adafc +8e17a2ec2e9477f8578c0d912b130dc93cc6e8589075c3dc8378d7752af3453d +1e5807202e2b09211a74de345971fa4c6638b69391b57ae4035c97aa8157b346 +1738953a26b37f1f325f243a55cc978c4ffaf7b36bf3a54748a85bb5668f2e39 +1d2f4cac541885b774b83f1c5f6410a7a71b98f54e9c9cc7a23e083bf1c1139d +52601c0068656bdf738e998a9ac08692c7f7be0db205cd3c5748d1ee4305c041 +7fe88881bedf7f590e2fe5eee3d741a8d393cd7ce485bbee14a122fb60545690 +daf27db115b7834239f121144c1c4de2193812b932c3660f8b0515067f0d0454 +f62018f90096a1ba611ae6f0d9fbd922e12842403cb7c3057627c80d6b0f6212 +97a1aad410e3f96cbce47af14dc694baa3ca17050a9b4ab4ba2d8a7bb0a0c000 +0f826633da7be83891a2c1b396eed1598b6a72785c550ae8198c0be76ea467e5 +d555144abee0c8b590d0e49663a58cd6fe9c09b102dc29ee0a5b45a9159baec3 +27cb6c378296a4a894cc9f526bc54a5e6ee9fc2dea19863e422c8c72692dc178 +ee9f085d532808328c566cc48c28e8b1cabd8f42a16929996e45dd8ce6ce2bde +4de1353e29a9bb5be0b44c49e2aad3baf951bdb2185a4c31c703d16a04d3fde5 +b243f17ece882cb115aec6d1a5884fa719deb0e6866b7194aa8b50bbcd78ce9a +e290ec4fd0489579eb54d1e9d5b92083d5ff55f28a5de47a815e10754ead1125 +cc64ae11246bc5663de3bfe6119ba5cda60d1a720c80fa03880210fbebc787f2 +c9967f31368ed8347be6c77cb6c573b5b6f5001c8e9bb82868b92cd214ea8ed0 +66dc583f6182f8c255d9769352a18e11bfb294ec588e96389e73082b30455fe1 +4481d35ca3f82814cfefea95ea00712b282e6a81818128d80054f2b21dbd07fc +dc52964bdb5e5013685f8deefda2bcb5521f9069d17a09b9f51c2ca6fe08e0c8 +8a8187be2df126939e0b40a01fadbf9cecc4666d715807044f1eea5481c8f3cd +d7570f7346580f034ef4a4741a9cf7ee522b9917833ee7db54e46df7ee8a1dca +dbd69046f61645d1e5e8223bab55e7b954ab339ee8fcb110fd719b8b9b4b404b +e3cc0136157da664cf58305d5a0f0d420364d004f07ec5033f95abc12e75defe +e2f6c3123bf7c79b6f9c536723971295810157b74735d6a3821091886cc47016 +d350f82d945c486bd6e4bb161b1d379c43c2735d564f012d1aeb3eafba8716e5 +02a29ed890283855f41c1afaedeefe3d54b489f82a0754b946df4bf3a884f678 +87c914ebcbe81855a9fef46ae8cea338ca8d69af5f92edd5379ae5bf2d127432 +374f95dbcacfbf29a2116d9acdd70f11ff7c250130739ad6b2a466b5f0115dce +adb035c9376281a8cd5de64402cca2adfbbc76925242f734641276c726e0e797 +bacde80e23a02062ff32f7e501fee35323efcd9d2ebe52b47dac34a79e369e0e +8df6a73845ab76e6609bbe499ef7459baf974344b3b9a6c08fb520e63776818c +47263501a90f63a70d26066061579176ca06ed53ab181f936400160a16ddd838 +67745f6f684380537fac719ab0a2c15dad214c03d3f98697dfa7ca5bda83114e +927cfc1330b2115ccfe21c0e531e2df16957159aedd27d28d754ecbe90a879f1 +254430780eaca6a5714f8f399c5f11a4ee0e8583d13e13f5a25adddc9be5d24c +c49e344002d7a6d4595ecbc75e5eb9e4faf9e695db25a2b7533f59b50cb765e6 +0ea42589c19d38622f8d406790f4a6f515a9fe8c88066d8704a70b17a750002a +9f4462ac581add1cefd7d12a49a90ae97afd714be6aacdbb9278e559fdc8ca54 +47e7feb15ca462525d6db510aec516df1dc8e5d866a8561539554a595ae011d1 +e16a12da58fdcfb87452d020078d9c6164b5add26bcdecd22bbdeb8c0d0241f7 +3367810c6d6f7f0644e5082f8f020844cf77e7ee09303e583c55ff96364781cc +ff0281af27aad988a00ba3d80addbc87baa65d422c80dd4cf014d0f9e8a84050 +9a97b047cbdc6109e95385e108842dd512757af7172f189cdd9707e27a12e4bb +6f4ecf8a25d15ae44052eac5b27249faf553bf942e8295fd0a7bb8fa9f7dcb50 +e02fcc797ee6b3577da8d3d02db28ce78bc219f99161a38d89d32f948319b5e3 +31b7a9a7da8ac178be2581ed37e83825fdf41fcf4161590ebfd0c0dbb17e25a4 +d2d79f0e2c1ddedd99fd0d671e1852350b0d6dbcb141f9770217149e2e750d24 +133fece9dfa0f3f8a69b2351c53375a75b0e9bce7297f8e91313d4f990219149 +e633a4ee7954110bc7ec4d7ac7b5e5d57008d6ff7c801641e2689ce52c06ec78 +857672f809584da94ec360bc90fc1963a3570f2ad52dee8bba840a9cbe5a17de +7f2c3a90384bbe6eee6de553ae1b6282c7f517570fa60c7816e502edeaa85a37 +8d2cef20196af902c88fcca80c9e65a5e92ad39bcdf530a4f97ca4249e884a49 +60551a1b41e2bd44c68901cc22a0ad835e81cf630fb8f616d6f1aff86b21b40c +10286ab256ff87d57ad3d429fa0b732adf640ef66180cec51729fdbf548198e0 +2ee3f2532b929369e76506ae9c0a9707d5ad6d7d2005bb12eb7bdbcfab442420 +c49e88213c365661e3aa81561136f274702a6d38fe9b5dd8ef5414588c4b63a9 +9114f908af41b0e53edf67d1e2aba74d4fa40150e17e9032ce814153766bab3d +5af2390c4519a7881c958feed96723d7576f80d2a924721519632b4f53be2b1a +e38192815aad70b62d283477ab58d4aa7e07ce5165ffe16ab2778c677bc1c60a +6bcdde659f5bfcf86899a4b565230e807ced928cb390e350dbe256a32bb5c39c +5f3cc1b3e145a333045a44717d9f29f63a544af82814be20add84bd9f55827dc +c218819215d447779311bb1f8fb48799b489e1ccb3c4b0e9906fa967503fd8b1 +022b0eea82083d23062492a2252d07baeac71497c01c3e0351d23b17c5f9a553 +e3764398760236c5598317e364d3628dbb20e16d9e59ca0795af52523a8b2e45 +56e63a9cab48b305e9395960b3529b49db5a8c8036de87ef9e2594017fc86c6e +cfe14fbafe6ec4d93d2c8246209614de4859be1f15f82490760c3c7ce63d66d8 +01a7130b78623d7555f1f8c4a788c119a24e107110459728fedeccd3c4bba680 +d9af4e0e7b01089df00d6d796c641a5ca748bd2fc41c07a71e8f7adafade8e5a +5e847e1010bfff52d82ab29c4facd228fa48eaadb9207c5c596901f815f80748 +a520df0339e32001f4f8ff7ecbc95e6884d9b078793697e0791f4c913f55ade5 +9e74093c4a52888df670a324d1e92109431fa3f8a8c32bd19a4ac56b3402a3bb +9605d14c4c65ee542c6ab8731eb5037dd6a09e2668b8846eda3def3438c8facc +93e64cd47678a038b4ed26aff8445c3e8b78a12e03d0b3edb9f762fb280f7b00 +5f6d92f7f426af8fc8a0fe8d0d7348efe49706e8e53a24a3fca5cc2140fee151 +3fdffaddaaa1e85ece9f970ef125bd003eef1c6ac2f737986b88858d1dc607da +25cd46b9ecdc68a99575e89dd69bfa57da13a69cdf0d4ce606997b8ca3568f33 +79f0ce6a5c39ad85238337a39cfc252cbb522c564663ac3bacecc73f003cef32 +f39266773eee578803aeca02544f5cf4f7dfca999485c3e87ce72cd67b46dd37 +7cb944f4f7a099a3e5f76b9f80cd47539abcac6404b66c3704ae5301f5a0fa3e +75f5ad86cc2f846694b09f77abcbb787db5f61fb6b8591442189b11284f26062 +4fb4b9d82d506cfa1b69da122ea8cc2494b9e74dd962de90c68a67ad1db1ffb4 +3268d20b6ee0cc710c25aeaed28659b33fa045414767a7881d51a13ad3f9f3e9 +9830f71db8dc8611fdfa565a2a7f644072e620d1078201b0422dfc576936abe8 +7488f102f02542fab85b3289732bceeb8838066131287acfaca11b1d408d1c63 +0b2f4a570ac7451ba40d3a501c997840f61e221bbb3820ed21182a22379de1d3 +45d5a425df2b5b52e0acdb7ee6ef15da6a759a08a8debc24d0dce1b975cc9b8a +aec03cf38e5102fd4238e15b9653a76bcaca3d91697ea648bb6314dabd58e452 +df8912ccc89e10add61131b17615ead70788663b32251ee9e6d978bc27f16356 +75a6768ec7ac4bce803479949c5d79727e53bff661e4f6c64bfe0d15e9fa3380 +5bdf47d08b16fedc1b2b2389e2789277c364200982554ac3d53b3c247e2498b0 +ee8aff44f7b69baa6eaae91b6a33e547d29418392ea143f3619e63fea5996fa8 +f73501855aa356e94f78deac02aa08b51020f270bbfd9981eb16441b16f8d90b +666de936532faefad27934d97e6a29aa6642c005a900d8b508b5f24c0149d920 +b34c69c567ef6f5a2c14de9a07fca820ac2a4369d0da314fbb09f295a2428925 +910a8e300645a972d1586e15f8bb09c93936a0ac18a903334115670ae661e58a +26ea1caa576ab63e09c739ea0dc737e3f461423493535bd59c0a1accb788fe86 +1ccdf527237c12767abae05636f82ad765f98625614db4fb550c844fc142c6fa +107464c2a8f0087f1ca7773b5a53a15df8e3a1e1b64cd1901b04c23e9e63119f +f4950fe739f2e27871464230d19e9a85a237afec08aafd64fa2f24772853c9f2 +b6dcf8315682e2a4b38160384df5ebe12ff4bfa52e1d1017762e0e8ccee3c70d +5c3c654697c778a7f6a05565788b73bc792a2817a6ca45122a5762c5e5f6a02d +1131a16ba4941d6e8f1c320d9295c804f2ebd9648ca940a7ec562f259c9a489a +e36edb7ee621a3e69b7f5d34d3893e47d226910b25f8ade6c6ecc5936b5e67e1 +2e08991c2234bd71e6fb7ab65d61ad6a6a18c8c95251e4641ffdc9dea1396df6 +df1638b8f833eae66e14ecd9707b7d2d721832c12d32375cbbee010703857e7c +e0aec92042e029dc32bd8ea930dd0362844295d219062afa8659e5e96f915dbf +69ac1ee33126cddb0181a1ef82be859d2b1354de7a8c1b9e80cecea63c5332e0 +cff6bd4c37e47b2aba2ed28b6a3090e65f9c361ade6be54af3c723f07d20c79e +16de2f2aad68c96b037c3b1511ad575ccb9fecfc10c34f37e295a31f6aebdf96 +c6014d85b11ac180f53322895e60fbf299363e621ba35205c9b81a9524aa85e6 +c78ef1251f71f55a2ef11645bad942157eb00535be92130ffaa6e67e605b65c6 +c91d84b03f20d5d12218f9054c90ce876a0483e80802ddaea96222fa2ef09ef5 +806dd67df4508d28a0a6ab5e2b08442ded576ba7079d20fc52eb6ca8d9109c66 +3363c5a55cef5a98fe4fbe64afc232042a96cda117598e202194c487e3217aa7 +09bd46ba672f02bac951352b141d4194f1402da2e87e043bb91f9eea26fe15a1 +1c3cac1833a4bb3cab03a2a31db9b07d5dd1041ec2b9b7e51844794f05049d6c +9fb0def51782812b66637c8547b8a6580665106b8265df917a4d1b49cf6bb3d7 +b9761779371bf19fc1bf57ee74d08a1675b3d0e391f8ece1628331a702b598bd +691f0388b78ad1cf0da93ad409e33444572d021029fcedf4a3e70f602012f0a3 +d76c1e83867bb0dc48c483a9e54f409d1594ac287516da63539082922b473b22 +2ee4ad0c7634e297eabd7a02111d98617ba131ff638322d1d5d476da5c97aab5 +9b73c45867b0741f6036ce2f68d5970711ead7aa84531ce71b91b8bd2dbc4bd8 +4218b3c775fd841bd93efcae818ad7b7cca0fb6744fa938e4fca5968a1595173 +17ac147b030220fe95119094b5f25114a42e507b0796b16b7c57e34835f2b836 +0e36b9bf04381ea2820f324e992a9f0b0bdfe5f546941275e11688c81f8985be +ada611b2d0fc0d5ed6422504b99b165375a443f4559b4a24acf8779f5256bf9e +feab09a08c686154789e04af5dbc30e07463de3b2358b6dbf27ea928629c2040 +53eac7ec267115cf762b3696696a7866299002f4106c3e886841d11e9559e6fb +e366b0890491853b2e027b7443fe213f0510656b5622711d6ce24ebe4ace7c0d +c674d6732d26acb9967d9376761d02e2c76c55a3c42f9f5d047ceed2598447b9 +70aba6460fca629cbc7b2bbdefce1bc3cb7e6506d94ead00a9320985692453f9 +a4cac24301b532916d89850aa961917e41fa56c5a6b1023db0670f38e5708f07 +caa2080a08a23e5b8ff1becc48725047484457696dee0e3e4cc94dba588a814f +f351d5e32e49492aa780be15e4cd3380521b5158621920bbb8bb33c25b47389c +9c3bd47e2e74ae91c57e831f63795d61eb19c3070772aae9ac70516f09d8c80e +0f48dc8d82c590f6d1b225baa2831603388553f810be7b52f20ca8a06dd52862 +af045a34dfd3937da9538e1ae134ed0bbbe1bf0015b20eccb6657b04023a74a5 +83927e62f6cc27dfc96cd7c713e46768b43f683dc2c892e525eb8d97a0e2b6cd +ed8c591f2db59c48cf89b1c98ed3c9b722ead07cab808fb53374929cc5b09233 +dfc590e7094b935b7694106d63593f2658fe68870855c7cdf1e4d78019f1bb6d +99c33d1b47372e6b403a3058774ee26e7b6206bbe0f063276f01be9b50dc26c5 +d553164887ceaf247c1af22646706b236c0b36af9f919ba4015611f5ca8c7b0c +0c4f7677ee80e9bb71df47737fb563958d83c43d49cd0bf7edd722848da79b80 +c1079653a17ee36597efb64ff7638da165394cceb5326f739da8de994c6d1452 +9d643f2ffbcacb89eff37ec185afd0a93728598874d498a855cbbb27d788b109 +863568f7b8bf15e3c2cd0a4d6d36f66cee409070e5a7c81fba3c3e848d312700 +9fc70d7aa50fabac91eef13507ddf2cb171a530e60d32ed12ca7b6be9af714ce +69242905e1f2c6a2c86ac3303cd8997bebb3216796b8a9eadbadc4ddd7af5bd8 +ddac9bfd102b0ef4f2db8ab41caf77fc707a414ab452f971e5f99e1e66d2a6dc +5e9808074b3ae0010ac01e2edc8fdeafa33efa90021b28abcc0d41545affe2db +8cb77e13cf12f8e079b781cf9045af8ea346af90f64d7231556188a92e8fa7b1 +c52935b72f1724781ba995ae920f975611ba58cec4f59e215ed2929f27e79498 +14c907a92ca1a1f6c551c015fe1447827f53f3882686fb736625f037fc380f63 +c4c3b88d2e6ddfac5bf74919bccd63e9aadb5513067a99fb44ec1a9e568a49b8 +3d9e11a0164972c02873d1195151068fcfece7c421098563402905b1c1249e67 +9874b282ca00ad0d629622b339a3e25bbd2a6403e6bd5649444c04ce7178ddd9 +e5597cf6abde96c151ce40e61d8c1e2b31148921235c8d115315c605c7f4e471 +afe321eaa29c20beea2aafb41e81041f2275d4579e17baf9f576733e7411d715 +5df84532a852782b5a96b135345d06bceeab57b8ee8ccc511dda95b18830cce7 +420086cc3f5cc70462661feace35fe95167e34a600b41a6d8fea62e615cb1b8d +ded90dfa075b5f4ef154809ff42246a592f1a457a5f71ce903c85c180b41166d +d398c33db12412c1d95c7b4a6e4978d628e1c278b4a501254a2439f9aff3610c +80f83ccdf22ef5a3661c09eaa9e843240c9926c482f7021412e6ebcde392c33e +33d458804bbb6ad4c9824d24a345955a91cc9757ed6871a3a9483a608a370a8f +4f6be27e8cd3af807bc7d296996cf568fcbbb660437d967479637ee8b3042f5b +0aed5cb1e0781c4d572ff72a87307149fb2d53f282bc85386fe22e584f6568b1 +b7ed886140774aa1e4b3e31b6a58b5e49c1ec3e1a32890b1b8efa5f25e898648 +0ffe15e5651a999b2811447f446eebf3a39d5a8c1f2b51acd36ac929032c4923 +7af2c06c6acab5a6103b2dd2c947dbd11098ba9e7fb27306dd67737dc92ac6c7 +5e0f0ab272f6e6889949cb011e861124c7d09775e6af78cadf535ad12496f117 +03da2d7501a75bcba7d44558f2048e34d8bcfd085e32710097ba75b45aaa9ead +ea0abd704389a13f643b8b3664ba9babf77660f6c388ab5b963e9a8c984a77ee +2dc6bbd11d7c8492c0454cc758418e639d80d7b63b67b8d29ce8f0717a3d639e +af8d9934a4f78c10f35ba79162cfc8c13a4d0376184252270b75f415a0a0fdce +37d42a8989c20ab88d082eb247a3a5ca7eb03e23d42791013566b86c769afe05 +fa4d09d955027df5e4aa0aadc75c6efa68f40366e344d262080b8d0fb3de78ed +2e6f3c881165c8c68f4698e3575177b07bec0234eec94eeaddedb90c7c8c9892 +ca90786d04b7ffd610875e5c3680bb46ef46d0e8cf7bfee67b656490c83aa4f6 +da28375f3c2b8c74c51d5edac5b3b74cbf130949e29efb5fad298f4d0c172826 +1b12db5d71ded5442642b21a75c78a4f8f6c240d6337769f838ec325be810a4f +04d11d665f96c244fb24746b093c3f4091b7516f8df1ab9f3ca2c6ac96fa6764 +a31f21bec14c2d2821823cfad018b4c59c40292d21c8f0df185350e2b99826b3 +22fe13edcfe3d8d0f21664cd9b43cac45edfcc26d2ec0680ceb0d27f43c6644f +215879f1da5733265b9ac66d0e61033e70050b721efb9d073a95980753016e4b +ef8a8afb127b1eb2ba7f348e98a75df1e9cf0aebc12defcbd7e8e298752dee70 +bea92a6f4c77e5a66fe20f5c8687b536e4a2db15cdd829609c0af1f81d354972 +c7efdaaff2da6f3f7790284be57b8516c1e43dbb6b44669a419e2c836587ca21 +e5ea761cf4aadb91508c942500a0c79e63be648fe9656321cdf96add0037eb48 +dd379713fe79e68beb57b2985e0cdcf2dd3c9993a20e7f6b295f4b1d66880ba9 +8feddba6b77ee28268a5be9ba64b5a5716d689a2d84a3833b5c3721d1908ef71 +664adff0d2c101d371371e7efd113800ab8c3ff87ca462cc88289a78ea4329de +dbd433eaa9053b9853abc435f1976ddf047f6884e9d7ce0eaf429db8defb7f32 +07216351160d9b4d69b70c81e07b473a59fc42692e3c0aec3547cc33105afe27 +341fa0028344004bcbc6ed220e3986a8a8961740b74af3b5f2ffa20e1fa842ff +ac1019978422845a831af4d1d33f42f5fda39b9dc57f44fc4d2218b10c000aae +45e307f0353a611042eb863272b9cf41cacd4f4740c524088248f93293b39ad3 +c9d9c85a22e1e5839e66a2403724dd30c96aed0b74736438ffeecf912c9320f8 +d6fed48ea805375af30f94c1192bbf58b5647c740f1ac838466b89ea801f85b3 +4d5f0dae85b57d9c15d1a9a11e3666df6f96b3d5410c7fd653aecd1bc002952d +8cc4042bf851462257c5652c730087097df1a8b21e4ca87d2df5016b7f302762 +e791a09b9d45d8a34fb40a241b4d3d0fd356afa26781235a65dbf76190c70968 +4a1c5ab45a7be7a835cc9f958ba9c35c802c346b0966bc056c18107a8b1b579d +e99d85a2a46213c1c8c668f4fb0ea41cdd8d41ae4b7812c3c9ce16a72d963a67 +8cf6197cddb8737d2861bba747f5fe2cf183147b5664cf815ba1424b794074c6 +fafa4cdb6e1a922573ffd3674f5d94de81bea89f0add8a63c49bd4fbb132b00a +f3c3eefb34c273ef865335388cfec53864141cd869b9b88f0cf4c469ef0fb9dd +591e6d19a1003cbe5e6b5f7a3c6dc1d5e93f4df2eee64e222bd4094b63319536 +3df1f31785d3620e5d56b0c37444cd9ef07f27fc17551c0232c8f0ecb723294a +308b9bc8e087b3175a45f0118413d16f3bbbe292eb31b46b75c47c13f661a991 +b4247e52adfcc2fd0fe67327c0e9bb4869a7ef45a148eba87fd67ce263d87b3b +c67547e46d6e402fa6ab225f8622096c924ae5ce1c911caa9c7c7de1b9e10898 +46050a0d77903b68daf2a986e0a5edbdc9c5f74df7aa9e46397f5288b9fef58a +1888d49e4648712cc9c3dbd2cffcec13af609ec37868d5495fecd98ed60e1533 +c1d81e5f4c6aeaec319819a418b409640b2dc6d6a3d576be8550c9d612373db2 +6888571c523347fc8429cf05788073cc56d470801b90c0b0129fd76877c2ad87 +b50f98343fcb06c2734dac8eb8564e7292101f02156ad3d794f56e8e263bfa59 +289c7a1b73d3256bbbda344410cacbc92496330725af58e1ff0bab1043c2bc69 +9cf12f4ec6018ca5b64e04ea44b53fcbc648428b91478fb19b262fbc012b04f7 +9b57074149001fd27f6d6007d673403e1dc59c64258fde5d0c1643240174bf35 +8487b55dbeef48ab9b0f4d59956da98fbd5872338b9eaf94fc0e7d72060437af +2a7311f37f2176fbea9c087e6aeeb2d1787f467c0440214ab9aa534b1dd1f2e1 +a6f0b8c0fd5739b0ef4422e359fa0c55f6ee8025f24afdbaaef3cdd3ba90d9a5 +58bc7b33f44eb2cee284309b84dba7b2352e0451097986b3c01319f6e6160cc2 +4a8308111583d473afe5082cb81a6cc4bee3155db2be1b08590726e80cb7347a +db9218ecea7e428f57f4475a6881bef1e5c14143b832e83444b44c7401bf4e0c +e3fa946fb7642b8c9dee8196369c3a440e47d79058cc25a193c709090bc4e8dc +417f8e1a1554b19ba12d8df5cde03acad996656029e0a2b274233deb558486ca +e05fb023b3575334cd976f685fcc4831480d31cdb7c8e48dc6830deb44f0f1d3 +8e7d3d8cb9b37ce562cb12c6d5e2011a7dd561ac116fe2f5ece27750e6c0039e +bbaa7b4d6d62a9ddd832747657d654985d1dcf204c3d6f85ab664ec266a73e22 +6d7b90b2f4afab06a03258249df0eba1d30957dce345ea86c16e7828b0ade91d +342d48e01a0936d659b27601ae5e61057f0e3994ef588b4d9b106ed06a5f6cbc +41bec67651711547360426b46e303c319ebec46d67793066c1e4bcc8b26f8e08 +8136c73cfa992663a7bd57cc34d6e461dafb019c6eb53159bf0d295fcd99f2a2 +a256fe622190178919b516033cd8cf008d35e1f3ea7a7658f0b3a72c9258a479 +5b5d39091cdf3a8710d762cd18a7bcf84a5951a2c238275e8b106dc9960640f7 +b5e1b2453f2edbedc029b6471250d1094d98f6ec33ee70cab5cc3fc6a2407d9f +6bea7ce48f912ae6317309de6f53b050e04f08de71b29afebab7988cef1d1e2b +b3f6d9877e2bb60475e13be923b810f6f7cd8876e3977b42a74ac90e13de4ebc +5a2758021b69571575f67a2f08f694b401b8bbbaff8c0c1d57bb245254977c92 +ac379a95b5984959e959a36bd328d34b3ede92db195b33ea77ae97e52027c841 +2ceef50045e1507c68835a42d61c0570f4482c84f013a64833e4d30009ce04eb +feb39cfd8623282c5175d413463b97c496825bb49eba6c9854c63c16300d60a8 +3ab78c6a40591795cbba80e8bfbbcb569b3cb4fdd127a674ae0aab5f741c4ef4 +1ac00f3baf8e71938c0d6bc8b318507f53d4e0b3b3c0891e8081f6d0d74c591a +4862a18605eac0a41d4416d6d1ae22e668bf859816b4bb96d98b295a6c330bd4 +49af2bd6f7c5af73d6690231407b0d8266512978207fd54e36c9efaebb4f887a +68f33ecdb9a6412b6acaabd315ea030d5d2a4f9af49be975d1b27537986ae217 +64ef883ffc71bfb1aa76c29ccd66e7278ebf75e58c1f76604a9f4dce616b35a0 +0216d07705a079e7ba1ed6b0c57973ec27a23d15888eedd4e08e8cb020e34ce8 +da4525000530d7f670be71f4574ab8629ac0d0ac5775b22959afc05130aa0cf4 +2b321378e51b2000548daed73419b3f7869acda7a1815e12a92c1d249d1c72b7 +9d64e79329c52e71a9434d7c209e277bdb6980a89f694be02496ce4d6c6b2ee8 +0858afa04e21b4061d6886683b61b050e51842b5c7b37a1877a611f3662dbc13 +6bb6873ebe4387a83701b3b1df1897f470ed4fba0843331ef52cd31a5e26c49f +51a88441dc1ca372b220a3b7b565fd7c3ba9b104b66b9142e18735834c551c08 +671ba66eca48e7ae94aceb42d096e017aae8d161c2b6263c5c3e997f148ae368 +fd109c355106846dc069208ba09ef22003567301b9f2516b023e02772739b510 +e545030aace2469ef328f2a8d010c0d6fe83f79513e101713813a743797982aa +ff2fed4a697048508b33bb297b9f89087ff70fa8d67683c36f46822d27e0777b +df2ffbef4328af34afbfc91d0da5c8c7feed4e751a0c6a94c0317e0afbcabf99 +aca1ba4c171bb9f85d1eea2ab5864c65ae7bbcd4e4e1a68f6fac09ce88b4c1cb +9d3b696eb1b1b59b25fd542038ac23c1cedd7827b83050a9bced00dba1bc5fda +ecf9775228928a618102c0c31a185264ff0a359b379e688838a2c426888ad8b4 +7ce5560f6646e75672f37f6d427de4cc6728c5068006f3f3951d3b7c6c2fed88 +28ca26c85bc526502ed3395c88559d134ab3e1791c682d10566e53cfa9b5dbff +a1349cd85655d9962db68fefd4bd669e1dd18ac9b6d82a8499a04cd8c267397a +e4cc7333dd901202d794e13908d6211697c55ee756b0fd95a0e1f5b73a8b818a +2d453c0c8fc98956ff77b18129553116d57e375d2eedb52feb98c53d1923fa8e +bc354ef1bb0db47a5aa402e206283723669e310645f4c8472520ebb4cea883c6 +4c9a2273f2a3c3a7232aa9a19e50209f8c47ea9ce56efb0dfd4ceb08952e029e +d32e1c32d0cb5253e103d01b1c170f396e5e9b165d049303d4e6c2bcfefcc928 +79b891660ad068015d82fb714798e9ff7982ad9a3c99454f1dee48e0cb6f4593 +4c695eef3a85f20e70f309388c6ca8128850ec68a10eba077399d03c7a3b80ed +0c683c598d1d5c605ce62e19f2c8f33b07239469ffc3fe764048e477c5a3697d +504d9fca2d89a24d6be4467460202ebed6a0462c7ba62ab2476daa10088a58b1 +1d8e07164543b39879390941804abe6a9b7833c80d7e950d15d40fe6371237f9 +78fd5cb0223bebe74606db90cc7b52fb02137bbc5bcaa6242792425722e38bf5 +5d6271e5d5e40d230d5ff157d197f1271885c390350a5e9159a825a9822674d4 +fa8edd33add5f5df12fd34788d2b4fe1d371208af1f85c943828f9846cef0715 +a400d8fd9fac11da19cb13ae69d361216057a4ac436cc5be7375caab1c890dd7 +212e5f906cc35c14c2f6396be9cda5806813e8622aeae1de3a2a5fac04a8a9f7 +ff7563bee5195450561ae347842060e717b75daf024de5fa5216e1ba654bc5c0 +ecf83f67c9a95a6c7b4c92ec6120094e18523ce8abe2f91dc68739633878b5d3 +8c241dc929f6def44eab11740d9851f025ee0395a290a2cabd1290686d639850 +d72a4ff4b3a9e3e05f0693727581b5017056b8a45e736fba3a13e8954fddb5ce +cb67b69c214b0e4c09631b55f2bf242fdf341d2b9c4ea41f12d55de26e1db93a +2731d6cf3aba575e64cfc7f114816e57236a6cbb77b111952de02495575a2af7 +ca45074bf8f932db7af85549a1e9c1dcf69a13463a4f58f6c830aef9ef320b9f +9d220e712e4853b7573074d755857c39afb6290f560c0a6aae4aeb3e01725bb9 +6b7c4ba4bc06d17bab3bd054173e36b3af2fa5429408ae01cfca512b828ba38e +ee2e7293ed1bec465ba21073f144952b587961a3513d6cc18f222d797f6fccff +860fc6ded9ae23598005ebc446e8728c8e2b7cb9e187c01c113df86991d15b5e +1141a62f6289053325686f2d845446ff5c96fc0dde950eae954d1262e671c627 +ec1186d6b866bf8363a0907150326b0ffafec5cfabc78e98f97aa20e2002e27b +5087ea6cb67db547c99a7a65914f1a886589eb5421af9fb95bc7c8b1f762fdcf +7b4d78abed3a84633ac436b84e31eaa1b694ae1de78b53e80307a4aab6d43e99 +9736561993ae4c2b008ed9b39064faa77124437729fdd57327d3c620df948090 +aba7321dc476d0dca1e002746a4dceba853abbc7a23cacbc01f6025170537c64 +bbfd35a4ab1a14b2cc02960b2a798333900e8a5c754491e8806e7f6e3bcae0b8 +5d9aa4f76e783fda9a39c99e30689837f1e9ec40f004a4e6108620f27dc1e9ab +3840ce30cf40e7261d4bd4cc4081e3a3cd8c8c61e804dd629105c62abfb1e730 +0f789df895bdb447d8bbb528e35b9e5c6147ba0860c33a72e5ec176f6f015228 +7654f4473c7bf20ba17062662738f3ea9dafaaec0f6e8e5284d88c20d20f496c +164ef565ea707266b5abfb1c56fb451d23368eda908b3feb575aa72336263c3c +72196c9ec09f1c6f15d066cdacc711fd098a6bbcfcdd5424750cb0d3e9f13146 +71f2eba35d303d7f62877f2d124499e6f2d4a053d91db3c093b52359af8181e2 +72d967dfc8d6c639f142bc714adcb4b3f20dead7b65c70d864ac51179649835f +18979be2de4b5658e82b91eeeedd7cdc8bba8bcc58f8fcd29c935038f651e3bd +02a074d2fae420c346eaaa960d1dfb45f273e88012e67ac0cf5fadb5dd9259fa +06b1377d3c9c3193a9aad863fa26aec00821bc03471124c24973fbf3a41fa391 +537b92d13a89bfffbee8755e715fee87abf20e83f6e3ea423812c561885abb55 +b004be54b387d2de1dcc1e8032253ada40f5bc531db231f7912facbe21624e60 +26902c4c200ce7021b0220d8196702fe8c72509f7ef5eb0727f9cb510e77a886 +9f669b2846d95b94fff321c78ac22e0b5e5d694742d6a46487dd515e812bfc64 +2f5ba7b41c14eedcc699052e55d1646540582b249280c44735d8e26f3a303364 +046ded295084638b2d92020ad4ffb7ed77032e20b79eab6c0a1244a8db5488f6 +933291df839f07f63d81f1dea989f286e36033ab150b3dc2b8ac47a1d113cdfe +9c125a83d560239c9c39983185092682e90f86b5a4e5c3fc1244e9ea2dd4dffa +75f2308786d6eae658393c0358d53e56f7ad52a57bbe2bec92ebe20637c08fde +69ddfa06318a0618177873da9e3d45167eb920ba13cfeefbe37c9987ce1f3d26 +c7b6c9f142b442fac0bac5a8c670d7f2f03907840a6c9dfe587a0e33af666071 +72fdf2119d293c99bc2edf154a26d5b5b628eb64fb25e1d6b414a3aa6ac6e692 +0d6f1e1bb5ffff7fe16c1b35d216dbdf6c5abbf1c40f51023164e804869db2a1 +71e6c8955afda58ad63d05cc77978d916913fc0780f5582f8e2c3803e56b1aa5 +ebe528e6c2ea42375b7a0a61a5b7b4877fb87938a1516e812d644f1e604a4aef +0626f3432b000c534d914d9aae20910b9950e5174ebc81614adbf37c43736386 +5ee260d31f59ed07501de38f77a5da3942e2c48693b61fb031b8ac1a9af2adfd +3b374e39d140127f71d4b45ba52254a45d6287c60fdcd37b41472de4cf1d2a59 +30884aaf061ed50baacb40410cd3c8a43e7c4ddd1c17c2a5a46f5f261d3dd015 +16e09daeb48a9bdb5cc53b5debd022c9652fda3472767503475c12f1f62cd468 +52e995b87344199fe03e907a7a1f272d0050a12efd404e92818aa58ee81ab369 +14b8b9c166718812737ec0bf390e0680038458fbf80b6b3d57929d2fa3cab775 +400a6b71ed965be3d77b3cb23da229ba60e41041555975c9fa14aaeb7b266c1e +4abc167fed931b245d6ff98b47d06b0f90a970d7acd9d42111e1a25fa5b69546 +61ee9e9a35f77ed189ebaffd00e8db0dc16b1ed20cd63e5a5a5d9d1fc78f1382 +fa0606e07e7740bda5bca7d91cb671c4b47568b576da2da419e9932a7771a926 +643e1de6d189989cb2ef723b1e14324909149ea9bc9cf4c786aa95cf14dedb84 +ca2505e16b5be7cceb163d465183d2b7e4def3174a0915768fa0255b42942fb3 +970cfeea9ad94ee0df250dc1c36ab60675f7c80363730256e4976a25f621edf1 +6b950554181696df545e359c03f1d245b5e0ed1fe3142720386004d0263080ed +dc7db7c1475bcabbcd6500c9d12bde3b47f0a930cbe496182fd773ee25eead4e +fcc59fc1bdf4fa9eb644a6adccdac57255663a96b8d7dcf7b63ecf46dbc0eac7 +bc1c4836b6cbee5a2cb6a2db0390623a734e691bd16c6cc541afb3de03366545 +7f071c83b0e477852020afc776a9b4df270a1fcf110a46a02e47af17fe2b9e87 +3098603946ff887ca2ffa9820188eb5bb5ed2bf839dcf22d738c49867495a67b +3074d54b81170f822c04aa83b4f859d5552ba3bce906c146465f7cf1dedddbc5 +49adcd1dfe45e8f4c252c99c0832e1998f34b7b554a914ddcd633a28cee42215 +3713d35e8a76a89b6e329efc1506f2e4e0c477603d2e4625f327702a7ba6767d +ca991862e85ed035551338c678a98eba760e23893dfdb47dd0bc5de123dd1853 +646710aeffa6c18651a36020301db5b3c2f864fe9e1d2eaf8f5b5504572f7f7d +c0d4166a918b1bc19de01a9bfbcc758a0675bb4071f7184a80d8b9e26d9b25ae +ee28fdb7295afd6066a7567f1cb090805c4bc87bef63b645d8030ccda627554a +255ce8f23ba96daba91f871e3373bda2c8f94c5b9886789730e823c44e91a3ca +a11fbc4b3be5b4622d871cd99e5b59eb47a93251f517deea4f4737986e49a789 +dadaccf91366071f1884536e849501e855440fdf466da0c33282c8e3976bf5d1 +291dd2ef252f5db3fda60622d6a3330885d27e47fee400fcf2789b21c0f32153 +5c492022973d26e8cba841fc3ba292391ff33bf144c6d77cb664a7e3595868b2 +07f36360cb710942a29549a0429d370b8f1b62957353e58fc8a01a62f5a8a85f +f52d4ce5e31fc6beede6d4a8c0fbaf8a889c91e6b7e6aafa4b366978cce118a7 +bad3f41157db3fe0bc31f5ac42248868035d37dee5a488fde0a84a416d998746 +6f6a679181aa12635b26d73bfd36b12dd1f9689181f3dc944a29de48fb8eb5fa +c5cdf502fab6e7619b856b4fa9b029bf9640cc2e09e71960d09dbb4a0aff5fe4 +5215e80fdfe9b42c175ad3fdb80d8e0a9a9c550db4717c07569b2b0513c6c0dd +3918ac8c6b34ba7dfe1edc43f2cef7b65593a7deb7482a2bc7a12a4267588658 +7a59c4bb674f5e1f4374959e685c5cdf7e2570fe222bb169e4e2d0e4d1e6956c +7d14468d3b85d084f2e9a93667c85d0404139ed7e5c5dc1cb416539647dd24bc +be2a1d8c6a11533afb2f6fa0669e02d02bb4ffdd4c78c51c71a79a55f52f9625 +1b5b28c5c01d08dcc05189f3a8e22ac7a59682fdf3899d66b3809e50878beedd +e395f6f9cebea0ffebcb5ebae9c3fa2ddca28bf522cc2774e90834e2dd982bc6 +e8c09c702ced12570fce960384fb7f3023802655b31b6fd738ed2d967b0069c8 +66b274c6b1eca4f6a0eb6241579e548b9cd7d3d24b5695a1eb6eabad124e8940 +cc88ef5cac863dc72fa9924b9dbc5bafcadfcdd842d9a66b25e32aaebe1a7d98 +d42a4be11134cfc48046d6b2b36a4ea60b5231c48577ca2542354ae2663b4191 +53e59cf293a2d5ccebfd0bed728dafd263afa35c8a728826235d449e82c7ee04 +ade348eb12ec108f6345849d97f3de45fb97b065a60d4140655e1df8c1f3e9ca +34ca0deabe98f980fe14df24e690ad881e1f0f908eb452238b2225e9641500d5 +4ef9b967b12912e336a384d41f57c8affde37b37b2a8ddc14fcd8a0a5c1281e8 +8810d6a556270710c9fe6c4b84d53bdd96dc713b5fa3d29745bdfdc6ff396e76 +c4264614d8ea6e6702a7c4da7a24a59e8b23bdfc5f2038d350efd74010085d94 +8bf7624f30b20ef97fa59cde7f9ed388942e280c4f299f67164c860388d0674e +23f9940004300b351a440c9a6f0edcc71b1e74f71f561a5a5975332e87eb5b54 +11c5021d1530e8fadb8c9b2ae7c64dbc07a75d424e8e9aee27e595b8240dfa15 +d061373f90d5ec95c34b0752ccac9a5434b000e2ada2d59a412dba6bcc8b75b3 +07b905b3233631ac2e07c283a7734a530c925afaa2ffd561228559e0e7ec2ddf +dc36bc7902a7d29653d83a415c7faf433b45ec16aad753bbd91641f2caf94234 +ae54d89696dfa5a40465893ba9ba1e49bd184abe1ba26289ab8991c8a79442eb +6d78e4a2d934b2e24fd3672593f92250a7dd06d8a65d3da58848b685393e42f2 +e95dd8d7624eddfadb5453a8ec0709607a7fb5f5cd6077423d4c1cf863bd76b2 +dc104ea598945114c420799c5ae67af9defd985331421a5fa602c0389c5b7a2b +c2e9b6d4cdf7d5c0c525842a562504459263981058b45c7c72b01f366362efe0 +be5c43df58f672336012d95cfd705b88aa5c39682f7f6138eb67dbadae5eccbf +29d13042c91750316565f87c724842957e6da0114ef5bd6d88f3d15284b51a3b +1d562934cf8ef49e4cad2b5e59d7b5548b803d24203286257eb9bd4e6683e84e +6b94af7fe0ccf643c11dffde2328cf63757f15dd6ed41b77b0139d4a7e845617 +1632f9a301431b5dfb6ad060d4e5990ee8c9e2673a522cbebdb0c525d434c934 +5f9840684e52d9272aaa0b6c84e83e0bc1c98e2ecbf1308734f160bb25d6c991 +3b76558823255be3f7c99a1b330e1a6662c6f63a9557c575ed85708308a7cf5a +6b47796636124d97a65a2cae6f873782fec9459bea3f8bb2af396a47112eb71a +0062e678d1c67148b037d8f07ce0bc42019433a54393261afd7ee09a72ac0a5b +2e2aaf49cb6b2a9ddb5c95748b3c184bff72c402eeb9ef87363ead24c39a5faf +884c57ebf0e849cddca95cf40671ee4bcfd515e500162f25bf658244a45f56a5 +942cb88a7113d025a6236a78b2c1848e6107f667dcac143fd1a8f41e19ec0e3b +4198fa544c71456f68f9eb0b5aab536a07a1764c2f756a0fe2f2ac158cce4b67 +4f222aaa2f872aba5e4994c2c42943b4f551cdde108066d8324dbf2ebdb72aee +402b60a2c51c86557d471cbd60c4a82cb568239ced71242bb1505cb049458072 +c71d33c3f871377114ef6bc7df0cd6a9a8a340d0d19059b06878b53bed52e175 +83487eea23302cfed73dfd6785db005824e2349d0d435eeb7b7d2b9458c5ffb3 +9eb382b889c5adadd94331defcef42044128ab52dd5f02790512eba2c0933ae3 +571987c16c20815dba68c9b96ebf619523f29362e7927fe174952577999c3e95 +32d76d8d2e02d2e908f41eec8685459f9ddecb2f6d4c215743f4b76ab79ecc4b +585ed6c5f5384929e44789698899ae95ac265e57a27bf324ee3f701bd86e4688 +d8c86e171f357da2aaf8409adb7c8d14eb582708b4ad73deb8d186b3cfa4aaca +e9cb05ccc4bcb3e2abad6b5921ee664648d5a01bb593a1f53d171b358c42c3d6 +cbae0f38244c5d3be90c37150f3a5ca18e3e8e01c25fce7570532c3a9e502ed9 +bfbe2d634954d7cad309e6a6df01db68c011b3e2bc5e904c575ae07560ed5d31 +936c202bb2d2753c74d506ea3bd0ee9990ec00e07a20a24cffa59301a9523804 +78fbfd18cb7f3d8f158da9a650db9778bc7799798584dea07ee146054cb31e72 +bf8c1498dfddb7c7d658bd2b343fecc7975e1a8d807b579b8d80a32b26bd88e8 +f5ada4ad287c05bccf949bd52f492585a28588d643ac51cadbbecf5347599c69 +5732cb35186e95c3d35c4ea03dde72b1b3d0da03ae1f8aa3e3473826ee62e4ed +5ce20ef813cf22a22766b24bcdc41786278ebc444b8a9de9837d3956c092862e +3f999a25ac299c033fa521aa3dc9ef7c248e7fa9aa05603cffd75c93febf0e77 +bf9332a45af3543b4cf6ed73f7fb4be96acadf8368cc1b64ec5e279ad5fcdc0c +48c60d07a3d41906829644df01f4c1e46a0485737c92a389662321d08850acb7 +d613069999aeda26309f85583a08b46f2b47e0eaa833e8cab86681b143a5812f +1f49c351fbe7cda8830944e7492122814ce10c6ca8788e1c35aa4a5cc7d29815 +2ef21aa1b1730e6ad76c3387f6b2135d9a99766d741153a2fc1c5af8e084eb0f +1958747890d0331ece4c596980e38e2d49704ffe21f4094a1930b7a2a561e0b8 +440b3e68dfdfc3703d24ca8e93bf7dec011aa9fa7984fcf93825d56b0966130f +0257acb5af5d4bfa2259d572a2bbc652def62bc86634a4b43d647f322725dc5c +384921856bddb51ba25d56ad03a1cd1f4262347316495cbc1576aeb1016008d5 +bb04d1e9c928b6d7a1e0810b6e297fc768a66a9300dc1f91b2e2c9384e733801 +fcaffaf596052b460117483229f2a65fd6528b03fa6d6be31b9ef58f30ab3fbf +a38a7189a494392ec6a18645794c75c68df0b12bb545b51c19384e2ff15df55d +a14a138af9190ede8a2141ba609f8b150150b0a3a12d8b41fd94465b5d629491 +e23aa71d59fe1c0c357e627427670e3f62f261954c0858c8fce5552a171b5f64 +4e6cf1ee006dfe90561c5cc2489d7c1085b6e122b1d8adac3242b3a80ce81a65 +fc55427e567da908783acef8706b8b4556e1be57c854d186c9aa934ce6f860f9 +7019043668593cb28e1213bc1b41419b367847e3c994370db9ef2143d0562b89 +d322369725a47f833e363aa9419095f2c70b371b044b33b0d97bc330e7076c0c +b5557835c4fb7b28a1dda019ab3dc2bf1d7e6c942bc3d874beb1598074fa8ed5 +024aeae632a36e3cd0f19e1392a2f7b06555eb103f0f6e3cbdef8499917e297d +13f4a8ae1a87d57847baa22b0d69648d36eccd83bdaad3c5e6c55f872d26aca5 +24bfe074e442f5a7892e6640b8d3ce3d139b448ce0607ee958aba9d91635a7dd +3eb9901042de9b7295ddd3400a157de3d937e7c7c05c826cc9f9edf9049a38b9 +c94d25408afe09e727db8c16ca73b13af88735645c48dac844121cd93bf17e75 +7454c9fc4e29aa900f3395dc78216bc610c380de0de1836d72f884e4ddac418f +b19af31fce726866cab6a633832cc4981e4bd29667d3f75657d8a0fe6c79456b +59100e4eb9b77f98212baf9e27201b33f34f1efdf530733f2b6b054cf4aeef33 +9df78efc3d986a9fe952045d5bb3534c22e5c06bc52712cd5de9d8d642936d81 +98ca3e8f927dc22646f3c10375904c1538dc440e54f2a68aed448271a846d6a9 +735523d0af7e821c1b8d3310a76e3fc48db544370e78cd96b80776accddce60b +905e5ee019adf08063cc14a67f4974d7e5198a80797854d25a82df78f0793db6 +a82a55ad6d45b6d0acb73236de51647988565339ad9c51d9ea7f41559b6ed3ce +fcc2d7b48371ed90338397b1f9815bbfd9abd7eaba116fd4495d2c411deb677d +972af20716459eba447066efe8f4ac8c34cf8a4033c1b451d1352a29d6b4103e +bb227ea78e4460894bcba9aec4cec79442f8df9ba3e0661ff40294b0e95878a9 +51851bc1922e915c6a4a5ae97aca5a18bb0dda696ba18e2a2f78216e7b27db8e +e42630059a505886b7f65283103b911c668014c46b439028d4899c6ebf3131e0 +1612e79609d9341eba38dde5b6741a551fbffe2e8afd01559e2d0ea5e50dc28a +30641c4d7300e9b71c15399371563dc14e4b4d52b0343dfff43a85009587162b +d9bb9b257e4d66c2c98adb6a8c5b7c06eafc7df9b9e47f01d4d6e29182b7e881 +8d1a3fd3b343bc6d17cda2d1bea3b15cb6fee1aad72eb480017c16dd03ad759b +1d62907851df0b6559ba1cb171bb83ba5b4e1c26855ba603955382cfb1e16134 +1df466c4584100af9cb4f7306257cd110dd9377f09ce7b6dbd28d6e9b8fc5ef1 +2e588fb016dd04aeac59c7ce6b2044da852f1dcbc9f69511aa3e6bd7ff640f64 +9401f8658fef628c5e935ab5da5b8e83487d1c3af24a364dacf3294b2e286236 +2c25810f629ebf1cd3a81c8ed87732a8bb4418baab58f6224fbcc2cb2a97a503 +0a7a94ef5b69d1a133629ff5cfde69f8bce0338d58c641549e79afd153b62d74 +2b7105287941c0781b7b130f0dab73f76bd4fde6609b42e0dda18e844f342171 +f6116c81fdc877f428805f8e6d448784d472bd69b0f530b547343bd5f91be100 +99e139e18829e58322e3b1ee2d0f350fb7668957129f2db877d3a70723acf5cb +8aa871d7812b9cc6b949980e67cb83f5af2a158e6354cbc342b0993b34d67a05 +21d7ea790dfd497417dd91eb42453fa5e66242877f55d4e70ac1ff8f4ccba408 +42cc5b27a72d05a7f6a97de863babb1e421e8b5d7ec15b95504b4d5868d2d23c +99f910170f5cc19b59b1008582ffd4589418cafbc0bf00ee58b62218fd94a628 +dc3a5d023d4019734f9655a2d09ccd00b69af554bf60a81eea9005edff723f8f +e1fd53340fd006cc08a0cdd6d8e24196df2186690ed0ce24843c484e51d7d652 +b00a0df424d8fbc266bbf5ee836731361fe77ee1f4c8ab65903240f8f457e0d9 +0835b511287de82338d9ff400220a3e0f9a60c571fbb4598e8af35530c5aaf13 +217008666062fda0d9a3099175452a3c77913453237259abcba9b47ab1c9269f +9dbee349f5d0f519128bc6a6c4f5320f198a9b006a784b82fba10ee217ff1723 +2ac6e280d4d949bb447e9d884295168da0d6c0e49798bf0bf835151dadd98ea0 +9c251af37b70a58731bffc749299f62682aad2b3290cc7040db4508a11503822 +b0389127bfd295d282290c45cf0fa9cda8679501d51daebae62842ab48cd0466 +b8e64acc2a7ab4e803f4c089b29021491b7f365d84d785b08b62ab90065e7d99 +d86d73561d29829e36f1081944dc989139a8a19b2951b73f1e4cf8feeefb44d3 +2426d6836881b8a5fb5a824deefcc01a37e20e28ea2df33044b8b5a552bec7c7 +f5d80777f7b92ff8ac1299ca5364c8eb575b6679dac7bd853277a8823c6dd4d9 +7f4802818f989aa4cec93378d058f8b2dd1d094a6b52614fbc525d611d04f181 +07c4c7f0e82f9cef12dcfe6884bb1df639f92edce74f964f2ff65ae107bb6fad +5d28d47bd4a25ba7fcc1debd600d34e2f603acd1f55dbbf29a5d6db4caebf459 +5fba31c8d28fb8cfef692d575bd8dc3a8550be2738fcc4cd2d9144307998816b +713efd831e47320efa8037f56738bd230185a5c24ab9bfcda3e0ff04ea998534 +ba973314cfc4d94b42b4d93f5b1a518c5b5ce3e0ec93fc0a7e14ecba2c59eba7 +491c04a64a33282376a861da39320b891a10a695d4fc2e32cdff4c205ba1eec2 +263c5222eb0f057d2ae86600bf704a69e266c9fc0516b885467e841ff76f1de7 +684bd614f840bab0772d3854f08f615be12a3948617015f6800a8df4d337e990 +91031d77b097b3a3034e954e170b43205e509a949f93f050c817f06b5308dbd6 +38c4b7e3659ff0925a422493c3bbdfb04ffa78ecf7af3c204d24c88789b797aa +e784bf6dc29ce66f55e190958f8f579f2515b812abaf227ee5fd2a813eefa441 +e724c918bc64605b1f9b79227e22a6e001dcf230b6b166aa299fa0dc017f660b +c1bd4e37c59e7eb4a5be4b91a2a5f195acddffca46f517f5d00c7932d3e00202 +3490f8964c408fce15ccbd2d14c47071412ca07e2d34ec875416b6af53fa776a +c28e1a418fc7706b85fff2e903872d2a4c4e3f75998d9553f0936989f215c3e5 +bfa8b7c340478d92e729a7b0539d6e581fcba1e1db0875057cf2472939e8855a +d9b1acb41698139d77eb49f16b56411bdc0f205fc867beac8a049d95ba40e3e7 +91a221c09654b6c607a9629dfc2c1533d08bed0cdb420313ed362321edd9f730 +b06d2b76e2ff25c6f8c0afec0d6dccbd39ddf0339649e13039df1f88d76a2ffb +e06c60220438c3c375d166e635f1dc9041c173456fcde14536b54bceff14f40a +df2e8913e4b212ae18c6bdb74726753f1819c6410a2e16f368d0c5df9f782e80 +cb773744461e06fd5781dfbc36c04564bff91d3d9ba1843ab94a940eb129dd03 +0ceeda6de02bbc0ead27a4ef64f51a2f96e986082133f3e9a75cc8f10a91d5b7 +68543b567760137b651ef7b72b65a987b9ad9230e3d244c272acf3a26b836a15 +bc88c4045baf6cad6bfabcdf2b314a578de1646edcabf591028ff58f4f442dc8 +9ad30848cdf26a97dda9e3f1d36989a68f98b7b38128555d6b559f63342dc7e2 +b8c817ecf8e55c3ccd2467625677caa39166761c233975001efce426f731d626 +18f60fb35dca46459e8f4ed0e5162b16ca1f40702c7cd7800d4606dbedae0fd9 +7dab349188a9b374e3c634e0a832fa1d3eb10926f0bcc755cb55ca86c8e77191 +1dcee69ba9c62342dafae8c507c4acdc84db82b9bf1c9f7f5daed2d2df13e214 +9e1741f639fc4ef3ea6a71b1524dfe34addd067f176739f769c4ce20757f5654 +5b4694ab62c76a39c0cdccb4791b744b359117d83e14bdc9a6d11517693a2f4c +dc0073f0323e82d5ffca88626aad309a7d65f4f1fd14467fd45c30cb5c71e1fc +77cdaa5eaa4c7b4fcf8bf66ef17f0727062e99768e0065178f0fd131e00072fd +f98d523a9bb7195425f013b570bd64856ab7691c422b3ea6278643c8aa0e89a4 +5e6629dff435673a4c2d7e90c424e01886d07c2534b18bd3155cdcc0940cc139 +bb471eb70a95bc684b071d84ed1cfe40be632fb866a14e35afb32e327b66d8c4 +0b2b7349e7a1dafe55e541d09c53fcb2bdaf0f24089bfcb533755552abc01644 +15c69a694c0cc8fce9d6226a04c778d7ea62e33125f066582d65856e41ef6132 +cdcecc479682049528e6cf311b15a043995b21a095131a5f8e49cf95587a3bde +9eb44219cfff7f7ffbf2eac6434779c8a422f66e80c3db90e4789be0e5940d3b +f0d173fec9947d7611135100566345edd811f9cc94b97e5d2c96967eb13695bc +28d863905d94909e0f2c1c299a6f5a063c9af1ea6f922dc70784720608e997e2 +7e427f3492ccca9570b81be4126c1a4445465a00f9bddab13e4e42c7b0ea7753 +d3dd30428b6b8f5bceea6e0649ba9c6cfde880719414a3afc7f2c995fe899fb3 +c37d4c59d1179e410e6d2e41775d4e2da2534ce87442a90b5295a3c99a5cf411 +dd8da9dd5b81c825e5811669967d6cd584e461a17073d1b9701d7c5d1fed097b +032502b8247cf9d2dba49649ef3bd7e6bf52badb7fbc167bbaf7b13376ec03e8 +ee04d881ba7d74efc16b669ab02ca11df2910e88071a25e3f4e81d9115bcccea +fc1cad242ade2b0fd8e233d28050374b3f5dd0d7e414202bc8b2da9fd5c83069 +6b56f3a65848fe6e76afe8ea3a766e480b7ce54d48a6bac7decc73acaba9243c +6604088a58eccf105d8f09bcfafbfb83d3fd705553381a3b2414151639cf3eb3 +df353fe4e0c0f4b61b6a4318fd6c9262488694eb142bb1cd160cc766c9defc91 +22af8fa3913558535e74c259dcfe275ea330904d7d0756d99eb4874fd1457751 +dc28ac87b5169a3ea128221336958ac7b0b26da3a8c0c67b767e4234c1b97252 +675d7b6177d6ee0b82b280cf7641bd0793fba0235079fd6566e3ba565f4df5de +aa9854469bf10ecf83fddeca5ed7684238a7db5fb6a72f1807be54de2f08c9bf +fa608816ab648da9c41f06f4d635473d1dd95b99bcc83a5b6ae8e21a92339e85 +f20fe8b3cc04e0985ef24ffa8a3eab55f556cd2fbb61f3a6f6c611fd29d71d47 +fca780045ba9a120efeac851799960049b6abc52e14f888fab11a907c1906e10 +b5ce9c144f6355ecb9d98faf15b72b416933cad83f796eebab7d1eeb9d5e616f +49e38a86c9d24f53a6d44c674902e8cf9e383b878585edecdc557673cf061834 +644529155fb00c60eae4892484a458a4018649bfbf6bd6ebf721c4966dfd5364 +6278a6a57112f2bd67f1426dcec86a4c3010d768fcde374eaba2866a96c85de9 +dc7388b59c3c116967c29ee252306eca853aca3cbec796866e3cb41f8c62993b +f59d39793d0f02007d8509c25f7a8cce2389e3fde88a24e7221f55384f1aa17d +48c7ab1be0ec37a247485b8adea4fae484201dbb0b7e88236e1d8e0db5ca592c +3f0b2e1195fbdba7f0fcb6494de5fbcd2cdac2dbe2b331eab091fc15731378c4 +9a8baeeb21eb191457befc7c5108d31dd8c5f4340e4640a3b866868aa061f9c7 +8fd7b078319278bb63278bc589e040bce4a765209bb656b25a5188f3f304e1f8 +9fd5e922cc956c575cbfa791cf59951270269ef286d901bd43c6b15b264671e2 +db65784bbc36be39738048ad9cda5cb289f948a54258a2ed8e6210c2be918924 +37df564d0bb1d6184c4b4f9a012784e78195f19506040d15da6c85f6a61a9c80 +eab3b0a6efe179339aeab281ccd07caf4a75410e30069e615ec86faf6e92bd55 +149ae1446be7927290e9d88c30e428e9adc9e7bcb734d8511ebe467e09fe341d +5df044ee5f024763c6b4e6925a5cc46169718e31315653ed533b7e12034cbb45 +115bd0496a0b02561bc0007c183fe4965e9f8d2919bbb404fb22067191b0b7e0 +2da1adbd2a43db5575519b4abb47e648074124acf29197e9ffde2837469ca79d +32c5079237a3f17fd9bdf5b2d41269ff952e028f24adb0b16063b0b9bc83eb86 +dac2b66efc23c1ec18e0bfa764c7bd23b225e1273ddfdc56aac95fc355b7d503 +21c3029b3ecfd14ac937cd312763489b1ca32e44109e46061a380a151f6edd9c +0a54329822a66a8ab73390067318837d0e01db12d4d4b2014b758a3cbec6eb0b +63b8512ee45ff99a88cf7bfc894b39b3967ecb198d32c225ece763d6f42cd089 +6e9dcf32a69178a2cfa61a4e93a8f4344cc7658a70e8448534616de0de4da963 +23e63b4061ff4785c818aaa9d2141b866ff6cf537e5d28c81c8013d07f3d7f27 +6a7c921771316752d260323359585a4e2b07e093a980ce55e715763e4c11585b +04387404b1c8381fdc8a5123d88e54425e4b43bd62ebd92234dc2528fbbb090a +a220deaf8042e59d8d688a5e84d073aee92e564a361f1012f915ec30ca52c769 +74f7439345e2275dbdcbbdedf32fdde895c60d267a921e449ef705e09d1dbecb +19969225954556ad6bbbe4f39b4e67f505483d1f375c5af02df6e12dd97d28f4 +b441965704cb0b4b4779c66c83adc18420bd8c159360c0f16c7baa2eb32856ab +88dfc24b20eddb586a444234d47facbc946ec283bb0c63d7dd69a001ea2d8925 +1f3a6d53a31efcce00c992b94e9cf3e389d0cf492037451b79987cf35a218f47 +e673ede427e7ea34d20db31e36dfa83f12253283edb89191d38e5b0ed587a8cb +7ad0a11167c48c00e5a0b30b6f03c51b8cc3f0da983a14133f647ee0997bbb01 +af1f59f11c2e505b5362ed3e15358b76552fce7d6b2084310bdf66544ffab59c +68b15ba14cfb9b6eca794e3426bc9f532ec41ebbf730532d26c8966e42f94656 +3d7760a60789c869be97513b973a5fcde8c13efc12c1ddc9e3b2003e351916d5 +c94ba463e48aeef0194d369954011469ee5f4476e97c678a07b17eb958b49774 +5b8d9f93ecefe22ef419095859d336d8d63b869d4110017cb3ef0398bcaea810 +fd5d8d93cd8fa4d616b023769a3be294423031ae7c55e7df73cd43646437e33d +b692735dff3efc596a6786ba9f8c81a596d6aae62b9cb846cbf0174911d8317a +a308dc565d0df5bca02ab5e9951d3fea0a7902f865a0c6f127cf6a246e479484 +63e0a096e1aa26d5ba3ea2481346682b8812c8b1fa665fb1f7cb2c751cd3b1ca +e67eb17a25f1cc4270268325236f5c02b8eac541c0e2b9b33e33e0a9efd16be0 +79385882e27d915058734d5743e35821d9b6cfa725d4d3e91e2e3703c4dfa5dd +adea16cb34c2ded3f67a3fb00dda757201f9dbea2c207aa84ce7bbdd91d4685a +de3f3018511c97e02533e897440983789aa4a64752715a80cfef745e6780dcc9 +7d46d0495c2485baba03c0707f62babb811cf8c53083535558b4352836cfa36c +32e55a09ff88c0f366a152aed3390cdd07fc812cb400ecae8a6e312259e11407 +348ab9b1a748a4b006f3d8255aa32dccb092d0dbf6e70960280d789fece9ca97 +58b61be0b2287cd81a53322c30cb5b08adffa3e8f5c6a9b49f564043efddf252 +a6e6a2f66967160551e6c3c08f0d512c012f44df7abb971896986ca43457d984 +595aacee5ff340423b048d40605d08118d54957cb37961bb1c6ab983c170459b +4f0eaf8cad2127212c62a26c07a3a9412e620e043bf31e1eeb37ee4217072a93 +56b3db0f4b2ff1228b02de0bd740b9f123be12fbabb847a96684784dfa45ab77 +f349bc44588112533d9a69b3fca90822d3453df28dc670b2d06cdbaf68aa34ad +dab29b728ccf35bd6b560e4db125d43332c707a46d91f2d8a1b4f8bd26b91efa +4b5aa3b182dcd2e516f08b3ee3888604e95afbd43484e4439b41ef328e56effa +5424242aed8159c6811c5d91222fd046a5ad1c205480abddd94f1942534c66f9 +44a426786ae02546c4e789d6d4156f8972dca3ac1c7f30186438189e58ca8be1 +1446f11fc38b9ac775e303e0a8939ed925d5107248009724b371bf86bcd06b56 +029c6a484708a1adfbf8b0ab88c5096737372cf031ca6710493f85d84c24118e +cfcca26d0fcee57bb28ce97c4e515770897e85cd5c26bb23423f0d234a29afa4 +4834563f616377d1905b61fcb2ef4e1dd74ee5a5ce8005891dc2c4b6563e260b +d0538e1607a7d7956bb11ebef22772748b3934237a6ac4637add115ac35d2f87 +b21781dc5e5d7f31850538606044539e655b4c763ec27e11e59f2259f0168797 +267c6f6de71f4dca9e613a1a1dfdaa1c1afe69c88fc0ee9cb8a4022ac193f54a +4b3d9ea2b32e6f15429e7dd11851af592985a697eb32e2c084526a0f44e112cf +4aa9b9e9660b066675ddc2c848856a0bae01af9ae5d3818f7a51622eafd51bc3 +584fe7d8c0df2212bddeed3acf3952b862dac39675461493e61e431ed9b3f7d0 +bb9661046f9fd71ac3339b71450952facf48d741b6f07f105473544b07dadc84 +29f0e050342da70a301049d517555805cf7c920fbbb48c56a907a3a19d8c50aa +8b624a4d3789a9cd600ca2332d77d101e808f83822c2942eee8e2a68e6f0e8cf +be1b63b5efb1e2d1af9d6e311ee20d58cd61085c6071d48fe9aa42d64638b7de +49403daa2d3667588de865feac8f3e4c9f9cf9746b72af6e4aeb6d61afd1b895 +b15fc935231b0f245c5802fe3bdb234bb53b48379ad397cb7f543c418b457c2a +9443e5c640943135ce35ac901abec98e42688331100aea3dfd0868fbd96b0aba +fa9588db53793d0e9aea3b011d0223dc696fbd83a5a3faaf6faf4959be8d3d15 +b141231a47caa4d7746ec45c778809da6990b8fc5a17f71b54a33d8b2bfcab20 +2d77c515c2fd7d4e8d4d16e2f932d37aba003be26de0552467103e2a76efe0bd +2ecc64c528ca69ecb11b1cc06a444aa8e2bd3e6eed849ac8da359a82212e00ce +bb2750beffda0ef79c020d9338571d8b6d1f22a4f27d56d3ca15adc2a79f23f1 +c4280d6773456f2784f0252398aff2006f03e76567700b64b1aec7ab85ebb1da +8691ba860f8478e42c88be431c07c924acc2eb6bbe37488720f914e0dddbc15c +83705852d5045dc73856c8f4b6aa093e032af86da474b9f07a211f2c3e1f2c53 +352f18125c184924ce07f287a03f51cdc13c864e19b86c4c4e62807432096fe6 +fafdb8b65f00191fc640464c4caf1cba3e36e7ccf06e702c2d66b59665368f9b +dd06aba38849343c8e1df4e0be2d847b93cbf79cdd0360ec590622c67df13c98 +bda559eea0a07dc5e9cdeef962b161f5c82f2fc8d3ffc2cecdce1308f5713c07 +96fce8b4c71dd823a694b741904626659c1ce3c4f89efc98918aefbcab53e389 +8a366b6f24ca56625a0dcdbacf39fa6d417b632cb5305c526a427412c49f8a0f +e4fbd6f0b51fc97b85c1a30cfe91f32d6695cfb4c4a1619a4ead80a674c53876 +59ab6dadb763f1f1695453ce2627169874a3845f5c6295c10a9d3c534d14ba0b +491dff6be63cd182b2496e01b53d931c857a0dd957706da4d1a07ddcc5b80b4c +4072dbb1a8b4273d4e2bbfb42bad673b923cc4ab10ccdac1e796429b0995fb9f +9952f06ad26267a5af7a41f673d82f6e700f43e163f4d5cdf7a40b009f477b55 +dd2758b4dc949918dfcc0f5d914ea98c8a2abd3b73376717bbf822b0f5f1054c +b01f9222986e5f9f22f1b506079570ace57f20c80c55697b0de5a417a227f4da +26cdab1b766f4854ea5fb574781c09945e54690824c587468648dc20e1f16d64 +a7133342f9d3d3cc93773fe065f101042b8d891e9041a72c250b862054231491 +00e539a3cb9e9398d4ab0d19f15bf8268373c06a08f43f800dd9b0b2dbd7d43f +18a3f2dfa0ce5bdaf8631140d572b7d15a6f4acd06eda1e9b92d69464887cd28 +37c33c50af0a9db430ef96e4507b330bd2d7bee0075cc19a88ef0625eaee6ec3 +429cdf7d20ff1cbbddec2758ba20ec6501753025f717b6e5e278ce406e1f3b0b +62beb675411d62a19c1f12de5582c544c252adb313b2e9cabbcc9827ede5824a +887a8965ab08b30a2e242b4f78d8c92e8f4d5b040bf89194dfedac93cd88dfed +379d3e9b80f37e5e2dd904d4b17fd8c463407a9f4a6d0553817198c07ab8a347 +c71a6c7e5b2a11c12ec2d09e6f82560b608e666d6503e21a5b5366eccaa1a325 +2be976dc010234b9f1152b43cd36fb38977697849cbba678308326e915d2da8b +997c92f29b600787c187aec219631084944b1eadedc3961d273da1f3dce724e8 +4243f0cc7cfc03215ae8fd7d52e17860a3548a46c0b7dd5456f942352eba20d8 +58139c9f3a188f01ff82411a5f8cfcbb7baeebe5624c207a731ca4e6cbff4c69 +d0a94b0f8fac582ac5c4ad113f3879426e5f9452edf4ca72bcfdfe383d76e704 +24a48aa7d31ebc31315acca51aad68f516819815d23a55a872b666059a0208cd +c4771cd19853ffef6b498d51167c92ca5a4383f3080a98bcde941cbbdaf29b4b +7cf1bc338a725406344ffd2f53eb4b11a7ed0d088e5e0c71d9d44c1f23f262c8 +008dff2c4f3c214a2a6e8bf8022edda08bb27aa4d843c144325398bbc5fd1010 +4e0bcace0f9e5ed4916e6797a15ecc7d2d0b7ad2db5bd59c625ed75b722d7ef8 +3f83461cb6e2f10f69b3d9fa28296548da4fec5977ab2ce4eb764bca4712248b +f06ecb933a186c3a853b9dce6ce162ecbae5c3bc4768b88d178833a2d0d452ed +364573c1aebe6a9904c96b7ecc3bc7bf206dd42a2784f5fed52ca93ac40c1cba +cce9d2a3ae64de5033c6866d443eefdff4a5fbc6673de330b78d695a7b0cf370 +9fbef1efab2c8ee3f012a68b45e7814e78a7f473fc0fe5e0f371348572b168ef +c0fe3bc25afada49cc40a89535d72cd06698555ca10693cf7bb47165f949ae69 +59191e44cb5b852b111cada0433df3ac8a17ab71520ff59c0b9118efb4f52c43 +e56155ac69f18c3d100ffcb0d770b553da90c7c5259bd7520fe8670d643e7d56 +6ae598d6f24adaf5c81217a3ebf95a84b06de0224a84a71caa0c315b65e5d58e +ca1b92dc723705eba78ce05c4e4b6fdb7c6c1fddf45017e58da47ac0abba680a +5296d14e8f7b4f318dd0f3064c6f1fd82eebcacbb6fc49bfde348170fd7bc83c +0029c096f4e22e6df93af0e8729953c17bdb4d3135a2f3bbe91190b4a1eab51c +57b43ca507bb92c162ef96eb4cad3199a8840038c2a898ff9ea044ba66c188eb +7443fe4cbc2f73dfd6b00f606b235e0364a3d838d79a1bf68de8d585ec2bef72 +3ed31a1074a6cac7caa6de79bb0c847acaaa185ee8bc28408e4aa5434d634087 +7d0eb5f09c4365d31ac35a8864253251786097e97c5033e340d957ce822ba2ce +590d15b5e8fcd805d84f44206d3dd5f925a89b944056b44079ca4b9c038bdd40 +8c05707ec5c063f12893c37100c3f9e1c8f8e85b21e51a63ec79b622ba8312ab +7c75e014997e8a0a58f029e63dbf4933106221d240df71213d992ca0f8d25c07 +530f66faa44bfc66cf1f8d5789290164b8f89072e75fb820a6f5628d671d4e09 +389a07ccc1f98b7ce8c6bc97a6c5d938b199c52a8cba2d2ea936f509fa8a3f89 +f33007cce264b2b251ed6db0e6ba0bad65950b261bb2bfd1a802e6c9b401e6b8 +88abb479787df3383a5ad57e119974a0f2dc3282d8d5b022ee52bf27204f6387 +8a4f0edf9279078fa651eec4cc77b04ff9c18b5532fe7f91a0b9515b0fcd3d3e +bffc3beb47094a78e942733ede5155ca699917ea075d729df6ccd8a96cc37b50 +789e44e71a080902e8755dcf17398ad464470938493714abf0e7d0a41c3c55fb +f509cabbfd130c142af7b4dfe6b59d1f11f67a1c14b7550d8b379dfa1b2bd9ec +7e371567f011f324bea202c76ed48acfe2cda65fe3119162685bd52898da3044 +058d497208f7c47df5b2865a912cac9b557f5aacf08b907f4970325f52cd94a6 +695ce71c19e854d2160d4157a046300def566654ad5c83f63a18bb28a473c00e +389b2bbd0c89bff39bdbc207a5c47a062e69c62d0f43d9030b1fb4e6e1e34580 +8c2ee2e8a61243203dd7f6e6d7a0fad51e85272143e27baaaacd4ca894785695 +d34c270eee9a5ba06cb2bf3eb8c1c70557d89cc0624b7c6b2f55a68470ed1285 +fcf3bd21c5e4cff2ab4eb8ef4168dc015096456e62311e8360deebe75740cc9b +ae5789e59dda3297e3cde567743a8c9a9ef36c62d8702fdddace6da2a4faed91 +8a89eb6fe9f611e1fe4a2d36c130fa78f7d373020d5d0383ae3ccc8183157deb +99929bc37d59c77b80d868352263cb0ad543a33603be91823f2e87c57caa8f65 +d2d72b80b6a19befa505b4a38c5d797f84dbc85676a5b91c2de7b7a644f72acb +e6867c7f3de86d60f080f3b852875bf0bf9e958cc9cd76b0aa4d8647fb82d86e +50d30a8b92ad80db83eaab632866757bbfa6de4db7685fa81f8455f91fa0695f +3bf47cc90c068c8cf50cde3629ba4d0554c6d524e0a609a8aae797c4fbdd1fa5 +529eab74640d590bfe62a97e8d25ebe9c03eee03ab9fbc7c839e1b7e9849bcf5 +11176df6ffbd0b19e4ffaf2f019f995bd6e70f6a0a46dd103fbea95b9a268c69 +17f6de62445c2a60f3162b04c4e25573060971bfe8018c278300512c25f7e68d +bc399b875056ba92ae450bd41b0c4a0657689593a9d1ba110b869d02a9b8864d +5474c653d299879ab1f09cee055ff5b875b4e32e6dd2782e5b8f5918d01f03b2 +ff4192562d39263a5f621dc77e1951a3f7c5f68a17fe788398bb0cddd7245286 +6ce8860ec0d0d354d1c81274eb5f078c3a1eac81e59768157ad0fb88e42527ac +32180fe6cc1ac34e70edf2b4824c836486e8e4ebed8a2bd1fe4298b489060bab +f6869d1acaec387075bd8e0d032e26c2047eceb321c9b062f595d1745ef64214 +c9737a025d15bb016411b9ab6d92c4b79cd4589b290082d3a24d0a0496c0694b +5c2418f93a14cf8a30388dd8a847a6d0d75d15d8e64a7bac3e3e76754f1e2cfc +36b1d1e026f1709e8881e18ea83132049ab405227b035d8534b19812cf8eeb3e +f53cbb5b421ac1e40f15fdb7ecfb5b37fdf5ee1ce6b24101cda6dfa49f04e770 +f9ae5995000ce6cb123f8dabf249a8c2b961b1d7330207b273cbe67d512d310b +0e1721bc29fede1e98da94737af350fcbdf8b8ba357cd922d328180fc39e92af +d759268e7db777c995f1801dec0e787d3844c05eb62c70f3359597619a23db98 +4c41bb92333ff13227d997dc0e484124f5d6aedfb9d984d16e211a9c436f6df9 +3c0f014e2f97943cc623ebebaff551f618413bc0e3978c67ee03d9c232e1ac4b +298bca7e97fedd901b70336c243742571d1285d466eca801d811680cd743a84d +7e7d281fdb343e3d22249411036ebae6a8a6556bc213a2ba1840400e96204111 +1613b471e7f9fc81dd9dec37aea9b6e52a88e80cc9444e265f6669a03f8ab790 +450713d34df2576746c7c5024a6b8525c38025680f3cc68292f929e7c73398bb +4ba02b577cd2fa184438e201dfb25db9e76fd01b2e53eb0c841bcfa60eac059d +55af1aa26a07b8b0372fcaf61a7c883d6bafc79b59de13a2c2d8424378b835e9 +354a2d875aeafad3d01274fea6721126ba49a1da708d2502a4cd8ed3feb8bc1e +aab3b5bd5eee75b21a40f6bc5475edc20b4b4637868d0fd9ad8733ce6c1c91d1 +cd78efa5444743d1cd7bab427f8f24093a7591beec1f385a8b9dc02d93907753 +e403bfbf5a3fce9355e7172df168f6704074c65317ef148b5795db5cbb9c3bf8 +6dafe9a83a325823db0472d0c0d00479fd1c0bd02cda2b2959dacabb5b3a23f6 +cdd6a36b91de15cf3ee6718030f8999ac4994cb3fef37838191fc57285b579dd +dde76d4e27983c8bf6f2119f72e0adcc515ff59ed1280e6d12b5176fec1a621e +99b0afb4244e6fa2ef33fe2b0e315bf378b128821104e00849834f8ac186843f +f860c4b333f1197b84eee7e967032b56b3bcfa4ea7764c937c4f03defb93e4dd +9c96de10b02878228d99a40d87ea64a9afd14f5d6ed48ccf4dfbb94024cb1c0a +a64423963be9e9882e707c6276333c0ba3f6eefba424a2e10ff88cf76e45ac33 +d0a641e2656329edbeccc5d213bbba44586f5722a6dae8245c1e84a06421cd6b +659be273a1055d6e092e5769ae93759b6533bc9c8ef13e5b920d24125dbb51ff +c74a1a340b5ad94f785ecfdb245d443162fc9f417b49881512ede1aebd251766 +84901482dbb37acef30242ffceabfa06d1492c30afc075ec2de8554a66cf5c8a +3e5a0a134eb1f8cf581db83a92f8addfa60e4a814dda2dae415a5ab30692f325 +09fab18f8724a013d617911fe426da5260e8cc5caee8187fe6a9f57812c15a8b +247b51c8e1412d22aa040a894a7210b49b847e0be3ea398946f0d9bc8c11b751 +642a93629d39a1d655dc59d5e7e6fa18cf2c0c89bb126a1e5d18698d616317f2 +46f410a8f1c40820498e0c4c8235914163bd76180b82274e80d0598848fd6df4 +69378cbcfa0d3c260a24aa164132b18dc004ea9904c1f740471806f1d06bfec1 +931748be9355c122f29e50cb39cf027fa12f106c72b2d62a382df68503a8d143 +11ad51abee9283a5227aa457d0ebc2dc1b157485fe22b26f9f0b4df8c8e7e508 +dcc32c020b6cfc571110064c501afae8b41cb81a6dea6624edbd8071037a48d4 +fb571ea290dea299154059ecc52150330697a70a9667eb22a6e0c973a4357cc9 +44e7b8834c39c7ec0064c8110a6f7f233b378fab8fce7056796f6ef4b0f72f60 +06610f8b2087f7900c133431595f07198ce709984c03e1acc00946f1f614243c +c4f4e017a78dc33c7b7811b88bcc693fd3806348f97ef72256615bbfc7741ff3 +a4e618a72938f7d463992fb16517e702282e853cce87044bd4e62c72a28a2ec4 +8c9f1193c7875c032597b9ca428f8e4bdda12a44cab7f6e5af78c0e92308849c +5ce537fd9de29fe21c99cd028b1cc09bbf5503e448ea3b188a91fb43838bba59 +a7a7cc61223a71b3f151bc5a30b2e5198c9cc424177e5c19d709671692adc9fc +5f82d062d5f57f63f9aff9226f89b3e14b454e379efdc1deec12aa599bc76aee +eb6e0df8ae03e89208079e2d5120d4736ba05bfa19c60c5c28811e4cee12253f +5d5c4327759dd964d256f84fd0f1f0e612278dd1d4c2e2b50572899ef1094923 +e4e1c7a65e3302032177d5750960d7bc24fb0dccdf2fade839a18d536b66f95d +775ef0710487534df9f36d4689a7a2a2404f9f597a9fd0424749582fbadb1aa0 +caeb17e0103e7dcf549147ebad2343cb485f3ebdafb72223b34c717db9611835 +175403c46f3bc70331a47113bf566be329cec0cf54f84e71de96e8ef12303ba0 +4f994b0fe1a04988405957e4b631788bbc41ee8add5df85acad98cdc7e7f7fd5 +cb0b6a9e4b77b1f8f7f86d50e9f632cda32118a666f95201696a01332e60aaf4 +4363cbfce23c20d426e6cd5844510d73ba24b0d0a341202f25d50d1b31de34e7 +3ff9c5dc5a9e7ea6252ae425fa98182cc530456f259fd020bb88714c49edbf41 +f0861b9a92a1e40f272997fc4999e3e9499e652ab3a0217048b2fbf9fb4e3d7f +304ef8bd3d34ebff374dc7ae7b94ae711b829097b3175f867603e75cea74341e +53aceb9040741c0a170865a804af6f4b0b5342d7f85a35daf2c5de35f9ef11d7 +61fd7239c8285d7b159c21322d47d70dbe74c3cef60f0a8b5333cbc9b5c71d84 +3c467acabf2c45c5b2cf1a117317dca0f51095e2eee1c56a3cefda5640c979d7 +9846ae1badbf764027f5a3109cb4087d97d09719fb1c4450f1b428abe5844fc1 +e85cc6b22e451ea40724f82ba78a19f71e0e5a594600cf40b2785949a56a6ab9 +e3a08428aeb81368057d5b51cbc805ba244b46f672f63a1842b6619d78a428bd +953b8e5447a7867d54cf4c6b4097c9f5692f7e547236cbbaa46f49f2ddda6bda +71049234fdb1b31cb7a8793c2f26d7460010f4664194208f2e73a157fa8af181 +89a2ddfb9413a77a3ed4a4b1224bf684f900183246439d7bbef6d67cec3585d3 +2ecf716728da2e53a4dfca098752cdb70066b51dbd85aebc018e42eafddb40cc +db702f6ceae21be6eb5effaf3e7a3bfeaebee77159855b622457bf5f01b3146a +0ff7f33790beca7240b5a0031f57d9d8ac1f80a32569df420936e2aa5f2afe90 +173ba6d34dcb45102ca00a28cb26a419ee365a5eb5e27d67bf38b7b81f233a68 +0095429772e796ad24d0fba81acdd559548474764290ec307e02463085c3fd0d +8f08eca815c97ddc42e939dce6ff49bceda5c8b8750daff47390bb96e998c005 +f31cbb6a0aa280eddeac7b4c832b4b530bc66ecda6b85965cd1bf0c7bb426ce7 +f0e68ee5b1cc180fc68c09649c84ce5a74cfe4f4bc10dfc8f5a959a3c0c97dc9 +3e054569d2e1b45a9a353081de9a06e31be6dbe93ce131edb7318adccd8968be +cc7ead5e00b0f0c640691bfde2d1de3a7baaaa33913f17d8feaf4973e7e6cd0b +648e2e4b7509a42f02ba8b9ea61fa632828b352adf1b9fa31488d5b3f1ded0ea +a34da077efca470d508cf246aa993a1fa10dac8c01797d8147205c7ca5a0bff7 +3ebbaf5b0626b06eb56aaafdcff53bb98f3320b4babf796404e1724bab3d7dd1 +b6c25844675877e0ed95f61a0a677a828aa2b05f68852e25e2a3c5057df1a14c +073efef67326d39119371be9dfc99f1589ac6c5810f1e9ac069cfbfb141b85e3 +0579e31d33bb046c4931fbad3463a6384712fc6b4bc29d0f8d7debc9df8a4feb +a2cc53680bf75e2c65b47061cf2b56ba6d390a1cdbf87065f436bbbe28b50aa1 +6ad75e6da40b79086e3a11be3afacf81880ba0f16a9190f5f4a77cb100b1d783 +e7048df13a219d17d1b5db8c7ed82b1fff15dca29139da190240b8380bc45b61 +e8594ff8b483db15c3b0906a4c7d6ff39160d953624ac1090d0f282100a57149 +5dea6c4412286b233d867ec147c21aebc5e10118d95db3bd9e5c5613b067c49a +ccb42620f21cb5ab5f6aeb20618421f868c5092beea9876ef0cce6c20855760a +cce59df19120d59eb0017d8c92d9b31bea8b52a607b5a021aa675c8ab541ef71 +5f516601b1082a3231b8c07e7c97a6b6812c9a8f3935959f297617df68080c0b +28364fe635c804e68153e7e2cf5d34ff602bbe565c46446b7f2071c6df407536 +c8e59796be1e192db379bf112b6df94e7917cf5cc6a905886ccc24e57f1c99a7 +2665f6cffdaa6743a5e2c9d46b519dfab9a4a6c76935a583022bbc0d7869e08d +a1dd91d9a776cd39542ed3097ec97ceaca9db06a6143a0b33a4dcfe91340f5a6 +f908b2dc123eb636caf6bd09117a51388d1b2760ae8d70fff2924cd002ae0995 +c6f10c7c17aa792dcd270056567ad17cbb88669ce7b81e6fc36a7371c218ea67 +4493a18f6ae4fbce2ff08bbfb25ca2dd65aa3fe28ccbde3b2f36c88de30cd95b +5c1fa810981e56abd6697b0dbc2ebda8783c7eeacde33f688239d406b4160ad2 +065bfe629bec65231876c1539c0d227986957a3a0cde922496996640dac05a06 +36c0d29dfad1de8988c24a890839f835951059498ae98927e14d2196f6c28944 +3c4dc3e822bae65643119150791c62a3a7425d0229a9b4a7d7ae570a3e8f9cde +5674c3223b636ab84774f4770afe4ca9eced4617a1f182afe9367dd32d380a1e +e13f5e17897f36a1acfb0f4c54c6254ee611ca6dee914ca30e3a3a0ebf95c135 +cf9877d6e4751bb600593506825e180878532fa7ad50d2478eab9d4f352975f2 +aba5e90d4f831495112bb28f8f45c3d86e0bc5300a3e46468572ba4d6da50ad2 +17371128a884dbbe9277f39be7d30e3f2952eb28e9780db38c8678b5f03263c2 +d2c73712a902c81be43006044d5039fb0b5c2a8e1959963f5a5b8be2b6ef2df1 +12a7bccb5d5bf711b9c4c3a4cc939d319b922ed6d7f9a30719c48cf048a417f3 +1b392db55253b0df1f7fa1ef0e7a0bd2c80112cb212160c82e4e8004937da3c4 +bca6b944ce45c8e78064ead90e48ad5c559c84295be22f394e8f100a85e1438a +62607ab296bdef7aa61bce23ae31577f98b51a40b38e6b55167119349428c0eb +9bf6761daaa00512e64fe94425825869893414117397028a116ac84fbc8244ff +48bcee233f65f347ee1d31e63e53efee9106e5e630754dbd5de12ee758bd79f5 +4f3807d5c5836950d522bd2fc19e859b8d2fae02b4f0760d7fc1699fa9e6605b +ae0ad932ed1edb58d6de581bf126f0e2dfade0cb56d6ffed96c3dc2a6835382f +c97f5964cec441c28d6e311898953149ab52ddcf980b6ebd80d86c503ba3762c +be653cd04ba14791c9e806e3619789c0cf59917120d2db9b31a682f83f2ae579 +c8da0c4fd6a183b53a17e581c851dc561ebed01d0b30769ca8f009d6a400f9b7 +8aeabcb48996d5ab280f68c667dac1d45d2c8109482567e1c491e372d88f0ff2 +447b435dddd5bc5c161a5abe218b5de63886162167d32ae4f94ab84645cec019 +989d004b75cc0da438150f5f43030c8f71e5d685604407eb734495af6f686805 +3f0a2c041a5f5f751c590b863cc2b6ca66336991a51d7818cb120bfdb2a3b7ef +93e0a7877e4348003b18088e9bc99c3a0ea007e8b331bfb0baf46b668f11f5f0 +8bf5ce92369f31daf63064f4185957c164f9cde3b5d2f761f8bc0cfa01550258 +93b6f23b012aaf99395959dbce11162bbc15f9e8b99d1fec44ddb83fe90b3bea +4d9b47409e7186f39c78b15a144703c3e372fc3f2f50ef7f23f10ec97e4413a1 +fb38ad3d96af63ead6bac3e3514e9789221ec29c91dfb1c4fcdfd14fcbafe5aa +e07b8f18d310fa4494a5e9ae7975ab6c89f5ad85a29b640468e9b0802c37dbf1 +be4a6e4619c0501bdebd8dfed599501f5cd91e1311473f0e74e5e5e48cd13082 +f8728156c408ac7f756fd6eb64ea7d7ea2ab95007766b1b5c86c91c0d3126e45 +64501475810152e4d7079c095a80eba1b872e98b3e452c2dbe8d5d10cde82dc6 +0c7a9490859590e8ac36142e66652b9ae0c88ab875f33a0cbea2fac0efadc267 +6f633d32e446bdd173426b6063ba5318418135f09efd113536833166981c6fde +b63ba794cfbea7644d6e7b11cc762b239e033a5a971fe52dfe175e26a18e26bb +c965d2dec8b9c15470e0335a33bbcd75995b589ef5c07f39f4711bfe601a909b +d97058d980a2cbad9a67be65281f4223c180bc94b41ccfbbb50252a4bb147c8f +3b83f0f2ac2940a5cd6ed6bdab0a72f231aa5190da620857d25b78cfcedca03d +b09ec37f8cc53e994d6564cc50e9bf2649c48b12cbdb6e57ec4bf2a27ae324d0 +951bd9badb0a3d1d6d75fe45951ee163bc46719d7e84bb99d97909357d51a8af +4061b8ce2586e2c0cfe67eb65318536b101c1321162678979f8cef80f26e080d +07ed450609ec1874809ef032734cb18ea6ab90963a6a2290138c206934a4c28f +ae27bcfe07d8a7580f2fb9730c833b8b61c68c74282d91456898f5e65ee32a3d +6d7c7c3fe5233920682aba31017946f77e77e0ec99f367386dd98de87580678c +ea7d485f64970b1262663142f27d344dd2409639421d9794b8ead1f7d22d73a8 +a0c3a5f60af51a00c12ce2cc3c766c57fa1bd04852f296c080c679526a428e3d +cad49189cd4ee8ab55f7cee20c4334307c10c58a474fefe2719a6203d2b8874f +c31cf068356a004b8ff28b67d798bf9e3f1605f8d72e4486a08576d4bb4b2150 +f2337e2ebeccd7e481e197b65c5ce812da34c3271b875c31294ad191fcbd6518 +bdd957c85c3dd88a4435801d4af80d6a630268bc26cce5e89c9d117027f964bb +b8d0e9564332b9facc27ac16aa6121b5baefba598b2b5c7a172f81e07cd58d08 +a0761381988241f6668db2d732976083ff410063e2f563d945c172feffcfa13a +bd5ca6dd951c8d57ac32c16de0605da28fd7ce0248f5297753a052a55ae572be +78f584758d2db162558b4d2b3ef76c1a8f3faacad21fcbcf092157c6e5187ee1 +3fd49d3831880f4c80fd4085be90a6f0331083100971b581a7be38cef978eb70 +eece1ee276bed3425c511326adf34d8daf4b55b679a2f99bf297f67100261a14 +a41d76aafc53757f6054d5b70ba54201bd118c1826664318816ba77130f6e340 +74d0af632466bf3d18b5f2efd4117249a6c8f2a74dec1b9adbfceda0a8703b12 +abff2cb696de07fe9573ac271087e78eec4c524529a1f8a2863faed167b37b48 +917215d3822051d77ad4377cdd7bc70a70b17e7ebea98a02f261dc18421bc867 +dbd09831d7f34f1a65eaf783705c2c525337b4d8db43982a5a1ac11e30d0df41 +15a05f41827566c7a511e4f5a770968da93ec342943474c35a0d5aad31933d4e +2a7356b4338aec558e9a7850a9b2b1b4dc7cd66a838694b4d56851969d954950 +90be29c451a570d72b4440381b56a2c1bb7d16f04301f092103751e524c8770a +9b94e0bbec15c538362aa636d8cf672b256bb22a139dfed133bf6c9aae54c7cd +0bd40472b8e0fcffe53de7e1ea67a240bd5822b2b35ead3f63b90e661329cb75 +13019d0be7eb0b4bc1d5dc95379305bc65704ea0aa25256c59fde2d5126460cc +3be5c6a4b3ae637bc6f5640cecfef8a433a266876a062334003db993a1a1cbb0 +b3ffb9e64e6225610c0643ceed78f933414449c3cc72c823e476aeaf3f8114af +3d3ca3db89266681cddb2c6bb6bdb6dd9384c6dc3be6c40b5f59c361ef53ee27 +549eab8c41234a47e742941286202af90bd93e2892119f4e6fa8ef793608e205 +f7688f01a1ba584a921e349d897bd50c9384c9330311dc0c8bc1cb6ceadda4c8 +d546b46b3176091ac8e9715fbbe24b1746dfad205c9b222e8fd5c0efc67d4786 +24cdf12e49583d3037e13c8a51d2a7fe5ae4cf6145bf6c0c1d9a8c303f581b2d +91be37bedd9d67be023d377025c449656e798564f5f4bd4d4d5cd332d5febcec +1e35bd69c70246482955a12a0ba7b2787c4e572942f255d0c07d5b82d966485f +570dc90a5bb1ca1b155da6536008345bd13b8c4de84b9459bffb5d524a2171f8 +34b1b313372e1d17c358e0b6ad7dc73a70e91d30ca8a2b84ad6a94d816ce65b7 +6fb93c45b5e7617f6706dd4437cef28f132a3ebb1ae82a6fd264bcd98a4f7aae +0893de4e1be948ebf8ed26982b31fa370c619ac67bf1521ba7b2c637a8b36aa1 +e89446902f5e89aedf0157aea3ca44444a445d45cbdb79a3c30a55b5a16ac263 +5e565c3586911f0e1ce0754c4be7754d2a15136077a32f6d64aefec7c56998c7 +994bc8c22874477af5e8d98411bbf9fe2b5c5dc67326d567a458178095017fdc +ab84e90c7b4243229f898d3917c120bdfc85e406a95d8b3f583bd3da53c1a2d8 +94718e521ada0ae9391955297da1218be09d93ff8049b82b9b833f8e94cbad11 +3732bc658a56141da6a9e57cda45ac02598091567cd075e5d2370aafde959ac7 +d42910225a0926edd9972605c1ed974b3ae63ff13daf6c088aeb8490e2cf9679 +e8324c7a6a55a14f485c3285829155ea8491de6e4220a3dcdf32755dc3a60c28 +443fe2dd221fc988726809ba450c7762671c3e559d8cf84dd858ad511d4c34bd +cca655455353d69642e170f5e384e3ca7160e9a7ccbdcb3c1bef0d7583e0a640 +34e74efe5c7cf76dd3e82bfd04f5956cd38c1b95fa137572827ac07e2fcc6ce9 +be139b876a6e80789cb6d0e83faf79d37b44554f8409caa4411725a9b18ef451 +1870a4e2a4bf936ee4faa655d63c5b869b78bf32f1dfa1b1fd8cc73d366f01a0 +6f63f8a8803af1526a619fa5e80c19c7f1f33886e2fc99f7509059234ba3552b +0e7edd9965e8cdfd9b888c39ac1e71ce4f9fc9659797609500b6a5cea8133eec +809ed63f154aba6a3cb05eb6070acd6c97157f0e654c69432227245b72ae2fa4 +382b163d6f83c9daad9a962edcd26d5f80bbe7cbba1a0fb1b9c5ab08cf79f195 +0cce9a6d8ce087522bed603e2cec5ee0e78d116880fff51db48b956bdb5c1efb +2d764588878a07c7f40643f6ddc531786301ea60235e9ac91970a0f975db1547 +cb5c0f111452f414d4a856c22e740ba07b99cd1f5342c148b7f30faecb99fe84 +82d19c1ffadf593bcd4f31c620bcd61531148c677fafd8357344b3155a0958ba +3b7bf827f1fd4ef1b09b63b1ff747459f6ee03bb8825fba143fe99c1cf545f3c +33fd37788552896dc6dc977aaf3ae8ba9344199bb9516c81ae75ccc5aabebd27 +ab1e220d6e8ab6f3a1746918a6d4e659c547567aaa9e23518f01d1b8b5763899 +10f106313cfbb27d26872fa9730c6ac93fc763bcf2c71d7d6709c783076931e4 +86efa44585c697ac381322df0e49cd218cb8d9ed532f885e3fd8860d9b673a06 +3d4146ca527c7fbfc652933bb424ac7de89eaec71873f3db3e8b18118d5fae19 +5a8f2284a4788e20fe54c6e8e3bb12aecc9bc2fe8f93f305c1e9ba663c31e8d0 +f5ab258578cf03c84715f84e7271e85c080a5ea9284813b23923418b39f7e323 +e01779cd437c882868aa9c769cbe3022aa148aaa2b749b0a83bfe8176e5e7f2c +29b70ce442ba7ce0ab77f07ac1db387c5e7c7e385e36746edf51c853cc8af8e8 +5bd0cce9bd31cf70cec111bc3a5495ffa55bd8131478e9706a953e75b90cf736 +c9a0732fe44ce0e16fcdb7cf056fe10bbf841e9a6b600a24c9a199d159c313bb +1f904811bd80d6f5da2bf237b68464dc03963ac0ea6aa66e07b8f9b87137b7e9 +72a6081fcfd48c5e1b71071404ea3d2932c4119dc85e0353a5d799cb17d100c3 +7333e39f85fa75f7ac60954bdb51f0d65b23de3b674651472751a2d68681f735 +8b559201ec3e9b2fe9d4dc3e4ab3f2e840874630682e1831a20079fbf2d3433d +dca6bd85df27c83541fbcf5a36c23e67aeb6fd04fd93c177893aa690fdbc9840 +9ab4aa58505f38cb04125405866693c283158aaf0a9ab92010384ce173da89b0 +585eea140d0743450ae9adbb4b20cbf9a9613fe8268d6069019eb3ab40cd396e +db1c22a8dc3a060691daf5dc7e11f3d0ca562aa64228d2459cfdc38f312edfd2 +b4ebca34a63018c90d206b8cab923ed65b3a6e5b697036df587d6e8aa4e617c7 +3eff5066661347c2f0b5d54cf0b4a663debd6e89d6c80b403dd6c022faa0647b +623edef055faa48d420cdc6507ab3540ef480abee5103e3882084c3bb9582eca +6d9de7debf781b6c5a37a5c5d1c3497dd1e59339868cca92b8bd48ff7e9aa4d5 +cbd6bc568c4c12a3ddbb443e3403211b6db8bc5d3622c9ca30748095984ed6c3 +e50268ec2973f70c7b2a7647987696d5af56997106f2b2a779d00506d9881845 +9747b4d786c6b2892206f4c8edc481f3511d41b258cc58078e734c54ae1cdf26 +5fb7766d3cb56aa0c1200519ed135ffd05232fbc96e8b4510a70ea2c9728915a +05206fbc436f7949c9485129f590696607b8ffe469d3e65386ea64fc344018d6 +03c82856871ab3167d6624fd929e3aee174f3811d84cc2ab1dd79a065bfa0d98 +b7ecf4341c2309f7422ab925902e838b12efd89e19fe5d95b6f993de36ea2f46 +a120170d2a4b5459107aa8548b5ffcc5bd9bcb907173ba8d117d0dedfa40fce0 +620e3ff0b1ef5a8194ca877daa79bb33e3288a1aba4f089e775815222973c5ca +392720766696e6e9f5cee98a05015d2e1c513a5a07d93b891d23254ad589915f +83b3a52490434e6319ed25e37e2ed93db893c6915146f56083486cabe0126b18 +de2926e978ca26acd4955bd6a74f48f85baace677eec526051bf30dc233077ef +f217b97a6c98be8d0b1a2b059dd55f8eed9ab512004aaeb8a864345fa76e12ab +b7ee70e302238b5ebbe3b6ecd33e98ef32dea4a532bd9794eeb23c6f4e499ce0 +d72fe5fd98879407ae21c1342800d36754fa2ecb52bf0e0f98af588e490ff1cf +57b1067b5b58694310c31da1f38866930659f27c8b7d0bd35352e6717446e128 +c23b0d7e4f40e00db0716d97464f7a52ceea989977d29934892aa9c091aa8ea6 +6e24a184adef9f0b4b703d7a3fbe3d07cef899139bb3013a779024631bfd4007 +f4df330ee68a6fbe517c8465a10b30ed48d2a846157be3f66eeabf52429089af +c1a0d5c5cb4facc2acde70b3f39464533259fc29d5c492329f289d273e3eefc1 +5db09f4c426422aeb3ece6d7507655fd7137b71ebfce06fe735c3a6e6984da65 +deac7c125c32bf8ce2d00168f78d0dd2d24a965b4818f524865f5c9499cad2e1 +954ac4c9670a54c8cf382bdc1729175aa091e3682ffe5bf121cad285fc7b0fae +c6b0d862e702302d1245751d14b235066a0f435cef9823dc8ef9fa74083915ef +20ac5778b43670aeea34f1dfa6531271afb83e63700fc6451da498699ef17904 +8c84c9f34a49ab18c88bf61f0697d94e04bfdcf80180f894f9860d01566ec0cb +d2b5224d25041230b9a4f3916d68af6201090365084e9bb33c32529f1f701cb3 +cff3017e64a7e4c02bd909a353b503f67641afc8f767b154063d8f180382b893 +f3e9e6072653dcb53dfd468afcec42856f7e58c654cdaecee338ea4b93f08342 +8c5b4ea93e347c196590a082aba7c34bf15eb551b16f7b5fcfc57ded573eccca +e1f50aaec19ac7506461568df57d4156764f63a2726e3196383b43d9cb85d150 +1e4940c123dd6dc60ba164ae047fa49123984254b181999b72f120d288dc9997 +a9d45a92b8aad626e4552042a17d589073c11e02907ffe309aa078f544c6d0c6 +201dde89fa756d8ddcac5ed468a942073cdbbf4defe4d80019238d4d0934b175 +2852218c7a1fb370ed7611245aa7d30439b5931b62d1bdbfc2f5e3d43343b724 +d0858175c2711d97bd49e7fdf83941566cb4025c991b80a17bccf4e8d53e0841 +f53abe2325b780d74d0c2e686e9d22cf5c5eea5460a2677b1131e2f06eac3ba9 +ee9e875a4d1592f89546e28cd976a5b57c3aa842181c4056c0bf73a2cff38de6 +653c47e0b941d7be0d5a83c3557b754eef02e3b49d66c2ac8d9c188e5644d488 +5785e98526d9fed905b61dca7fc7339b92096cfe90d831dec7d59f83a70854c7 +4b22a39ea7f223715b30b9e4469923f6b947fd7937efb2bc2d3d933b3501142f +cf3bfabaa04f04665e56da8a397dd951d405903582a61813d4f5e20fbcdb4f5c +a91a76d85812b04dbad9d1a7d3703d1cbb6b4806eff4980ef7bcc9355874dae2 +dc333059e427acccdb285789f3aceea22d751f6c6b93a9d247181c7587c6b6fe +ab001f6dddaba0ba7592540db46f2dc35b2b1e0ec01fbc43c987301878f6c1fd +e897d8058346cd75766c9dd2bd783a6fee67e6145c0cf32554d659577865282c +d5d1d24fdcb4f59dc2f64b6b53bbb57c66ae89f1ce3800e012796e6a4ccc4982 +78570920bf142997dfeb1ecfea1885bce4b9c5a4374b0b0a8af40e72b27c276b +b23901a57e218fac4e0deda5b1d199a531d97905207d4d5567aab070c38cf1c5 +1d0bec00b3ae4db83d4d28eccbf1620ad81484f684b9301171a74fd191b393fe +5aecb1009a0e60c718de184609a833c89c7c1c037a8ee70390fe71c893c8169f +d78c37fc732e8d932be4903152cfddb646f344b97b52a3be9e47786d42c76f8d +54ad03dcac23bbecd33b94b6b9f1c0de8d55de268f1c8593c5b8bce56437ae6e +74e198c455ede877870c39144a2e0dd24a2f18a05dd7553ddad9388b164b0061 +9c3b0cd01574d3672c8d46e2bf51dc7cf42a3a7ff9c1611a65ac3e1ba62c5dc7 +26c5cd66ea76e64c4f0bb39336601ac0c4f65339392b290afda4f00f0801df09 +a19a83abe38fdf0dac9de6fb4872c962ea4e5c98b44c5f6ae426f1a7542c31fa +a4618ca4f39947fa81e2eabf5efeb176b7d333ed6f71e22d7c4ce2455940b7c3 +aa3a1ba85aaf1e5fad0f67cda9afa9d774d115f84de2a98e6c85ab4f9e829576 +7fecd9bdd781f108f8f32d25b41d1acc75aafa35fc01e64e364fd7e541ff0448 +14281f3c64304f58494a039efa4382f54f04ebff666c5217379b34194cee42eb +d3885b74950e25c26f491494cd923eae995002cd172655a210fc2f82d2907ce2 +3c1b6ae2615496a0d0fe4cff39b8666afdda1114bd5e9cadd33faf4c773bbe68 +655852303642ba755ff3e5afa4b393f5f346107774dfc253b91585655e420eda +4900a0540cd4480ff2f92ee54abe5bdc728c6c364215fa6eeb4e5a714806b264 +df292a1aade8e1e1689c09522977f387105813f7ee887274e1f3188c801d2a37 +6fe8c434b2b604d220e607217e972d1b0299929163d8be484051fde89a73af9d +0436d8cb66dfa3b9e25c89c6da4466760fab4a143c82f94bd0f89dc59551a2f5 +7a5a6402c2d74d5dff6b8c153e8b79c766ccbf89ffb3d161592e16ea1e9d3491 +dad62f05f27afdd394e3cd27f965a41c35e5ea9bfdb88f23bb9911a8b9fa489b +31228ff8c0571528e7d96242961c446c8d24fcaae327b370315e5448c5899fba +9206bc2104022039266c58e28352c9d304b74954ffa1e19a348161706fbede2f +57d38f46592161a4258958f11be38f9d1338d251ab64c8099716fa1b97e2945e +26cc6dcd06340e3941af652aff6b0c5758601f59611d7cfbb804f4f21053c6ce +d27d7559aeb5b1692cb4dff67037a871068a1c71b6cf6f372adb39ef521a7517 +28c7b0ce0435af48d6a973653aa8e25f12ac52b9ccd59ac2f4935cf4efd1bc7f +2bf3c0629f36176fb7d6b5611f8257a0a3c5d43be6b23bef360e975c5be72d5f +80f105e1d96d089560a4995adc11dc8463197b77648a09e9f315b049801f40da +8693a06c92aebad42ced91c20ed00d4d23da04112e28c5a6dede6c68618bf359 +fa060e1b2e3f54e95ff7303cc5c42d455955f5c8ba99745393ea5cac5bae1849 +e5573a03516a6e339b828eba521727213ff193d5510eb4974774225a07695bac +479424391d08663a47816feb0db2edad68c5d7f20ff19a8d4163bd61f9ce7243 +a4facd400b96297b14dc3ffa6265b883a478738024e360112dc7b5c2e406d9a5 +ee0491cdc1d02270451445cbcddbba82bbd37e6af48d3a79b11ba8276983dafd +eee5584189f62edd9c2450f034f25bf454452f21377e10778326a04ea2366038 +fb158603dfafd9988740a5a5e14307566e86d5278ec67a4af86ce38943133f31 +ce3e39624d9c89f526ed7cec931d57769c8b0c7d47ef3e42fd7072bf54cf1a9a +dab9f03c77fed3c7b65dac47d72af70d19adae8ef8f7470e5d99c7be98317c04 +c3dff220d8718be44d4b2ce6544980dd8023d6bc6cd75909eb349bc426d8128f +31323010dd439e8332a54bce159b03af1691b1ddbc2583d2a7a617c7f38d7b39 +631a5691a05922eb21e8f6bf7c8eeb1833aeb9db2b80503eb309015ea0d65689 +b4c9549f4d3ffe5d0e75e8f96f0d55f20f5ffd440b60feb4fab3fdaeccdf16c2 +5041d1b66f031abcd15b08fc2273571958e47f2271a0a231488a689107b8081f +a85070bbc5d118ea0bbf60028f9b08052e3d8d95c275dde17ff46526c791ba21 +3844528fa7494e436842a42ccbd09a6ff37cbeed3b07c992604a0700453413cc +97ac42fcd81169fcd185f2707a4dceb3ab8f258dc29892a082b97e71616627fa +1ab7a1f24a93db38d72bf3f2b9ac701183d296bcc26d953cc9c5b0c52811921a +b6cecb189361fc868a8fdf5c563e4b95d882660291cc3c0bb6de71bb173e35b9 +223a325cd9f642cdb80d3b65be74c95844e72a24082f4f05b03bc05c00b51b74 +67b2540ba10394a6199c08dcd33f54b568d2684d1df43564374bac27068c47d6 +865ca7025f806f9c53b060aacf530b35fefc05c67e56cc855f763bfb520e07d3 +e7aff225296ace8d96fb6ec5c91d99a6e31c18b6f9ae4c52a0fdbc94491642b0 +2162961a8037c700b74b247ccbf01aacaa66d3eb9f09f3f66c6e29dc509a104a +683f894e6a0c1a833d3abe2ea9eab831d83fcddf5123324f51c50954e172c862 +c9945e9173a06ced6fe338cabb0b9b742e3ecd2ad3a0102b2ab3b213c31c2f10 +a3a9c48e181f765787de863337c2908bd3031ea1cac0e7d285a16e83e35b473c +66b40a11968023eb5d7028e81f2407106ff7297a8127dcb877dddac02c5ec29f +0eeecb00a337b98ed3257869c2bf73d8e039cd713cd1559873e67fa078186f7b +59a1b53785e59b554e35ae76ac2239df088df859c8e4242bab5e6e2eefc89137 +2fb15cf8a2187a3887b4a5b44a4ac8dac1de6c2c1cff931f7841d82c5374d543 +60b58df7bd6796ac0c6bbf20a706115ac75dabfbf1eb66e2a8bbfdd082734b82 +2e5cfe361806d24ac7595e22259e8a06c0deee0a06c33d920c1c661d29111860 +e3382062f26698eae0fcab0b2d7a363e58564caa80d4d45132f63d81f19c44f3 +476b666f28c399c30fc849307fd8b4b468a4ca4079f20d31c11115e4e3d0f604 +d10551369751df0cdb66f902e7fc8e1662b9c9c67cd74621f7660b2d41ed9407 +751cf529be48fb641423c4a92fda00fb53fca0002957d46f3029943105ce4ffd +d9bfaf918cb79262785600c184f783b7ca9786b967e1e580645b41621b7c3253 +dcd007965c23994d21d9dcfb06d23f450ccaf1360b1a0b8d487dd6cbc1a3ed88 +1d162778488614482f80e10df800e110e584c5e2b7d5ad46f1fda8975fa6803b +eb676e7829e2e3bcd293c3d77887b7c630f00a4e678b6463b82453427c9bd7ed +9c356f0d9d73f3c3e2560d862aeafe91430083e80b8f169762f116398d941cbf +811ac77fcea373fd9ad3101f7da8a5a93d617553a0f50946a8b2fd5f7282d8db +b760c21be26474c13028f7e6249de5b7ca8bd97433694e2f7c8dcb2306b6852c +4f8258da2dfef3e8d8829bf9d74aa74a261443791d68f9b1331085d30573fbd0 +d1b55fb2580d67d8adcb6668aab03e6e970ad540f63f93c231d43a88b25dd234 +88e8bbb72a703ebfde30e607ab95b70bbb6314ad7e2a855cdfdb6b0b6bf8431f +f0ab90a25b3b7fc283e0af75125e2df55ac91cde45954d1a8f1372b527719171 +ce420b4b45269c52a67b4b638872ec18efdee262c2c8df8bdd031b00ef942e32 +2e246209aa908032713b4b8e36fd523eb0f5dc04398b69d87a3690e7f7dd47fd +8b74b3f27b65804e8177fc997c0bd08057c3ce825b034888e95d231b4def08f9 +a77fd13e26a0a4febb4d9dd8d12838fd174df173017a69bf24bf7e91175aad5d +ffbb14a337397c60cb54c6e981bb1a8faa797b2039fb89cc4f3465b03809090c +fba943d15ac47b2878ea92355e843ff3ae49754feb5447fcfc8b58b1ec530b64 +82127a6c6cd994e146c25a9a9c0e677a4cfec21f1be2ba7f198c983bddad9e60 +68faa065c84529433ed370db409b64a9788cd2ed29caa8e6641711fee94bd9b5 +ba6d2a8e73b10c6de72a8e8f3bfeab8344fe6622fadd5d01457e31e8facd74cb +548317d15efbec53cdab722db40c57bfa357feaa9075eb60dfa05661638bca2a +0a8bb498 + +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +{restore}if +%%EndProcSet +end +%%EndProlog +%%Page: 1 1 +gnudict begin +gsave +doclip +50 50 translate +0.100 0.100 scale +0 setgray +newpath +(NimbusSanL-Regu) findfont 100 scalefont setfont +1.000 UL +LTb +550 990 M +63 0 V +1756 0 R +-63 0 V +stroke +490 990 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 0)] +] -33.3 MRshow +1.000 UL +LTb +550 1192 M +63 0 V +1756 0 R +-63 0 V +stroke +490 1192 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 100)] +] -33.3 MRshow +1.000 UL +LTb +550 1394 M +63 0 V +1756 0 R +-63 0 V +stroke +490 1394 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 200)] +] -33.3 MRshow +1.000 UL +LTb +550 1597 M +63 0 V +1756 0 R +-63 0 V +stroke +490 1597 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 300)] +] -33.3 MRshow +1.000 UL +LTb +550 1799 M +63 0 V +1756 0 R +-63 0 V +stroke +490 1799 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 400)] +] -33.3 MRshow +1.000 UL +LTb +550 2001 M +63 0 V +1756 0 R +-63 0 V +stroke +490 2001 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 500)] +] -33.3 MRshow +1.000 UL +LTb +550 2203 M +63 0 V +1756 0 R +-63 0 V +stroke +490 2203 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 600)] +] -33.3 MRshow +1.000 UL +LTb +550 2406 M +63 0 V +1756 0 R +-63 0 V +stroke +490 2406 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 700)] +] -33.3 MRshow +1.000 UL +LTb +550 2608 M +63 0 V +1756 0 R +-63 0 V +stroke +490 2608 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 800)] +] -33.3 MRshow +1.000 UL +LTb +550 2810 M +63 0 V +1756 0 R +-63 0 V +stroke +490 2810 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 900)] +] -33.3 MRshow +1.000 UL +LTb +550 990 M +0 63 V +0 1757 R +0 -63 V +stroke +550 890 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 1)] +] -33.3 MCshow +1.000 UL +LTb +810 990 M +0 63 V +0 1757 R +0 -63 V +stroke +810 890 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 2)] +] -33.3 MCshow +1.000 UL +LTb +1070 990 M +0 63 V +0 1757 R +0 -63 V +stroke +1070 890 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 3)] +] -33.3 MCshow +1.000 UL +LTb +1330 990 M +0 63 V +0 1757 R +0 -63 V +stroke +1330 890 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 4)] +] -33.3 MCshow +1.000 UL +LTb +1589 990 M +0 63 V +0 1757 R +0 -63 V +stroke +1589 890 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 5)] +] -33.3 MCshow +1.000 UL +LTb +1849 990 M +0 63 V +0 1757 R +0 -63 V +stroke +1849 890 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 6)] +] -33.3 MCshow +1.000 UL +LTb +2109 990 M +0 63 V +0 1757 R +0 -63 V +stroke +2109 890 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 7)] +] -33.3 MCshow +1.000 UL +LTb +2369 990 M +0 63 V +0 1757 R +0 -63 V +stroke +2369 890 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 ( 8)] +] -33.3 MCshow +1.000 UL +LTb +1.000 UL +LTb +550 2810 N +550 990 L +1819 0 V +0 1820 V +-1819 0 V +Z stroke +LCb setrgbcolor +140 1900 M +currentpoint gsave translate -270 rotate 0 0 moveto +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 (Time Per Increment \(nanoseconds\))] +] -33.3 MCshow +grestore +LTb +LCb setrgbcolor +1459 740 M +[ [(NimbusSanL-Regu) 100.0 0.0 true true 0 (Number of CPUs \(Threads\))] +] -33.3 MCshow +LTb +1.000 UP +1.000 UL +LTb +% Begin plot #1 +1.000 UP +1.000 UL +LT0 +/NimbusSanL-Regu findfont 100 scalefont setfont +550 1079 M +0 2 V +-31 -2 R +62 0 V +-62 2 R +62 0 V +229 118 R +0 10 V +-31 -10 R +62 0 V +-62 10 R +62 0 V +229 189 R +0 94 V +-31 -94 R +62 0 V +-62 94 R +62 0 V +229 205 R +0 97 V +-31 -97 R +62 0 V +-62 97 R +62 0 V +228 64 R +0 80 V +-31 -80 R +62 0 V +-62 80 R +62 0 V +229 96 R +0 281 V +-31 -281 R +62 0 V +-62 281 R +62 0 V +229 11 R +0 149 V +-31 -149 R +62 0 V +-62 149 R +62 0 V +229 27 R +0 144 V +-31 -144 R +62 0 V +-62 144 R +62 0 V +550 1080 Pls +810 1204 Pls +1070 1454 Pls +1330 1739 Pls +1589 1904 Pls +1849 2163 Pls +2109 2398 Pls +2369 2588 Pls +% End plot #1 +% Begin plot #2 +1.000 UL +LT1 +/NimbusSanL-Regu findfont 100 scalefont setfont +550 1080 M +260 124 V +260 250 V +260 285 V +259 165 V +260 259 V +260 235 V +260 190 V +% End plot #2 +% Begin plot #3 +stroke +LT2 +/NimbusSanL-Regu findfont 100 scalefont setfont +550 1008 M +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +19 0 V +18 0 V +18 0 V +19 0 V +18 0 V +% End plot #3 +stroke +LTb +550 2810 N +550 990 L +1819 0 V +0 1820 V +-1819 0 V +Z stroke +1.000 UP +1.000 UL +LTb +stroke +grestore +end +showpage +%%Trailer +%%DocumentFonts: NimbusSanL-Regu +%%Pages: 1 -- 2.7.4