summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAkira Yokosawa <akiyks@gmail.com>2020-06-15 20:49:08 +0900
committerPaul E. McKenney <paulmck@kernel.org>2020-06-15 13:03:34 -0700
commitce1fbfcb7d88fd8c09d9817642aee60276f1c595 (patch)
tree3d3311428ae35f6268f166a6d3a8388cecbef2a3
parent55cd69ec408148d97f77c1b46baca59484058e59 (diff)
downloadperfbook-ce1fbfcb7d88fd8c09d9817642aee60276f1c595.tar.gz
formal: Visualize Linux-kernel RCU test code ratio
A stacked histogram can tell much more than a pair of long tables do. Signed-off-by: Akira Yokosawa <akiyks@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
-rw-r--r--formal/RCU-test-ratio.eps4127
-rw-r--r--formal/data/.gitignore2
-rw-r--r--formal/data/plot.sh45
-rw-r--r--formal/data/rcu-test.dat69
-rw-r--r--formal/formal.tex121
5 files changed, 4266 insertions, 98 deletions
diff --git a/formal/RCU-test-ratio.eps b/formal/RCU-test-ratio.eps
new file mode 100644
index 00000000..6622b441
--- /dev/null
+++ b/formal/RCU-test-ratio.eps
@@ -0,0 +1,4127 @@
+%!PS-Adobe-2.0
+%%Title: RCU-test-ratio.eps
+%%Creator: gnuplot 5.2 patchlevel 2
+%%CreationDate: Mon Jun 15 22:01:22 2020
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 453 230
+%%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 true def
+/Blacktext false def
+/Solid false def
+/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 -26 def
+/dl1 {
+ 10.0 Dashlength userlinewidth gnulinewidth div mul 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
+ Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+ ClipToBoundingBox {
+ newpath 50 50 moveto 453 50 lineto 453 230 lineto 50 230 lineto closepath
+ clip
+ } if
+} def
+%
+% Gnuplot Prolog Version 5.1 (Oct 2015)
+%
+%/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
+/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
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+ Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R
+ Blacktext {gsave 0 setgray textshow grestore} {textshow} 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
+3.8 setmiterlimit
+% Classic Line colors (version 5.0)
+/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 dash patterns (version 5.0)
+/LTB {BL [] LCb DL} def
+/LTw {PL [] 1 setgray} def
+/LTb {PL [] 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
+/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
+ TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+ 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
+dup 2 lt
+ {/InterpretLevel1 true def
+ /InterpretLevel3 false def}
+ {/InterpretLevel1 Level1 def
+ 2 gt
+ {/InterpretLevel3 Level3 def}
+ {/InterpretLevel3 false def}
+ ifelse }
+ 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
+%
+/Metrics {ExtendTextBox Gswidth} def
+/Lwidth {currentpoint stroke M 0 vshift R Metrics} def
+/Rwidth {currentpoint stroke M dup stringwidth pop neg vshift R Metrics} def
+/Cwidth {currentpoint stroke M dup stringwidth pop -2 div vshift R Metrics} def
+/GLwidth {currentpoint stroke M 0 vshift R {ExtendTextBox} forall} def
+/GRwidth {currentpoint stroke M dup Gwidth vshift R {ExtendTextBox} forall} def
+/GCwidth {currentpoint stroke M dup Gwidth 2 div vshift R {ExtendTextBox} forall} def
+/GLwidth2 {0 Gwidth AddGlyphWidth} def
+/GRwidth2 {Gwidth -1 mul 0 AddGlyphWidth} def
+/GCwidth2 {Gwidth 2 div dup -1 mul AddGlyphWidth} def
+/AddGlyphWidth { dup TBx2 gt {userdict /TBx2 3 -1 roll put} {pop} ifelse
+ dup TBx1 lt {userdict /TBx1 3 -1 roll put} {pop} ifelse } def
+/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} {Metrics 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 Gswidth pop -2 div
+ dup 0 R} {dup 6 get Gswidth pop -2 div 0 R 6 get
+ textshow 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: /usr/local/texlive/2020/texmf-dist/fonts/type1/urw/helvetic/uhvr8a.pfb
+%!PS-AdobeFont-1.0: NimbusSanL-Regu 1.05a
+%%Title: NimbusSanL-Regu
+%%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
+Level1 SuppressPDFMark or
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+ userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+ /Title (RCU-test-ratio.eps)
+ /Subject (gnuplot plot)
+ /Creator (gnuplot 5.2 patchlevel 2)
+% /Producer (gnuplot)
+% /Keywords ()
+ /CreationDate (Mon Jun 15 22:01:22 2020)
+ /DOCINFO pdfmark
+end
+} ifelse
+%
+% Support for boxed text - Ethan A Merritt Sep 2016
+%
+/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 { dup type /stringtype eq
+ { 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 }
+ {} ifelse} 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 fill grestore /Boxing false def} def
+0 0 0 0 InitTextBox
+/TBxmargin 20 def
+/TBymargin 20 def
+/Boxing false def
+/textshow { ExtendTextBox Gshow } def
+%
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(NimbusSanL-Regu) findfont 80 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
+551 512 M
+-63 0 V
+stroke
+440 512 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 0)]
+] -26.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+551 613 M
+-63 0 V
+stroke
+440 613 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 2000)]
+] -26.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+551 713 M
+-63 0 V
+stroke
+440 713 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 4000)]
+] -26.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+551 814 M
+-63 0 V
+stroke
+440 814 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 6000)]
+] -26.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+551 915 M
+-63 0 V
+stroke
+440 915 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 8000)]
+] -26.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+551 1015 M
+-63 0 V
+stroke
+440 1015 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 10000)]
+] -26.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+551 1116 M
+-63 0 V
+stroke
+440 1116 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 12000)]
+] -26.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+551 1217 M
+-63 0 V
+stroke
+440 1217 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 14000)]
+] -26.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+551 1317 M
+-63 0 V
+stroke
+440 1317 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 16000)]
+] -26.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+551 1418 M
+-63 0 V
+stroke
+440 1418 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 18000)]
+] -26.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+551 1519 M
+-63 0 V
+stroke
+440 1519 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 20000)]
+] -26.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+551 1619 M
+-63 0 V
+stroke
+440 1619 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 22000)]
+] -26.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+551 1720 M
+-63 0 V
+stroke
+440 1720 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 24000)]
+] -26.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+593 512 M
+stroke
+593 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.12)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+635 512 M
+stroke
+LTb
+LCb setrgbcolor
+678 512 M
+stroke
+678 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.14)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+720 512 M
+stroke
+LTb
+LCb setrgbcolor
+762 512 M
+stroke
+762 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.16)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+804 512 M
+stroke
+LTb
+LCb setrgbcolor
+846 512 M
+stroke
+846 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.18)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+888 512 M
+stroke
+LTb
+LCb setrgbcolor
+931 512 M
+stroke
+931 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.20)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+973 512 M
+stroke
+LTb
+LCb setrgbcolor
+1015 512 M
+stroke
+1015 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.22)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+1057 512 M
+stroke
+LTb
+LCb setrgbcolor
+1099 512 M
+stroke
+1099 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.24)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+1142 512 M
+stroke
+LTb
+LCb setrgbcolor
+1184 512 M
+stroke
+1184 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.26)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+1226 512 M
+stroke
+LTb
+LCb setrgbcolor
+1268 512 M
+stroke
+1268 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.28)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+1310 512 M
+stroke
+LTb
+LCb setrgbcolor
+1353 512 M
+stroke
+1353 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.30)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+1395 512 M
+stroke
+LTb
+LCb setrgbcolor
+1437 512 M
+stroke
+1437 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.32)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+1479 512 M
+stroke
+LTb
+LCb setrgbcolor
+1521 512 M
+stroke
+1521 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.34)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+1563 512 M
+stroke
+LTb
+LCb setrgbcolor
+1606 512 M
+stroke
+1606 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.36)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+1648 512 M
+stroke
+LTb
+LCb setrgbcolor
+1690 512 M
+stroke
+1690 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v2.6.38)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+1732 512 M
+stroke
+LTb
+LCb setrgbcolor
+1774 512 M
+stroke
+1774 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v3.0)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+1817 512 M
+stroke
+LTb
+LCb setrgbcolor
+1859 512 M
+stroke
+1859 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v3.2)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+1901 512 M
+stroke
+LTb
+LCb setrgbcolor
+1943 512 M
+stroke
+1943 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v3.4)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+1985 512 M
+stroke
+LTb
+LCb setrgbcolor
+2028 512 M
+stroke
+2028 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v3.6)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+2070 512 M
+stroke
+LTb
+LCb setrgbcolor
+2112 512 M
+stroke
+2112 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v3.8)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+2154 512 M
+stroke
+LTb
+LCb setrgbcolor
+2196 512 M
+stroke
+2196 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v3.10)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+2238 512 M
+stroke
+LTb
+LCb setrgbcolor
+2281 512 M
+stroke
+2281 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v3.12)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+2323 512 M
+stroke
+LTb
+LCb setrgbcolor
+2365 512 M
+stroke
+2365 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v3.14)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+2407 512 M
+stroke
+LTb
+LCb setrgbcolor
+2449 512 M
+stroke
+2449 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v3.16)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+2492 512 M
+stroke
+LTb
+LCb setrgbcolor
+2534 512 M
+stroke
+2534 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v3.18)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+2576 512 M
+stroke
+LTb
+LCb setrgbcolor
+2618 512 M
+stroke
+2618 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v4.0)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+2660 512 M
+stroke
+LTb
+LCb setrgbcolor
+2702 512 M
+stroke
+2702 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v4.2)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+2745 512 M
+stroke
+LTb
+LCb setrgbcolor
+2787 512 M
+stroke
+2787 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v4.4)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+2829 512 M
+stroke
+LTb
+LCb setrgbcolor
+2871 512 M
+stroke
+2871 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v4.6)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+2913 512 M
+stroke
+LTb
+LCb setrgbcolor
+2956 512 M
+stroke
+2956 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v4.8)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+2998 512 M
+stroke
+LTb
+LCb setrgbcolor
+3040 512 M
+stroke
+3040 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v4.10)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+3082 512 M
+stroke
+LTb
+LCb setrgbcolor
+3124 512 M
+stroke
+3124 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v4.12)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+3167 512 M
+stroke
+LTb
+LCb setrgbcolor
+3209 512 M
+stroke
+3209 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v4.14)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+3251 512 M
+stroke
+LTb
+LCb setrgbcolor
+3293 512 M
+stroke
+3293 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v4.16)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+3335 512 M
+stroke
+LTb
+LCb setrgbcolor
+3377 512 M
+stroke
+3377 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v4.18)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+3420 512 M
+stroke
+LTb
+LCb setrgbcolor
+3462 512 M
+stroke
+3462 464 M
+currentpoint gsave translate 90 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (v4.20)]
+] -26.7 MRshow
+grestore
+1.000 UL
+LTb
+LCb setrgbcolor
+3504 512 M
+63 0 V
+stroke
+3615 512 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 0)]
+] -26.7 MLshow
+1.000 UL
+LTb
+LCb setrgbcolor
+3504 754 M
+63 0 V
+stroke
+3615 754 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 10)]
+] -26.7 MLshow
+1.000 UL
+LTb
+LCb setrgbcolor
+3504 995 M
+63 0 V
+stroke
+3615 995 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 20)]
+] -26.7 MLshow
+1.000 UL
+LTb
+LCb setrgbcolor
+3504 1237 M
+63 0 V
+stroke
+3615 1237 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 30)]
+] -26.7 MLshow
+1.000 UL
+LTb
+LCb setrgbcolor
+3504 1478 M
+63 0 V
+stroke
+3615 1478 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 40)]
+] -26.7 MLshow
+1.000 UL
+LTb
+LCb setrgbcolor
+3504 1720 M
+63 0 V
+stroke
+3615 1720 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 ( 50)]
+] -26.7 MLshow
+1.000 UL
+LTb
+LCb setrgbcolor
+1.000 UL
+LTB
+LCb setrgbcolor
+551 1720 N
+551 512 L
+2953 0 V
+0 1208 V
+-2953 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+LCb setrgbcolor
+LCb setrgbcolor
+72 1116 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (LoC)]
+] -26.7 MCshow
+grestore
+LTb
+LCb setrgbcolor
+3903 1116 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (% Test)]
+] -26.7 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2027 56 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (Linux Release)]
+] -26.7 MCshow
+LTb
+% Begin plot #1
+1.000 UL
+LTb
+0.00 0.00 0.00 C LCb setrgbcolor
+2044 1617 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (RCU)]
+] -26.7 MRshow
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2092 1597 255 40 BoxColFill
+LCb setrgbcolor
+2092 1597 N
+255 0 V
+0 40 V
+-255 0 V
+0 -40 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 578 512 31 59 BoxColFill
+LCb setrgbcolor
+578 512 N
+0 58 V
+30 0 V
+0 -58 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 621 512 30 59 BoxColFill
+LCb setrgbcolor
+621 512 N
+0 58 V
+29 0 V
+0 -58 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 663 512 30 71 BoxColFill
+LCb setrgbcolor
+663 512 N
+0 70 V
+29 0 V
+0 -70 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 705 512 31 74 BoxColFill
+LCb setrgbcolor
+705 512 N
+0 73 V
+30 0 V
+0 -73 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 747 512 31 65 BoxColFill
+LCb setrgbcolor
+747 512 N
+0 64 V
+30 0 V
+0 -64 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 789 512 31 66 BoxColFill
+LCb setrgbcolor
+789 512 N
+0 65 V
+30 0 V
+0 -65 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 832 512 30 67 BoxColFill
+LCb setrgbcolor
+832 512 N
+0 66 V
+29 0 V
+0 -66 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 874 512 30 82 BoxColFill
+LCb setrgbcolor
+874 512 N
+0 81 V
+29 0 V
+0 -81 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 916 512 30 82 BoxColFill
+LCb setrgbcolor
+916 512 N
+0 81 V
+29 0 V
+0 -81 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 958 512 31 82 BoxColFill
+LCb setrgbcolor
+958 512 N
+0 81 V
+30 0 V
+0 -81 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1000 512 31 82 BoxColFill
+LCb setrgbcolor
+1000 512 N
+0 81 V
+30 0 V
+0 -81 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1042 512 31 82 BoxColFill
+LCb setrgbcolor
+1042 512 N
+0 81 V
+30 0 V
+0 -81 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1085 512 30 84 BoxColFill
+LCb setrgbcolor
+1085 512 N
+0 83 V
+29 0 V
+0 -83 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1127 512 30 179 BoxColFill
+LCb setrgbcolor
+1127 512 N
+0 178 V
+29 0 V
+0 -178 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1169 512 31 178 BoxColFill
+LCb setrgbcolor
+1169 512 N
+0 177 V
+30 0 V
+0 -177 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1211 512 31 221 BoxColFill
+LCb setrgbcolor
+1211 512 N
+0 220 V
+30 0 V
+0 -220 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1253 512 31 230 BoxColFill
+LCb setrgbcolor
+1253 512 N
+0 229 V
+30 0 V
+0 -229 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1296 512 30 346 BoxColFill
+LCb setrgbcolor
+1296 512 N
+0 345 V
+29 0 V
+0 -345 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1338 512 30 349 BoxColFill
+LCb setrgbcolor
+1338 512 N
+0 348 V
+29 0 V
+0 -348 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1380 512 30 354 BoxColFill
+LCb setrgbcolor
+1380 512 N
+0 353 V
+29 0 V
+0 -353 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1422 512 31 246 BoxColFill
+LCb setrgbcolor
+1422 512 N
+0 245 V
+30 0 V
+0 -245 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1464 512 31 285 BoxColFill
+LCb setrgbcolor
+1464 512 N
+0 284 V
+30 0 V
+0 -284 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1507 512 30 315 BoxColFill
+LCb setrgbcolor
+1507 512 N
+0 314 V
+29 0 V
+0 -314 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1549 512 30 327 BoxColFill
+LCb setrgbcolor
+1549 512 N
+0 326 V
+29 0 V
+0 -326 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1591 512 30 339 BoxColFill
+LCb setrgbcolor
+1591 512 N
+0 338 V
+29 0 V
+0 -338 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1633 512 31 379 BoxColFill
+LCb setrgbcolor
+1633 512 N
+0 378 V
+30 0 V
+0 -378 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1675 512 31 415 BoxColFill
+LCb setrgbcolor
+1675 512 N
+0 414 V
+30 0 V
+0 -414 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1717 512 31 416 BoxColFill
+LCb setrgbcolor
+1717 512 N
+0 415 V
+30 0 V
+0 -415 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1760 512 30 475 BoxColFill
+LCb setrgbcolor
+1760 512 N
+0 474 V
+29 0 V
+0 -474 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1802 512 30 475 BoxColFill
+LCb setrgbcolor
+1802 512 N
+0 474 V
+29 0 V
+0 -474 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1844 512 31 484 BoxColFill
+LCb setrgbcolor
+1844 512 N
+0 483 V
+30 0 V
+0 -483 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1886 512 31 511 BoxColFill
+LCb setrgbcolor
+1886 512 N
+0 510 V
+30 0 V
+0 -510 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1928 512 31 538 BoxColFill
+LCb setrgbcolor
+1928 512 N
+0 537 V
+30 0 V
+0 -537 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 1971 512 30 570 BoxColFill
+LCb setrgbcolor
+1971 512 N
+0 569 V
+29 0 V
+0 -569 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2013 512 30 570 BoxColFill
+LCb setrgbcolor
+2013 512 N
+0 569 V
+29 0 V
+0 -569 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2055 512 30 572 BoxColFill
+LCb setrgbcolor
+2055 512 N
+0 571 V
+29 0 V
+0 -571 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2097 512 31 603 BoxColFill
+LCb setrgbcolor
+2097 512 N
+0 602 V
+30 0 V
+0 -602 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2139 512 31 613 BoxColFill
+LCb setrgbcolor
+2139 512 N
+0 612 V
+30 0 V
+0 -612 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2181 512 31 616 BoxColFill
+LCb setrgbcolor
+2181 512 N
+0 615 V
+30 0 V
+0 -615 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2224 512 30 561 BoxColFill
+LCb setrgbcolor
+2224 512 N
+0 560 V
+29 0 V
+0 -560 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2266 512 30 581 BoxColFill
+LCb setrgbcolor
+2266 512 N
+0 580 V
+29 0 V
+0 -580 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2308 512 31 592 BoxColFill
+LCb setrgbcolor
+2308 512 N
+0 591 V
+30 0 V
+0 -591 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2350 512 31 602 BoxColFill
+LCb setrgbcolor
+2350 512 N
+0 601 V
+30 0 V
+0 -601 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2392 512 31 605 BoxColFill
+LCb setrgbcolor
+2392 512 N
+0 604 V
+30 0 V
+0 -604 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2435 512 30 616 BoxColFill
+LCb setrgbcolor
+2435 512 N
+0 615 V
+29 0 V
+0 -615 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2477 512 30 628 BoxColFill
+LCb setrgbcolor
+2477 512 N
+0 627 V
+29 0 V
+0 -627 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2519 512 30 659 BoxColFill
+LCb setrgbcolor
+2519 512 N
+0 658 V
+29 0 V
+0 -658 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2561 512 31 665 BoxColFill
+LCb setrgbcolor
+2561 512 N
+0 664 V
+30 0 V
+0 -664 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2603 512 31 663 BoxColFill
+LCb setrgbcolor
+2603 512 N
+0 662 V
+30 0 V
+0 -662 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2646 512 30 675 BoxColFill
+LCb setrgbcolor
+2646 512 N
+0 674 V
+29 0 V
+0 -674 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2688 512 30 676 BoxColFill
+LCb setrgbcolor
+2688 512 N
+0 675 V
+29 0 V
+0 -675 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2730 512 30 683 BoxColFill
+LCb setrgbcolor
+2730 512 N
+0 682 V
+29 0 V
+0 -682 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2772 512 31 715 BoxColFill
+LCb setrgbcolor
+2772 512 N
+0 714 V
+30 0 V
+0 -714 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2814 512 31 724 BoxColFill
+LCb setrgbcolor
+2814 512 N
+0 723 V
+30 0 V
+0 -723 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2856 512 31 729 BoxColFill
+LCb setrgbcolor
+2856 512 N
+0 728 V
+30 0 V
+0 -728 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2899 512 30 736 BoxColFill
+LCb setrgbcolor
+2899 512 N
+0 735 V
+29 0 V
+0 -735 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2941 512 30 740 BoxColFill
+LCb setrgbcolor
+2941 512 N
+0 739 V
+29 0 V
+0 -739 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 2983 512 31 744 BoxColFill
+LCb setrgbcolor
+2983 512 N
+0 743 V
+30 0 V
+0 -743 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 3025 512 31 747 BoxColFill
+LCb setrgbcolor
+3025 512 N
+0 746 V
+30 0 V
+0 -746 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 3067 512 31 758 BoxColFill
+LCb setrgbcolor
+3067 512 N
+0 757 V
+30 0 V
+0 -757 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 3110 512 30 882 BoxColFill
+LCb setrgbcolor
+3110 512 N
+0 881 V
+29 0 V
+0 -881 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 3152 512 30 800 BoxColFill
+LCb setrgbcolor
+3152 512 N
+0 799 V
+29 0 V
+0 -799 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 3194 512 30 795 BoxColFill
+LCb setrgbcolor
+3194 512 N
+0 794 V
+29 0 V
+0 -794 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 3236 512 31 799 BoxColFill
+LCb setrgbcolor
+3236 512 N
+0 798 V
+30 0 V
+0 -798 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 3278 512 31 795 BoxColFill
+LCb setrgbcolor
+3278 512 N
+0 794 V
+30 0 V
+0 -794 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 3320 512 31 795 BoxColFill
+LCb setrgbcolor
+3320 512 N
+0 794 V
+30 0 V
+0 -794 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 3363 512 30 794 BoxColFill
+LCb setrgbcolor
+3363 512 N
+0 793 V
+29 0 V
+0 -793 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 3405 512 30 805 BoxColFill
+LCb setrgbcolor
+3405 512 N
+0 804 V
+29 0 V
+0 -804 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C 0.200 3447 512 31 782 BoxColFill
+LCb setrgbcolor
+3447 512 N
+0 781 V
+30 0 V
+0 -781 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.00 0.00 0.00 C % End plot #1
+% Begin plot #2
+1.000 UL
+LTb
+0.90 0.62 0.00 C LCb setrgbcolor
+2044 1537 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (RCU Test)]
+] -26.7 MRshow
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2092 1517 255 40 BoxColFill
+LCb setrgbcolor
+2092 1517 N
+255 0 V
+0 40 V
+-255 0 V
+0 -40 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 578 570 31 1 BoxColFill
+LCb setrgbcolor
+578 570 N
+30 0 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 621 570 30 1 BoxColFill
+LCb setrgbcolor
+621 570 N
+29 0 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 663 582 30 1 BoxColFill
+LCb setrgbcolor
+663 582 N
+29 0 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 705 585 31 27 BoxColFill
+LCb setrgbcolor
+705 585 N
+0 26 V
+30 0 V
+0 -26 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 747 576 31 31 BoxColFill
+LCb setrgbcolor
+747 576 N
+0 30 V
+30 0 V
+0 -30 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 789 577 31 31 BoxColFill
+LCb setrgbcolor
+789 577 N
+0 30 V
+30 0 V
+0 -30 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 832 578 30 37 BoxColFill
+LCb setrgbcolor
+832 578 N
+0 36 V
+29 0 V
+0 -36 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 874 593 30 52 BoxColFill
+LCb setrgbcolor
+874 593 N
+0 51 V
+29 0 V
+0 -51 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 916 593 30 52 BoxColFill
+LCb setrgbcolor
+916 593 N
+0 51 V
+29 0 V
+0 -51 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 958 593 31 52 BoxColFill
+LCb setrgbcolor
+958 593 N
+0 51 V
+30 0 V
+0 -51 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1000 593 31 52 BoxColFill
+LCb setrgbcolor
+1000 593 N
+0 51 V
+30 0 V
+0 -51 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1042 593 31 52 BoxColFill
+LCb setrgbcolor
+1042 593 N
+0 51 V
+30 0 V
+0 -51 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1085 595 30 51 BoxColFill
+LCb setrgbcolor
+1085 595 N
+0 50 V
+29 0 V
+0 -50 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1127 690 30 51 BoxColFill
+LCb setrgbcolor
+1127 690 N
+0 50 V
+29 0 V
+0 -50 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1169 689 31 52 BoxColFill
+LCb setrgbcolor
+1169 689 N
+0 51 V
+30 0 V
+0 -51 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1211 732 31 59 BoxColFill
+LCb setrgbcolor
+1211 732 N
+0 58 V
+30 0 V
+0 -58 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1253 741 31 59 BoxColFill
+LCb setrgbcolor
+1253 741 N
+0 58 V
+30 0 V
+0 -58 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1296 857 30 63 BoxColFill
+LCb setrgbcolor
+1296 857 N
+0 62 V
+29 0 V
+0 -62 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1338 860 30 63 BoxColFill
+LCb setrgbcolor
+1338 860 N
+0 62 V
+29 0 V
+0 -62 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1380 865 30 63 BoxColFill
+LCb setrgbcolor
+1380 865 N
+0 62 V
+29 0 V
+0 -62 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1422 757 31 65 BoxColFill
+LCb setrgbcolor
+1422 757 N
+0 64 V
+30 0 V
+0 -64 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1464 796 31 66 BoxColFill
+LCb setrgbcolor
+1464 796 N
+0 65 V
+30 0 V
+0 -65 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1507 826 30 70 BoxColFill
+LCb setrgbcolor
+1507 826 N
+0 69 V
+29 0 V
+0 -69 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1549 838 30 70 BoxColFill
+LCb setrgbcolor
+1549 838 N
+0 69 V
+29 0 V
+0 -69 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1591 850 30 71 BoxColFill
+LCb setrgbcolor
+1591 850 N
+0 70 V
+29 0 V
+0 -70 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1633 890 31 71 BoxColFill
+LCb setrgbcolor
+1633 890 N
+0 70 V
+30 0 V
+0 -70 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1675 926 31 83 BoxColFill
+LCb setrgbcolor
+1675 926 N
+0 82 V
+30 0 V
+0 -82 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1717 927 31 83 BoxColFill
+LCb setrgbcolor
+1717 927 N
+0 82 V
+30 0 V
+0 -82 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1760 986 30 83 BoxColFill
+LCb setrgbcolor
+1760 986 N
+0 82 V
+29 0 V
+0 -82 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1802 986 30 83 BoxColFill
+LCb setrgbcolor
+1802 986 N
+0 82 V
+29 0 V
+0 -82 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1844 995 31 83 BoxColFill
+LCb setrgbcolor
+1844 995 N
+0 82 V
+30 0 V
+0 -82 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1886 1022 31 93 BoxColFill
+LCb setrgbcolor
+1886 1022 N
+0 92 V
+30 0 V
+0 -92 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1928 1049 31 97 BoxColFill
+LCb setrgbcolor
+1928 1049 N
+0 96 V
+30 0 V
+0 -96 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 1971 1081 30 109 BoxColFill
+LCb setrgbcolor
+1971 1081 N
+0 108 V
+29 0 V
+0 -108 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2013 1081 30 110 BoxColFill
+LCb setrgbcolor
+2013 1081 N
+0 109 V
+29 0 V
+0 -109 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2055 1083 30 112 BoxColFill
+LCb setrgbcolor
+2055 1083 N
+0 111 V
+29 0 V
+0 -111 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2097 1114 31 111 BoxColFill
+LCb setrgbcolor
+2097 1114 N
+0 110 V
+30 0 V
+0 -110 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2139 1124 31 113 BoxColFill
+LCb setrgbcolor
+2139 1124 N
+0 112 V
+30 0 V
+0 -112 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2181 1127 31 112 BoxColFill
+LCb setrgbcolor
+2181 1127 N
+0 111 V
+30 0 V
+0 -111 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2224 1072 30 110 BoxColFill
+LCb setrgbcolor
+2224 1072 N
+0 109 V
+29 0 V
+0 -109 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2266 1092 30 109 BoxColFill
+LCb setrgbcolor
+2266 1092 N
+0 108 V
+29 0 V
+0 -108 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2308 1103 31 109 BoxColFill
+LCb setrgbcolor
+2308 1103 N
+0 108 V
+30 0 V
+0 -108 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2350 1113 31 174 BoxColFill
+LCb setrgbcolor
+2350 1113 N
+0 173 V
+30 0 V
+0 -173 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2392 1116 31 197 BoxColFill
+LCb setrgbcolor
+2392 1116 N
+0 196 V
+30 0 V
+0 -196 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2435 1127 30 206 BoxColFill
+LCb setrgbcolor
+2435 1127 N
+0 205 V
+29 0 V
+0 -205 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2477 1139 30 207 BoxColFill
+LCb setrgbcolor
+2477 1139 N
+0 206 V
+29 0 V
+0 -206 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2519 1170 30 214 BoxColFill
+LCb setrgbcolor
+2519 1170 N
+0 213 V
+29 0 V
+0 -213 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2561 1176 31 214 BoxColFill
+LCb setrgbcolor
+2561 1176 N
+0 213 V
+30 0 V
+0 -213 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2603 1174 31 215 BoxColFill
+LCb setrgbcolor
+2603 1174 N
+0 214 V
+30 0 V
+0 -214 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2646 1186 30 217 BoxColFill
+LCb setrgbcolor
+2646 1186 N
+0 216 V
+29 0 V
+0 -216 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2688 1187 30 220 BoxColFill
+LCb setrgbcolor
+2688 1187 N
+0 219 V
+29 0 V
+0 -219 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2730 1194 30 221 BoxColFill
+LCb setrgbcolor
+2730 1194 N
+0 220 V
+29 0 V
+0 -220 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2772 1226 31 221 BoxColFill
+LCb setrgbcolor
+2772 1226 N
+0 220 V
+30 0 V
+0 -220 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2814 1235 31 223 BoxColFill
+LCb setrgbcolor
+2814 1235 N
+0 222 V
+30 0 V
+0 -222 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2856 1240 31 223 BoxColFill
+LCb setrgbcolor
+2856 1240 N
+0 222 V
+30 0 V
+0 -222 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2899 1247 30 277 BoxColFill
+LCb setrgbcolor
+2899 1247 N
+0 276 V
+29 0 V
+0 -276 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2941 1251 30 281 BoxColFill
+LCb setrgbcolor
+2941 1251 N
+0 280 V
+29 0 V
+0 -280 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 2983 1255 31 279 BoxColFill
+LCb setrgbcolor
+2983 1255 N
+0 278 V
+30 0 V
+0 -278 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 3025 1258 31 280 BoxColFill
+LCb setrgbcolor
+3025 1258 N
+0 279 V
+30 0 V
+0 -279 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 3067 1269 31 280 BoxColFill
+LCb setrgbcolor
+3067 1269 N
+0 279 V
+30 0 V
+0 -279 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 3110 1393 30 282 BoxColFill
+LCb setrgbcolor
+3110 1393 N
+0 281 V
+29 0 V
+0 -281 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 3152 1311 30 287 BoxColFill
+LCb setrgbcolor
+3152 1311 N
+0 286 V
+29 0 V
+0 -286 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 3194 1306 30 289 BoxColFill
+LCb setrgbcolor
+3194 1306 N
+0 288 V
+29 0 V
+0 -288 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 3236 1310 31 289 BoxColFill
+LCb setrgbcolor
+3236 1310 N
+0 288 V
+30 0 V
+0 -288 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 3278 1306 31 286 BoxColFill
+LCb setrgbcolor
+3278 1306 N
+0 285 V
+30 0 V
+0 -285 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 3320 1306 31 288 BoxColFill
+LCb setrgbcolor
+3320 1306 N
+0 287 V
+30 0 V
+0 -287 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 3363 1305 30 291 BoxColFill
+LCb setrgbcolor
+3363 1305 N
+0 290 V
+29 0 V
+0 -290 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 3405 1316 30 301 BoxColFill
+LCb setrgbcolor
+3405 1316 N
+0 300 V
+29 0 V
+0 -300 V
+-29 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C 0.200 3447 1293 31 306 BoxColFill
+LCb setrgbcolor
+3447 1293 N
+0 305 V
+30 0 V
+0 -305 V
+-30 0 V
+Z stroke
+1.000 UL
+LTb
+0.90 0.62 0.00 C % End plot #2
+% Begin plot #3
+1.000 UL
+LTb
+0.00 0.62 0.45 C LCb setrgbcolor
+2044 1457 M
+[ [(NimbusSanL-Regu) 80.0 0.0 true true 0 (% Test)]
+] -26.7 MRshow
+1.000 UL
+LTb
+0.00 0.62 0.45 C 2092 1457 M
+255 0 V
+593 512 M
+42 0 V
+43 0 V
+42 628 V
+42 145 V
+42 0 V
+42 82 V
+42 70 V
+43 0 V
+42 0 V
+42 -2 V
+42 0 V
+42 -15 V
+43 -376 V
+42 2 V
+42 -27 V
+42 -17 V
+42 -123 V
+43 0 V
+42 -5 V
+42 133 V
+42 -43 V
+42 -15 V
+42 -12 V
+43 -12 V
+42 -36 V
+42 24 V
+42 0 V
+42 -43 V
+43 0 V
+42 -8 V
+42 20 V
+42 -3 V
+42 17 V
+43 3 V
+42 4 V
+42 -19 V
+42 0 V
+42 0 V
+42 24 V
+43 -17 V
+42 -7 V
+42 167 V
+42 51 V
+42 14 V
+43 -7 V
+42 -5 V
+42 -5 V
+42 5 V
+42 -5 V
+42 5 V
+43 -2 V
+42 -22 V
+42 0 V
+42 -3 V
+42 95 V
+43 2 V
+42 -5 V
+42 0 V
+42 -5 V
+42 -67 V
+43 50 V
+42 8 V
+42 -3 V
+42 -2 V
+42 5 V
+42 4 V
+43 10 V
+42 22 V
+% End plot #3
+stroke
+2.000 UL
+LTb
+LCb setrgbcolor
+1.000 UL
+LTB
+LCb setrgbcolor
+551 1720 N
+551 512 L
+2953 0 V
+0 1208 V
+-2953 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+LCb setrgbcolor
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: NimbusSanL-Regu
+%%Pages: 1
diff --git a/formal/data/.gitignore b/formal/data/.gitignore
new file mode 100644
index 00000000..e307f160
--- /dev/null
+++ b/formal/data/.gitignore
@@ -0,0 +1,2 @@
+*.eps
+*.pdf
diff --git a/formal/data/plot.sh b/formal/data/plot.sh
new file mode 100644
index 00000000..429970f7
--- /dev/null
+++ b/formal/data/plot.sh
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+fontsize=8
+plotsize=0.5
+przsize="nosquare 0.8,0.25"
+font=`kpsewhich uhvr8a.pfb`
+
+gnuplot << ---EOF---
+set term postscript portrait color ${fontsize} enhanced "NimbusSanL-Regu" fontfile "${font}"
+set colorsequence podo
+set size $przsize
+set output "RCU-test-ratio.eps"
+set xlabel "Linux Release"
+set ylabel "LoC"
+set y2label "\% Test"
+set boxwidth 0.7 relative
+unset xtics
+set xtics 1,2 nomirror rotate by 90 right scale 0
+set ytics 1 2000
+set ytics out
+set y2tics 1 10
+set y2tics out
+set ytics nomirror
+set yrange [0:24000]
+set y2range [0:50]
+set style data histogram
+set style histogram rowstacked
+set style fill solid 0.2 border -1
+set key top center
+# Set linestyle 1
+set style line 1 \
+ linetype 1 linewidth 0.5 \
+ pointtype 7 pointsize 0.5
+
+# Set linestyle 2
+set style line 2 \
+ linetype 4 linewidth 1 \
+ pointtype 8 pointsize 0.5
+
+#plot 'rcu-test.dat' using 0:xtic(1), for [i=2:3] '' using i linestyle 1
+plot 'rcu-test.dat' using 2 t "RCU", '' using 3:xticlabels(1) t "RCU Test", \
+ '' using 5 with line linestyle 2 axis x1y2 t "\% Test"
+---EOF---
+
+cp RCU-test-ratio.eps ../RCU-test-ratio.eps
diff --git a/formal/data/rcu-test.dat b/formal/data/rcu-test.dat
new file mode 100644
index 00000000..185c40cb
--- /dev/null
+++ b/formal/data/rcu-test.dat
@@ -0,0 +1,69 @@
+v2.6.12 1151 0 1151 0.0
+"" 1151 0 1151 0.0
+v2.6.14 1397 0 1397 0.0
+"" 1459 513 1972 26.0
+v2.6.16 1270 598 1868 32.0
+"" 1287 605 1892 32.0
+v2.6.18 1308 718 2026 35.4
+"" 1613 1001 2614 38.3
+v2.6.20 1615 1004 2619 38.3
+"" 1615 1004 2619 38.3
+v2.6.22 1617 1001 2618 38.2
+"" 1616 999 2615 38.2
+v2.6.24 1649 995 2644 37.6
+"" 3532 995 4527 22.0
+v2.6.26 3523 999 4522 22.1
+"" 4361 1157 5518 21.0
+v2.6.28 4552 1157 5709 20.3
+"" 6863 1227 8090 15.2
+v2.6.30 6911 1236 8147 15.2
+"" 7012 1236 8248 15.0
+v2.6.32 4876 1257 6133 20.5
+"" 5641 1296 6937 18.7
+v2.6.34 6235 1380 7615 18.1
+"" 6470 1382 7852 17.6
+v2.6.36 6716 1381 8097 17.1
+"" 7513 1390 8903 15.6
+v2.6.38 8217 1638 9855 16.6
+"" 8237 1637 9874 16.6
+v3.0 9422 1633 11055 14.8
+"" 9422 1631 11053 14.8
+v3.2 9594 1622 11216 14.5
+"" 10126 1833 11959 15.3
+v3.4 10668 1914 12582 15.2
+"" 11303 2141 13444 15.9
+v3.6 11313 2157 13470 16.0
+"" 11349 2192 13541 16.2
+v3.8 11965 2174 14139 15.4
+"" 12165 2216 14381 15.4
+v3.10 12211 2216 14427 15.4
+"" 11120 2177 13297 16.4
+v3.12 11527 2139 13666 15.7
+"" 11739 2145 13884 15.4
+v3.14 11942 3428 15370 22.3
+"" 12007 3882 15889 24.4
+v3.16 12222 4074 16296 25.0
+"" 12465 4088 16553 24.7
+v3.18 13065 4238 17303 24.5
+"" 13190 4230 17420 24.3
+v4.0 13148 4265 17413 24.5
+"" 13396 4290 17686 24.3
+v4.2 13408 4348 17756 24.5
+"" 13557 4364 17921 24.4
+v4.4 14192 4363 18555 23.5
+"" 14359 4421 18780 23.5
+v4.6 14461 4423 18884 23.4
+"" 14612 5480 20092 27.3
+v4.8 14688 5549 20237 27.4
+"" 14762 5527 20289 27.2
+v4.10 14831 5541 20372 27.2
+"" 15030 5559 20589 27.0
+v4.12 17508 5588 23096 24.2
+"" 15884 5663 21547 26.3
+v4.14 15781 5712 21493 26.6
+"" 15857 5726 21583 26.5
+v4.16 15777 5670 21447 26.4
+"" 15774 5703 21477 26.6
+v4.18 15751 5756 21507 26.8
+"" 15974 5967 21941 27.2
+v4.20 15519 6054 21573 28.1
diff --git a/formal/formal.tex b/formal/formal.tex
index 77483c59..55acdde8 100644
--- a/formal/formal.tex
+++ b/formal/formal.tex
@@ -252,6 +252,15 @@ the day, a more organized approach would perhaps be more useful.
Fortunately, there is a strictly financial analog to investments in
validation, and that is the insurance policy.
+\IfTwoColumn{
+\begin{figure*}[tb]
+\centering
+\resizebox{6in}{!}{\includegraphics{formal/RCU-test-ratio.pdf}}
+\caption{Linux-Kernel RCU Test Code}
+\label{fig:formal:Linux-Kernel RCU Test Code}
+\end{figure*}
+}{}
+
Both insurance policies and validation efforts require consistent
up-front investments, and both defend against disasters that might
or might not ever happen.
@@ -267,97 +276,6 @@ For but one example, a validation plan that consumed the entire
development budget would be just as pointless as would an insurance
policy that covered the Sun going nova.
-\begin{table}[tbhp]
-\rowcolors{1}{}{lightgray}
-\renewcommand*{\arraystretch}{1.2}\centering\small
-\begin{tabular}{lrrrr}\toprule
- & LoC & Test LoC & Total LoC & \% Test \\
-v2.6.12 & 1151 & 0 & 1151 & 0.0 \\
-v2.6.13 & 1151 & 0 & 1151 & 0.0 \\
-v2.6.14 & 1397 & 0 & 1397 & 0.0 \\
-v2.6.15 & 1459 & 513 & 1972 & 26.0 \\
-v2.6.16 & 1270 & 598 & 1868 & 32.0 \\
-v2.6.17 & 1287 & 605 & 1892 & 32.0 \\
-v2.6.18 & 1308 & 718 & 2026 & 35.4 \\
-v2.6.19 & 1613 & 1001 & 2614 & 38.3 \\
-v2.6.20 & 1615 & 1004 & 2619 & 38.3 \\
-v2.6.21 & 1615 & 1004 & 2619 & 38.3 \\
-v2.6.22 & 1617 & 1001 & 2618 & 38.2 \\
-v2.6.23 & 1616 & 999 & 2615 & 38.2 \\
-v2.6.24 & 1649 & 995 & 2644 & 37.6 \\
-v2.6.25 & 3532 & 995 & 4527 & 22.0 \\
-v2.6.26 & 3523 & 999 & 4522 & 22.1 \\
-v2.6.27 & 4361 & 1157 & 5518 & 21.0 \\
-v2.6.28 & 4552 & 1157 & 5709 & 20.3 \\
-v2.6.29 & 6863 & 1227 & 8090 & 15.2 \\
-v2.6.30 & 6911 & 1236 & 8147 & 15.2 \\
-v2.6.31 & 7012 & 1236 & 8248 & 15.0 \\
-v2.6.32 & 4876 & 1257 & 6133 & 20.5 \\
-v2.6.33 & 5641 & 1296 & 6937 & 18.7 \\
-v2.6.34 & 6235 & 1380 & 7615 & 18.1 \\
-v2.6.35 & 6470 & 1382 & 7852 & 17.6 \\
-v2.6.36 & 6716 & 1381 & 8097 & 17.1 \\
-v2.6.37 & 7513 & 1390 & 8903 & 15.6 \\
-v2.6.38 & 8217 & 1638 & 9855 & 16.6 \\
-v2.6.39 & 8237 & 1637 & 9874 & 16.6 \\
-\bottomrule
-\end{tabular}
-\caption{Linux-Kernel RCU Test Code (v2.6)}
-\label{tab:formal:Linux-Kernel RCU Test Code (v2.6)}
-\end{table}
-
-\begin{table}[tbhp]
-\rowcolors{1}{}{lightgray}
-\renewcommand*{\arraystretch}{1.2}\centering\small
-\begin{tabular}{lrrrr}\toprule
- & LoC & Test LoC & Total LoC & \% Test \\
-v3.0 & 9422 & 1633 & 11055 & 14.8 \\
-v3.1 & 9422 & 1631 & 11053 & 14.8 \\
-v3.2 & 9594 & 1622 & 11216 & 14.5 \\
-v3.3 & 10126 & 1833 & 11959 & 15.3 \\
-v3.4 & 10668 & 1914 & 12582 & 15.2 \\
-v3.5 & 11303 & 2141 & 13444 & 15.9 \\
-v3.6 & 11313 & 2157 & 13470 & 16.0 \\
-v3.7 & 11349 & 2192 & 13541 & 16.2 \\
-v3.8 & 11965 & 2174 & 14139 & 15.4 \\
-v3.9 & 12165 & 2216 & 14381 & 15.4 \\
-v3.10 & 12211 & 2216 & 14427 & 15.4 \\
-v3.11 & 11120 & 2177 & 13297 & 16.4 \\
-v3.12 & 11527 & 2139 & 13666 & 15.7 \\
-v3.13 & 11739 & 2145 & 13884 & 15.4 \\
-v3.14 & 11942 & 3428 & 15370 & 22.3 \\
-v3.15 & 12007 & 3882 & 15889 & 24.4 \\
-v3.16 & 12222 & 4074 & 16296 & 25.0 \\
-v3.17 & 12465 & 4088 & 16553 & 24.7 \\
-v3.18 & 13065 & 4238 & 17303 & 24.5 \\
-v3.19 & 13190 & 4230 & 17420 & 24.3 \\
-v4.0 & 13148 & 4265 & 17413 & 24.5 \\
-v4.1 & 13396 & 4290 & 17686 & 24.3 \\
-v4.2 & 13408 & 4348 & 17756 & 24.5 \\
-v4.3 & 13557 & 4364 & 17921 & 24.4 \\
-v4.4 & 14192 & 4363 & 18555 & 23.5 \\
-v4.5 & 14359 & 4421 & 18780 & 23.5 \\
-v4.6 & 14461 & 4423 & 18884 & 23.4 \\
-v4.7 & 14612 & 5480 & 20092 & 27.3 \\
-v4.8 & 14688 & 5549 & 20237 & 27.4 \\
-v4.9 & 14762 & 5527 & 20289 & 27.2 \\
-v4.10 & 14831 & 5541 & 20372 & 27.2 \\
-v4.11 & 15030 & 5559 & 20589 & 27.0 \\
-v4.12 & 17508 & 5588 & 23096 & 24.2 \\
-v4.13 & 15884 & 5663 & 21547 & 26.3 \\
-v4.14 & 15781 & 5712 & 21493 & 26.6 \\
-v4.15 & 15857 & 5726 & 21583 & 26.5 \\
-v4.16 & 15777 & 5670 & 21447 & 26.4 \\
-v4.17 & 15774 & 5703 & 21477 & 26.6 \\
-v4.18 & 15751 & 5756 & 21507 & 26.8 \\
-v4.19 & 15974 & 5967 & 21941 & 27.2 \\
-v4.20 & 15519 & 6054 & 21573 & 28.1 \\
-\bottomrule
-\end{tabular}
-\caption{Linux-Kernel RCU Test Code (v3-4)}
-\label{tab:formal:Linux-Kernel RCU Test Code (v3-4)}
-\end{table}
-
One approach is to devote a given fraction of the software budget to
validation, with that fraction depending on the criticality of the
software, so that safety-critical avionics software might grant a
@@ -392,16 +310,24 @@ discussions with the users.
As these use cases become understood, use of continuous integration
can help reduce the cost of finding and fixing any bugs located.
+\IfTwoColumn{}{
+\begin{figure}[tb]
+\centering
+\resizebox{4.5in}{!}{\includegraphics{formal/RCU-test-ratio.pdf}}
+\caption{Linux-Kernel RCU Test Code}
+\label{fig:formal:Linux-Kernel RCU Test Code}
+\end{figure}
+}
+
One example evolution of a software project's use of validation is
shown in
-\crefthro{tab:formal:Linux-Kernel RCU Test Code (v2.6)}
-{tab:formal:Linux-Kernel RCU Test Code (v3-4)}.
-As can be seen in \cref{tab:formal:Linux-Kernel RCU Test Code (v2.6)},
+\cref{fig:formal:Linux-Kernel RCU Test Code}.
+As can be seen in the \lcnamecref{fig:formal:Linux-Kernel RCU Test Code},
Linux-kernel RCU didn't have any validation code whatsoever until Linux
kernel v2.6.16, which was released more than two years after RCU was
accepted into the kernel.
The test suite achieved its peak fraction of the total lines of code
-in Linux kernel v2.6.19-v2.6.21.
+in Linux kernel v2.6.19--v2.6.21.
This fraction decreased sharply with the acceptance of preemptible RCU
for real-time applications in v2.6.25.
This decrease was due to the fact that the RCU API was identical
@@ -409,9 +335,8 @@ in the preemptible and non-preemptible variants of RCU.
This in turn meant that the existing test suite applied to both variants,
so that there was no need to expand the tests.
-Moving on to
-\cref{tab:formal:Linux-Kernel RCU Test Code (v3-4)},
-we can see that the RCU code base expanded significantly, but that the
+Subsequent bars in \cref{fig:formal:Linux-Kernel RCU Test Code} show
+that the RCU code base expanded significantly, but that the
corresponding validation code expanded even more dramatically.
Linux kernel v3.5 added tests for the \co{rcu_barrier()} API, closing
a long-standing hole in test coverage.