From: Bjørn Rustad Date: Wed, 17 Dec 2014 16:53:03 +0000 (+0100) Subject: Much work X-Git-Url: http://git.rustad.me/?a=commitdiff_plain;h=cfd0d7e4e0f173823052df4d14a86b6e0df5a658;p=master Much work --- diff --git a/fig/factory/bar.pgm b/fig/factory/bar.pgm new file mode 100644 index 0000000..2b907b8 --- /dev/null +++ b/fig/factory/bar.pgm @@ -0,0 +1,5 @@ +P5 +# CREATOR: GIMP PNM Filter Version 1.1 +256 256 +255 +dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd›››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››››› \ No newline at end of file diff --git a/fig/factory/corr.tex b/fig/factory/corr.tex index 8b6a194..f577515 100644 --- a/fig/factory/corr.tex +++ b/fig/factory/corr.tex @@ -1,781 +1,724 @@ % Title: glps_renderer figure % Creator: GL2PS 1.3.8, (C) 1999-2012 C. Geuzaine % For: Octave -% CreationDate: Thu Dec 11 15:10:44 2014 +% CreationDate: Tue Dec 16 17:17:42 2014 \begin{pgfpicture} \pgfsetlinewidth{0.01pt} \color[rgb]{1.000000,1.000000,1.000000} -\pgfpathmoveto{\pgfpoint{724.000000pt}{54.999832pt}} -\pgflineto{\pgfpoint{724.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{724.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{724.000000pt}{54.992676pt}} +\pgflineto{\pgfpoint{724.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{724.000000pt}{54.992676pt}} \pgfpathclose \pgfusepath{fill,stroke} -\pgfpathmoveto{\pgfpoint{724.000000pt}{54.999832pt}} -\pgflineto{\pgfpoint{724.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{724.000000pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{724.000000pt}{54.992676pt}} +\pgflineto{\pgfpoint{724.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{724.000000pt}{462.493896pt}} \pgfpathclose \pgfusepath{fill,stroke} -\pgfpathmoveto{\pgfpoint{104.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{724.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{104.000000pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{104.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{724.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{104.000000pt}{462.493896pt}} \pgfpathclose \pgfusepath{fill,stroke} -\pgfpathmoveto{\pgfpoint{104.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{724.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{724.000000pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{104.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{724.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{724.000000pt}{462.493896pt}} \pgfpathclose \pgfusepath{fill,stroke} -\pgfpathmoveto{\pgfpoint{104.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{724.000000pt}{54.999832pt}} -\pgflineto{\pgfpoint{104.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{104.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{724.000000pt}{54.992676pt}} +\pgflineto{\pgfpoint{104.000000pt}{54.992676pt}} \pgfpathclose \pgfusepath{fill,stroke} -\pgfpathmoveto{\pgfpoint{104.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{724.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{724.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{104.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{724.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{724.000000pt}{54.992676pt}} \pgfpathclose \pgfusepath{fill,stroke} \color[rgb]{0.000000,0.000000,0.000000} \pgfsetlinewidth{0.500000pt} \pgfsetdash{{16pt}{0pt}}{0pt} -\pgfpathmoveto{\pgfpoint{724.000000pt}{54.999832pt}} -\pgflineto{\pgfpoint{104.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{724.000000pt}{54.992676pt}} +\pgflineto{\pgfpoint{104.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{724.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{104.000000pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{724.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{104.000000pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{724.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{104.000000pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{724.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{104.000000pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{724.000000pt}{54.999832pt}} -\pgflineto{\pgfpoint{104.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{724.000000pt}{54.992676pt}} +\pgflineto{\pgfpoint{104.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{104.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{104.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{104.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{104.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{724.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{724.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{724.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{724.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{724.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{724.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{724.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{724.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{104.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{104.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{104.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{104.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{104.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{104.000000pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{104.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{104.000000pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{724.000000pt}{462.499634pt}} -\pgflineto{\pgfpoint{724.000000pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{724.000000pt}{462.493896pt}} +\pgflineto{\pgfpoint{724.000000pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{724.000000pt}{54.999832pt}} -\pgflineto{\pgfpoint{724.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{724.000000pt}{54.992676pt}} +\pgflineto{\pgfpoint{724.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{104.000000pt}{54.999832pt}} -\pgflineto{\pgfpoint{104.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{104.000000pt}{54.992676pt}} +\pgflineto{\pgfpoint{104.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{104.000000pt}{61.192032pt}} -\pgflineto{\pgfpoint{104.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{104.000000pt}{61.187744pt}} +\pgflineto{\pgfpoint{104.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{104.000000pt}{456.307404pt}} -\pgflineto{\pgfpoint{104.000000pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{104.000000pt}{456.298828pt}} +\pgflineto{\pgfpoint{104.000000pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{259.000000pt}{61.192032pt}} -\pgflineto{\pgfpoint{259.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{259.000000pt}{61.187744pt}} +\pgflineto{\pgfpoint{259.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{259.000000pt}{456.307404pt}} -\pgflineto{\pgfpoint{259.000000pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{259.000000pt}{456.298828pt}} +\pgflineto{\pgfpoint{259.000000pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{414.000000pt}{61.192032pt}} -\pgflineto{\pgfpoint{414.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{414.000000pt}{61.187744pt}} +\pgflineto{\pgfpoint{414.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{414.000000pt}{456.307404pt}} -\pgflineto{\pgfpoint{414.000000pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{414.000000pt}{456.298828pt}} +\pgflineto{\pgfpoint{414.000000pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{568.999939pt}{61.192032pt}} -\pgflineto{\pgfpoint{568.999939pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{569.000000pt}{61.187744pt}} +\pgflineto{\pgfpoint{569.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{568.999939pt}{456.307404pt}} -\pgflineto{\pgfpoint{568.999939pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{569.000000pt}{456.298828pt}} +\pgflineto{\pgfpoint{569.000000pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{724.000000pt}{61.192032pt}} -\pgflineto{\pgfpoint{724.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{724.000000pt}{61.187744pt}} +\pgflineto{\pgfpoint{724.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{724.000000pt}{456.307404pt}} -\pgflineto{\pgfpoint{724.000000pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{724.000000pt}{456.298828pt}} +\pgflineto{\pgfpoint{724.000000pt}{462.493896pt}} \pgfusepath{stroke} { -\pgftransformshift{\pgfpoint{104.000000pt}{50.006180pt}} +\pgftransformshift{\pgfpoint{104.000000pt}{50.000748pt}} +\pgfnode{rectangle}{north}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{1e-2}}}{}{\pgfusepath{discard}}} +{ +\pgftransformshift{\pgfpoint{259.000000pt}{50.000748pt}} +\pgfnode{rectangle}{north}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{1e-1}}}{}{\pgfusepath{discard}}} +{ +\pgftransformshift{\pgfpoint{414.000000pt}{50.000748pt}} \pgfnode{rectangle}{north}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{1e+0}}}{}{\pgfusepath{discard}}} { -\pgftransformshift{\pgfpoint{259.000000pt}{50.006180pt}} +\pgftransformshift{\pgfpoint{569.000000pt}{50.000748pt}} \pgfnode{rectangle}{north}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{1e+1}}}{}{\pgfusepath{discard}}} { -\pgftransformshift{\pgfpoint{414.000000pt}{50.006180pt}} +\pgftransformshift{\pgfpoint{724.000000pt}{50.000748pt}} \pgfnode{rectangle}{north}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{1e+2}}}{}{\pgfusepath{discard}}} -{ -\pgftransformshift{\pgfpoint{569.000000pt}{50.006180pt}} -\pgfnode{rectangle}{north}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{1e+3}}}{}{\pgfusepath{discard}}} -{ -\pgftransformshift{\pgfpoint{724.000000pt}{50.006180pt}} -\pgfnode{rectangle}{north}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{1e+4}}}{}{\pgfusepath{discard}}} -\pgfpathmoveto{\pgfpoint{150.659653pt}{58.095459pt}} -\pgflineto{\pgfpoint{150.659653pt}{54.999832pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{150.659653pt}{459.403046pt}} -\pgflineto{\pgfpoint{150.659653pt}{462.499634pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{177.953796pt}{58.095459pt}} -\pgflineto{\pgfpoint{177.953796pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{150.659653pt}{58.090210pt}} +\pgflineto{\pgfpoint{150.659653pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{177.953796pt}{459.403046pt}} -\pgflineto{\pgfpoint{177.953796pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{150.659653pt}{459.396362pt}} +\pgflineto{\pgfpoint{150.659653pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{197.319290pt}{58.095459pt}} -\pgflineto{\pgfpoint{197.319290pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{177.953796pt}{58.090210pt}} +\pgflineto{\pgfpoint{177.953796pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{197.319290pt}{459.403046pt}} -\pgflineto{\pgfpoint{197.319290pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{177.953796pt}{459.396362pt}} +\pgflineto{\pgfpoint{177.953796pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{212.340347pt}{58.095459pt}} -\pgflineto{\pgfpoint{212.340347pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{197.319290pt}{58.090210pt}} +\pgflineto{\pgfpoint{197.319290pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{212.340347pt}{459.403046pt}} -\pgflineto{\pgfpoint{212.340347pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{197.319290pt}{459.396362pt}} +\pgflineto{\pgfpoint{197.319290pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{224.613434pt}{58.095459pt}} -\pgflineto{\pgfpoint{224.613434pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{212.340332pt}{58.090210pt}} +\pgflineto{\pgfpoint{212.340332pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{224.613434pt}{459.403046pt}} -\pgflineto{\pgfpoint{224.613434pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{212.340332pt}{459.396362pt}} +\pgflineto{\pgfpoint{212.340332pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{234.990173pt}{58.095459pt}} -\pgflineto{\pgfpoint{234.990173pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{224.613434pt}{58.090210pt}} +\pgflineto{\pgfpoint{224.613434pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{234.990173pt}{459.403046pt}} -\pgflineto{\pgfpoint{234.990173pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{224.613434pt}{459.396362pt}} +\pgflineto{\pgfpoint{224.613434pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{243.978943pt}{58.095459pt}} -\pgflineto{\pgfpoint{243.978943pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{234.990173pt}{58.090210pt}} +\pgflineto{\pgfpoint{234.990173pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{243.978943pt}{459.403046pt}} -\pgflineto{\pgfpoint{243.978943pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{234.990173pt}{459.396362pt}} +\pgflineto{\pgfpoint{234.990173pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{251.907593pt}{58.095459pt}} -\pgflineto{\pgfpoint{251.907593pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{243.978943pt}{58.090210pt}} +\pgflineto{\pgfpoint{243.978943pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{251.907593pt}{459.403046pt}} -\pgflineto{\pgfpoint{251.907593pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{243.978943pt}{459.396362pt}} +\pgflineto{\pgfpoint{243.978943pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{305.659668pt}{58.095459pt}} -\pgflineto{\pgfpoint{305.659668pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{251.907578pt}{58.090210pt}} +\pgflineto{\pgfpoint{251.907578pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{305.659668pt}{459.403046pt}} -\pgflineto{\pgfpoint{305.659668pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{251.907578pt}{459.396362pt}} +\pgflineto{\pgfpoint{251.907578pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{332.953796pt}{58.095459pt}} -\pgflineto{\pgfpoint{332.953796pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{305.659637pt}{58.090210pt}} +\pgflineto{\pgfpoint{305.659637pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{332.953796pt}{459.403046pt}} -\pgflineto{\pgfpoint{332.953796pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{305.659637pt}{459.396362pt}} +\pgflineto{\pgfpoint{305.659637pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{352.319275pt}{58.095459pt}} -\pgflineto{\pgfpoint{352.319275pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{332.953796pt}{58.090210pt}} +\pgflineto{\pgfpoint{332.953796pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{352.319275pt}{459.403046pt}} -\pgflineto{\pgfpoint{352.319275pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{332.953796pt}{459.396362pt}} +\pgflineto{\pgfpoint{332.953796pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{367.340332pt}{58.095459pt}} -\pgflineto{\pgfpoint{367.340332pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{352.319275pt}{58.090210pt}} +\pgflineto{\pgfpoint{352.319275pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{367.340332pt}{459.403046pt}} -\pgflineto{\pgfpoint{367.340332pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{352.319275pt}{459.396362pt}} +\pgflineto{\pgfpoint{352.319275pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{379.613434pt}{58.095459pt}} -\pgflineto{\pgfpoint{379.613434pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{367.340332pt}{58.090210pt}} +\pgflineto{\pgfpoint{367.340332pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{379.613434pt}{459.403046pt}} -\pgflineto{\pgfpoint{379.613434pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{367.340332pt}{459.396362pt}} +\pgflineto{\pgfpoint{367.340332pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{389.990173pt}{58.095459pt}} -\pgflineto{\pgfpoint{389.990173pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{379.613434pt}{58.090210pt}} +\pgflineto{\pgfpoint{379.613434pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{389.990173pt}{459.403046pt}} -\pgflineto{\pgfpoint{389.990173pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{379.613434pt}{459.396362pt}} +\pgflineto{\pgfpoint{379.613434pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{398.978943pt}{58.095459pt}} -\pgflineto{\pgfpoint{398.978943pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{389.990173pt}{58.090210pt}} +\pgflineto{\pgfpoint{389.990173pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{398.978943pt}{459.403046pt}} -\pgflineto{\pgfpoint{398.978943pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{389.990173pt}{459.396362pt}} +\pgflineto{\pgfpoint{389.990173pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{406.907562pt}{58.095459pt}} -\pgflineto{\pgfpoint{406.907562pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{398.978943pt}{58.090210pt}} +\pgflineto{\pgfpoint{398.978943pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{406.907562pt}{459.403046pt}} -\pgflineto{\pgfpoint{406.907562pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{398.978943pt}{459.396362pt}} +\pgflineto{\pgfpoint{398.978943pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{460.659607pt}{58.095459pt}} -\pgflineto{\pgfpoint{460.659607pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{406.907562pt}{58.090210pt}} +\pgflineto{\pgfpoint{406.907562pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{460.659607pt}{459.403046pt}} -\pgflineto{\pgfpoint{460.659607pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{406.907562pt}{459.396362pt}} +\pgflineto{\pgfpoint{406.907562pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{487.953796pt}{58.095459pt}} -\pgflineto{\pgfpoint{487.953796pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{460.659637pt}{58.090210pt}} +\pgflineto{\pgfpoint{460.659637pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{487.953796pt}{459.403046pt}} -\pgflineto{\pgfpoint{487.953796pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{460.659637pt}{459.396362pt}} +\pgflineto{\pgfpoint{460.659637pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{507.319305pt}{58.095459pt}} -\pgflineto{\pgfpoint{507.319305pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{487.953796pt}{58.090210pt}} +\pgflineto{\pgfpoint{487.953796pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{507.319305pt}{459.403046pt}} -\pgflineto{\pgfpoint{507.319305pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{487.953796pt}{459.396362pt}} +\pgflineto{\pgfpoint{487.953796pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{522.340332pt}{58.095459pt}} -\pgflineto{\pgfpoint{522.340332pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{507.319275pt}{58.090210pt}} +\pgflineto{\pgfpoint{507.319275pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{522.340332pt}{459.403046pt}} -\pgflineto{\pgfpoint{522.340332pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{507.319275pt}{459.396362pt}} +\pgflineto{\pgfpoint{507.319275pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{534.613403pt}{58.095459pt}} -\pgflineto{\pgfpoint{534.613403pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{522.340332pt}{58.090210pt}} +\pgflineto{\pgfpoint{522.340332pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{534.613403pt}{459.403046pt}} -\pgflineto{\pgfpoint{534.613403pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{522.340332pt}{459.396362pt}} +\pgflineto{\pgfpoint{522.340332pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{544.990173pt}{58.095459pt}} -\pgflineto{\pgfpoint{544.990173pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{534.613403pt}{58.090210pt}} +\pgflineto{\pgfpoint{534.613403pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{544.990173pt}{459.403046pt}} -\pgflineto{\pgfpoint{544.990173pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{534.613403pt}{459.396362pt}} +\pgflineto{\pgfpoint{534.613403pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{553.978882pt}{58.095459pt}} -\pgflineto{\pgfpoint{553.978882pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{544.990173pt}{58.090210pt}} +\pgflineto{\pgfpoint{544.990173pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{553.978882pt}{459.403046pt}} -\pgflineto{\pgfpoint{553.978882pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{544.990173pt}{459.396362pt}} +\pgflineto{\pgfpoint{544.990173pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{561.907593pt}{58.095459pt}} -\pgflineto{\pgfpoint{561.907593pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{553.978943pt}{58.090210pt}} +\pgflineto{\pgfpoint{553.978943pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{561.907593pt}{459.403046pt}} -\pgflineto{\pgfpoint{561.907593pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{553.978943pt}{459.396362pt}} +\pgflineto{\pgfpoint{553.978943pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{615.659607pt}{58.095459pt}} -\pgflineto{\pgfpoint{615.659607pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{561.907593pt}{58.090210pt}} +\pgflineto{\pgfpoint{561.907593pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{615.659607pt}{459.403046pt}} -\pgflineto{\pgfpoint{615.659607pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{561.907593pt}{459.396362pt}} +\pgflineto{\pgfpoint{561.907593pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{642.953796pt}{58.095459pt}} -\pgflineto{\pgfpoint{642.953796pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{615.659668pt}{58.090210pt}} +\pgflineto{\pgfpoint{615.659668pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{642.953796pt}{459.403046pt}} -\pgflineto{\pgfpoint{642.953796pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{615.659668pt}{459.396362pt}} +\pgflineto{\pgfpoint{615.659668pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{662.319275pt}{58.095459pt}} -\pgflineto{\pgfpoint{662.319275pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{642.953796pt}{58.090210pt}} +\pgflineto{\pgfpoint{642.953796pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{662.319275pt}{459.403046pt}} -\pgflineto{\pgfpoint{662.319275pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{642.953796pt}{459.396362pt}} +\pgflineto{\pgfpoint{642.953796pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{677.340332pt}{58.095459pt}} -\pgflineto{\pgfpoint{677.340332pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{662.319275pt}{58.090210pt}} +\pgflineto{\pgfpoint{662.319275pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{677.340332pt}{459.403046pt}} -\pgflineto{\pgfpoint{677.340332pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{662.319275pt}{459.396362pt}} +\pgflineto{\pgfpoint{662.319275pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{689.613403pt}{58.095459pt}} -\pgflineto{\pgfpoint{689.613403pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{677.340332pt}{58.090210pt}} +\pgflineto{\pgfpoint{677.340332pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{689.613403pt}{459.403046pt}} -\pgflineto{\pgfpoint{689.613403pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{677.340332pt}{459.396362pt}} +\pgflineto{\pgfpoint{677.340332pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{699.990173pt}{58.095459pt}} -\pgflineto{\pgfpoint{699.990173pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{689.613403pt}{58.090210pt}} +\pgflineto{\pgfpoint{689.613403pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{699.990173pt}{459.403046pt}} -\pgflineto{\pgfpoint{699.990173pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{689.613403pt}{459.396362pt}} +\pgflineto{\pgfpoint{689.613403pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{708.978943pt}{58.095459pt}} -\pgflineto{\pgfpoint{708.978943pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{699.990173pt}{58.090210pt}} +\pgflineto{\pgfpoint{699.990173pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{708.978943pt}{459.403046pt}} -\pgflineto{\pgfpoint{708.978943pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{699.990173pt}{459.396362pt}} +\pgflineto{\pgfpoint{699.990173pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{716.907593pt}{58.095459pt}} -\pgflineto{\pgfpoint{716.907593pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{708.978943pt}{58.090210pt}} +\pgflineto{\pgfpoint{708.978943pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{716.907593pt}{459.403046pt}} -\pgflineto{\pgfpoint{716.907593pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{708.978943pt}{459.396362pt}} +\pgflineto{\pgfpoint{708.978943pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{110.200012pt}{54.999832pt}} -\pgflineto{\pgfpoint{104.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{716.907593pt}{58.090210pt}} +\pgflineto{\pgfpoint{716.907593pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{717.799988pt}{54.999832pt}} -\pgflineto{\pgfpoint{724.000000pt}{54.999832pt}} +\pgfpathmoveto{\pgfpoint{716.907593pt}{459.396362pt}} +\pgflineto{\pgfpoint{716.907593pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{110.200012pt}{113.214020pt}} -\pgflineto{\pgfpoint{104.000000pt}{113.214020pt}} +\pgfpathmoveto{\pgfpoint{110.200012pt}{54.992676pt}} +\pgflineto{\pgfpoint{104.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{717.799988pt}{113.214020pt}} -\pgflineto{\pgfpoint{724.000000pt}{113.214020pt}} +\pgfpathmoveto{\pgfpoint{717.799988pt}{54.992676pt}} +\pgflineto{\pgfpoint{724.000000pt}{54.992676pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{110.200012pt}{171.428207pt}} -\pgflineto{\pgfpoint{104.000000pt}{171.428207pt}} +\pgfpathmoveto{\pgfpoint{110.200012pt}{156.860352pt}} +\pgflineto{\pgfpoint{104.000000pt}{156.860352pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{717.799988pt}{171.428207pt}} -\pgflineto{\pgfpoint{724.000000pt}{171.428207pt}} +\pgfpathmoveto{\pgfpoint{717.799988pt}{156.860352pt}} +\pgflineto{\pgfpoint{724.000000pt}{156.860352pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{110.200012pt}{229.641907pt}} -\pgflineto{\pgfpoint{104.000000pt}{229.641907pt}} +\pgfpathmoveto{\pgfpoint{110.200012pt}{258.743286pt}} +\pgflineto{\pgfpoint{104.000000pt}{258.743286pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{717.799988pt}{229.641907pt}} -\pgflineto{\pgfpoint{724.000000pt}{229.641907pt}} +\pgfpathmoveto{\pgfpoint{717.799988pt}{258.743286pt}} +\pgflineto{\pgfpoint{724.000000pt}{258.743286pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{110.200012pt}{287.857056pt}} -\pgflineto{\pgfpoint{104.000000pt}{287.857056pt}} +\pgfpathmoveto{\pgfpoint{110.200012pt}{360.610962pt}} +\pgflineto{\pgfpoint{104.000000pt}{360.610962pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{717.799988pt}{287.857056pt}} -\pgflineto{\pgfpoint{724.000000pt}{287.857056pt}} +\pgfpathmoveto{\pgfpoint{717.799988pt}{360.610962pt}} +\pgflineto{\pgfpoint{724.000000pt}{360.610962pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{110.200012pt}{346.071228pt}} -\pgflineto{\pgfpoint{104.000000pt}{346.071228pt}} +\pgfpathmoveto{\pgfpoint{110.200012pt}{462.493896pt}} +\pgflineto{\pgfpoint{104.000000pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{717.799988pt}{346.071228pt}} -\pgflineto{\pgfpoint{724.000000pt}{346.071228pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{110.200012pt}{404.285431pt}} -\pgflineto{\pgfpoint{104.000000pt}{404.285431pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{717.799988pt}{404.285431pt}} -\pgflineto{\pgfpoint{724.000000pt}{404.285431pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{110.200012pt}{462.499634pt}} -\pgflineto{\pgfpoint{104.000000pt}{462.499634pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{717.799988pt}{462.499634pt}} -\pgflineto{\pgfpoint{724.000000pt}{462.499634pt}} +\pgfpathmoveto{\pgfpoint{717.799988pt}{462.493896pt}} +\pgflineto{\pgfpoint{724.000000pt}{462.493896pt}} \pgfusepath{stroke} { \pgftransformshift{\pgfpoint{99.000000pt}{54.999985pt}} -\pgfnode{rectangle}{east}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{0.675}}}{}{\pgfusepath{discard}}} -{ -\pgftransformshift{\pgfpoint{99.000000pt}{113.214050pt}} -\pgfnode{rectangle}{east}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{0.68}}}{}{\pgfusepath{discard}}} -{ -\pgftransformshift{\pgfpoint{99.000000pt}{171.428116pt}} -\pgfnode{rectangle}{east}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{0.685}}}{}{\pgfusepath{discard}}} +\pgfnode{rectangle}{east}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{0.998}}}{}{\pgfusepath{discard}}} { -\pgftransformshift{\pgfpoint{99.000000pt}{229.642181pt}} -\pgfnode{rectangle}{east}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{0.69}}}{}{\pgfusepath{discard}}} +\pgftransformshift{\pgfpoint{99.000000pt}{156.874985pt}} +\pgfnode{rectangle}{east}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{0.9985}}}{}{\pgfusepath{discard}}} { -\pgftransformshift{\pgfpoint{99.000000pt}{287.857025pt}} -\pgfnode{rectangle}{east}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{0.695}}}{}{\pgfusepath{discard}}} +\pgftransformshift{\pgfpoint{99.000000pt}{258.750000pt}} +\pgfnode{rectangle}{east}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{0.999}}}{}{\pgfusepath{discard}}} { -\pgftransformshift{\pgfpoint{99.000000pt}{346.071106pt}} -\pgfnode{rectangle}{east}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{0.7}}}{}{\pgfusepath{discard}}} +\pgftransformshift{\pgfpoint{99.000000pt}{360.625000pt}} +\pgfnode{rectangle}{east}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{0.9995}}}{}{\pgfusepath{discard}}} { -\pgftransformshift{\pgfpoint{99.000000pt}{404.285156pt}} -\pgfnode{rectangle}{east}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{0.705}}}{}{\pgfusepath{discard}}} +\pgftransformshift{\pgfpoint{99.000000pt}{462.500000pt}} +\pgfnode{rectangle}{east}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{1}}}{}{\pgfusepath{discard}}} { -\pgftransformshift{\pgfpoint{99.000000pt}{462.499237pt}} -\pgfnode{rectangle}{east}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{0.71}}}{}{\pgfusepath{discard}}} -{ -\pgftransformshift{\pgfpoint{414.000000pt}{37.005997pt}} +\pgftransformshift{\pgfpoint{414.000000pt}{37.005219pt}} \pgfnode{rectangle}{north}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{$\gamma$}}}{}{\pgfusepath{discard}}} { -\pgftransformshift{\pgfpoint{67.999969pt}{258.749207pt}} +\pgftransformshift{\pgfpoint{62.000000pt}{258.750000pt}} \pgftransformrotate{90.000000}{\pgfnode{rectangle}{south}{\fontsize{10}{0}\selectfont\textcolor[rgb]{0,0,0}{{Correlation}}}{}{\pgfusepath{discard}}} \color[rgb]{0.000000,0.000000,1.000000} \pgfsetdash{}{0pt} -\pgfpathmoveto{\pgfpoint{150.659653pt}{211.752899pt}} -\pgflineto{\pgfpoint{104.000000pt}{64.569473pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{177.953796pt}{285.896301pt}} -\pgflineto{\pgfpoint{150.659653pt}{211.752899pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{197.319290pt}{332.847595pt}} -\pgflineto{\pgfpoint{177.953796pt}{285.896301pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{212.340347pt}{365.254395pt}} -\pgflineto{\pgfpoint{197.319290pt}{332.847595pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{224.613434pt}{385.327332pt}} -\pgflineto{\pgfpoint{212.340347pt}{365.254395pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{234.990173pt}{399.607666pt}} -\pgflineto{\pgfpoint{224.613434pt}{385.327332pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{243.978943pt}{409.738525pt}} -\pgflineto{\pgfpoint{234.990173pt}{399.607666pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{251.907593pt}{419.845581pt}} -\pgflineto{\pgfpoint{243.978943pt}{409.738525pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{259.000000pt}{427.358643pt}} -\pgflineto{\pgfpoint{251.907593pt}{419.845581pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{305.659668pt}{455.595978pt}} -\pgflineto{\pgfpoint{259.000000pt}{427.358643pt}} -\pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{332.953796pt}{458.882324pt}} -\pgflineto{\pgfpoint{305.659668pt}{455.595978pt}} +\pgfpathmoveto{\pgfpoint{224.613434pt}{318.939209pt}} +\pgflineto{\pgfpoint{212.340332pt}{263.839722pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{352.319275pt}{452.736847pt}} -\pgflineto{\pgfpoint{332.953796pt}{458.882324pt}} +\pgfpathmoveto{\pgfpoint{234.990173pt}{374.664307pt}} +\pgflineto{\pgfpoint{224.613434pt}{318.939209pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{367.340332pt}{447.387695pt}} -\pgflineto{\pgfpoint{352.319275pt}{452.736847pt}} +\pgfpathmoveto{\pgfpoint{243.978943pt}{374.664307pt}} +\pgflineto{\pgfpoint{234.990173pt}{374.664307pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{379.613434pt}{445.330627pt}} -\pgflineto{\pgfpoint{367.340332pt}{447.387695pt}} +\pgfpathmoveto{\pgfpoint{251.907578pt}{374.664307pt}} +\pgflineto{\pgfpoint{243.978943pt}{374.664307pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{389.990173pt}{439.660065pt}} -\pgflineto{\pgfpoint{379.613434pt}{445.330627pt}} +\pgfpathmoveto{\pgfpoint{259.000000pt}{436.859131pt}} +\pgflineto{\pgfpoint{251.907578pt}{374.664307pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{398.978943pt}{436.301239pt}} -\pgflineto{\pgfpoint{389.990173pt}{439.660065pt}} +\pgfpathmoveto{\pgfpoint{265.415863pt}{449.172974pt}} +\pgflineto{\pgfpoint{259.000000pt}{436.859131pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{414.000000pt}{429.646484pt}} -\pgflineto{\pgfpoint{398.978943pt}{436.301239pt}} +\pgfpathmoveto{\pgfpoint{271.273071pt}{449.172974pt}} +\pgflineto{\pgfpoint{265.415863pt}{449.172974pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{441.294128pt}{417.878143pt}} -\pgflineto{\pgfpoint{414.000000pt}{429.646484pt}} +\pgfpathmoveto{\pgfpoint{276.661194pt}{449.172974pt}} +\pgflineto{\pgfpoint{271.273071pt}{449.172974pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{460.659607pt}{407.708160pt}} -\pgflineto{\pgfpoint{441.294128pt}{417.878143pt}} +\pgfpathmoveto{\pgfpoint{281.649841pt}{449.172974pt}} +\pgflineto{\pgfpoint{276.661194pt}{449.172974pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{487.953796pt}{399.180420pt}} -\pgflineto{\pgfpoint{460.659607pt}{407.708160pt}} +\pgfpathmoveto{\pgfpoint{286.294128pt}{449.172974pt}} +\pgflineto{\pgfpoint{281.649841pt}{449.172974pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{507.319305pt}{393.238068pt}} -\pgflineto{\pgfpoint{487.953796pt}{399.180420pt}} +\pgfpathmoveto{\pgfpoint{305.659637pt}{462.493896pt}} +\pgflineto{\pgfpoint{286.294128pt}{449.172974pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{522.340332pt}{388.959900pt}} -\pgflineto{\pgfpoint{507.319305pt}{393.238068pt}} +\pgfpathmoveto{\pgfpoint{332.953796pt}{462.493896pt}} +\pgflineto{\pgfpoint{305.659637pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{568.999939pt}{380.847931pt}} -\pgflineto{\pgfpoint{522.340332pt}{388.959900pt}} +\pgfpathmoveto{\pgfpoint{352.319275pt}{462.493896pt}} +\pgflineto{\pgfpoint{332.953796pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{615.659607pt}{377.747528pt}} -\pgflineto{\pgfpoint{568.999939pt}{380.847931pt}} +\pgfpathmoveto{\pgfpoint{367.340332pt}{462.493896pt}} +\pgflineto{\pgfpoint{352.319275pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{662.319275pt}{377.166748pt}} -\pgflineto{\pgfpoint{615.659607pt}{377.747528pt}} +\pgfpathmoveto{\pgfpoint{414.000000pt}{325.744629pt}} +\pgflineto{\pgfpoint{367.340332pt}{462.493896pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{107.000000pt}{64.569885pt}} -\pgflineto{\pgfpoint{101.000000pt}{64.569885pt}} +\pgfpathmoveto{\pgfpoint{460.659637pt}{325.744629pt}} +\pgflineto{\pgfpoint{414.000000pt}{325.744629pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{104.000000pt}{61.569885pt}} -\pgflineto{\pgfpoint{104.000000pt}{67.569901pt}} +\pgfpathmoveto{\pgfpoint{487.953796pt}{283.813477pt}} +\pgflineto{\pgfpoint{460.659637pt}{325.744629pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{106.121338pt}{62.448578pt}} -\pgflineto{\pgfpoint{101.878662pt}{66.691208pt}} +\pgfpathmoveto{\pgfpoint{507.319275pt}{137.863159pt}} +\pgflineto{\pgfpoint{487.953796pt}{283.813477pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{106.121338pt}{66.691208pt}} -\pgflineto{\pgfpoint{101.878662pt}{62.448578pt}} +\pgfpathmoveto{\pgfpoint{522.340332pt}{137.863159pt}} +\pgflineto{\pgfpoint{507.319275pt}{137.863159pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{153.659653pt}{211.753342pt}} -\pgflineto{\pgfpoint{147.659653pt}{211.753342pt}} +\pgfpathmoveto{\pgfpoint{569.000000pt}{77.346802pt}} +\pgflineto{\pgfpoint{522.340332pt}{137.863159pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{150.659653pt}{208.753342pt}} -\pgflineto{\pgfpoint{150.659653pt}{214.753342pt}} +\pgfpathmoveto{\pgfpoint{615.659668pt}{77.346802pt}} +\pgflineto{\pgfpoint{569.000000pt}{77.346802pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{152.780991pt}{209.632019pt}} -\pgflineto{\pgfpoint{148.538330pt}{213.874664pt}} +\pgfpathmoveto{\pgfpoint{642.953796pt}{77.346802pt}} +\pgflineto{\pgfpoint{615.659668pt}{77.346802pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{152.780991pt}{213.874664pt}} -\pgflineto{\pgfpoint{148.538330pt}{209.632019pt}} +\pgfpathmoveto{\pgfpoint{662.319275pt}{77.346802pt}} +\pgflineto{\pgfpoint{642.953796pt}{77.346802pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{180.953796pt}{285.896301pt}} -\pgflineto{\pgfpoint{174.953796pt}{285.896301pt}} +\pgfpathmoveto{\pgfpoint{215.340332pt}{263.851471pt}} +\pgflineto{\pgfpoint{209.340332pt}{263.851471pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{177.953796pt}{282.896301pt}} -\pgflineto{\pgfpoint{177.953796pt}{288.896301pt}} +\pgfpathmoveto{\pgfpoint{212.340332pt}{260.851471pt}} +\pgflineto{\pgfpoint{212.340332pt}{266.851471pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{180.075119pt}{283.774963pt}} -\pgflineto{\pgfpoint{175.832458pt}{288.017639pt}} +\pgfpathmoveto{\pgfpoint{214.461655pt}{261.730133pt}} +\pgflineto{\pgfpoint{210.219009pt}{265.972778pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{180.075119pt}{288.017639pt}} -\pgflineto{\pgfpoint{175.832458pt}{283.774963pt}} +\pgfpathmoveto{\pgfpoint{214.461655pt}{265.972778pt}} +\pgflineto{\pgfpoint{210.219009pt}{261.730133pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{200.319321pt}{332.847839pt}} -\pgflineto{\pgfpoint{194.319321pt}{332.847839pt}} +\pgfpathmoveto{\pgfpoint{227.613449pt}{318.941162pt}} +\pgflineto{\pgfpoint{221.613449pt}{318.941162pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{197.319321pt}{329.847839pt}} -\pgflineto{\pgfpoint{197.319321pt}{335.847839pt}} +\pgfpathmoveto{\pgfpoint{224.613449pt}{315.941162pt}} +\pgflineto{\pgfpoint{224.613449pt}{321.941162pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{199.440643pt}{330.726532pt}} -\pgflineto{\pgfpoint{195.197983pt}{334.969177pt}} +\pgfpathmoveto{\pgfpoint{226.734772pt}{316.819855pt}} +\pgflineto{\pgfpoint{222.492142pt}{321.062500pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{199.440643pt}{334.969177pt}} -\pgflineto{\pgfpoint{195.197983pt}{330.726532pt}} +\pgfpathmoveto{\pgfpoint{226.734772pt}{321.062500pt}} +\pgflineto{\pgfpoint{222.492142pt}{316.819855pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{215.340332pt}{365.254303pt}} -\pgflineto{\pgfpoint{209.340332pt}{365.254303pt}} +\pgfpathmoveto{\pgfpoint{237.990189pt}{374.673035pt}} +\pgflineto{\pgfpoint{231.990189pt}{374.673035pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{212.340332pt}{362.254303pt}} -\pgflineto{\pgfpoint{212.340332pt}{368.254303pt}} +\pgfpathmoveto{\pgfpoint{234.990189pt}{371.673065pt}} +\pgflineto{\pgfpoint{234.990189pt}{377.673065pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{214.461655pt}{363.132996pt}} -\pgflineto{\pgfpoint{210.219009pt}{367.375641pt}} +\pgfpathmoveto{\pgfpoint{237.111511pt}{372.551727pt}} +\pgflineto{\pgfpoint{232.868881pt}{376.794373pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{214.461655pt}{367.375641pt}} -\pgflineto{\pgfpoint{210.219009pt}{363.132996pt}} +\pgfpathmoveto{\pgfpoint{237.111511pt}{376.794373pt}} +\pgflineto{\pgfpoint{232.868881pt}{372.551727pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{227.613449pt}{385.327698pt}} -\pgflineto{\pgfpoint{221.613449pt}{385.327698pt}} +\pgfpathmoveto{\pgfpoint{246.978928pt}{374.673035pt}} +\pgflineto{\pgfpoint{240.978928pt}{374.673035pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{224.613449pt}{382.327698pt}} -\pgflineto{\pgfpoint{224.613449pt}{388.327698pt}} +\pgfpathmoveto{\pgfpoint{243.978928pt}{371.673065pt}} +\pgflineto{\pgfpoint{243.978928pt}{377.673065pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{226.734772pt}{383.206360pt}} -\pgflineto{\pgfpoint{222.492142pt}{387.449005pt}} +\pgfpathmoveto{\pgfpoint{246.100250pt}{372.551727pt}} +\pgflineto{\pgfpoint{241.857605pt}{376.794373pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{226.734772pt}{387.449005pt}} -\pgflineto{\pgfpoint{222.492142pt}{383.206360pt}} +\pgfpathmoveto{\pgfpoint{246.100250pt}{376.794373pt}} +\pgflineto{\pgfpoint{241.857605pt}{372.551727pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{237.990189pt}{399.608276pt}} -\pgflineto{\pgfpoint{231.990189pt}{399.608276pt}} +\pgfpathmoveto{\pgfpoint{254.907578pt}{374.673035pt}} +\pgflineto{\pgfpoint{248.907593pt}{374.673035pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{234.990189pt}{396.608246pt}} -\pgflineto{\pgfpoint{234.990189pt}{402.608276pt}} +\pgfpathmoveto{\pgfpoint{251.907593pt}{371.673065pt}} +\pgflineto{\pgfpoint{251.907593pt}{377.673065pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{237.111511pt}{397.486938pt}} -\pgflineto{\pgfpoint{232.868881pt}{401.729553pt}} +\pgfpathmoveto{\pgfpoint{254.028900pt}{372.551727pt}} +\pgflineto{\pgfpoint{249.786270pt}{376.794373pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{237.111511pt}{401.729553pt}} -\pgflineto{\pgfpoint{232.868881pt}{397.486938pt}} +\pgfpathmoveto{\pgfpoint{254.028900pt}{376.794373pt}} +\pgflineto{\pgfpoint{249.786270pt}{372.551727pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{246.978928pt}{409.738525pt}} -\pgflineto{\pgfpoint{240.978928pt}{409.738525pt}} +\pgfpathmoveto{\pgfpoint{262.000000pt}{436.861816pt}} +\pgflineto{\pgfpoint{256.000000pt}{436.861816pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{243.978928pt}{406.738525pt}} -\pgflineto{\pgfpoint{243.978928pt}{412.738525pt}} +\pgfpathmoveto{\pgfpoint{259.000000pt}{433.861816pt}} +\pgflineto{\pgfpoint{259.000000pt}{439.861816pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{246.100250pt}{407.617249pt}} -\pgflineto{\pgfpoint{241.857605pt}{411.859863pt}} +\pgfpathmoveto{\pgfpoint{261.121307pt}{434.740479pt}} +\pgflineto{\pgfpoint{256.878662pt}{438.983124pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{246.100250pt}{411.859863pt}} -\pgflineto{\pgfpoint{241.857605pt}{407.617249pt}} +\pgfpathmoveto{\pgfpoint{261.121307pt}{438.983124pt}} +\pgflineto{\pgfpoint{256.878662pt}{434.740479pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{254.907578pt}{419.846680pt}} -\pgflineto{\pgfpoint{248.907593pt}{419.846680pt}} +\pgfpathmoveto{\pgfpoint{268.415863pt}{449.180054pt}} +\pgflineto{\pgfpoint{262.415863pt}{449.180054pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{251.907593pt}{416.846680pt}} -\pgflineto{\pgfpoint{251.907593pt}{422.846680pt}} +\pgfpathmoveto{\pgfpoint{265.415863pt}{446.180054pt}} +\pgflineto{\pgfpoint{265.415863pt}{452.180054pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{254.028900pt}{417.725372pt}} -\pgflineto{\pgfpoint{249.786270pt}{421.968018pt}} +\pgfpathmoveto{\pgfpoint{267.537170pt}{447.058716pt}} +\pgflineto{\pgfpoint{263.294556pt}{451.301361pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{254.028900pt}{421.968018pt}} -\pgflineto{\pgfpoint{249.786270pt}{417.725372pt}} +\pgfpathmoveto{\pgfpoint{267.537170pt}{451.301361pt}} +\pgflineto{\pgfpoint{263.294556pt}{447.058716pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{262.000000pt}{427.359619pt}} -\pgflineto{\pgfpoint{256.000000pt}{427.359619pt}} +\pgfpathmoveto{\pgfpoint{274.273071pt}{449.180054pt}} +\pgflineto{\pgfpoint{268.273071pt}{449.180054pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{259.000000pt}{424.359619pt}} -\pgflineto{\pgfpoint{259.000000pt}{430.359619pt}} +\pgfpathmoveto{\pgfpoint{271.273071pt}{446.180054pt}} +\pgflineto{\pgfpoint{271.273071pt}{452.180054pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{261.121307pt}{425.238281pt}} -\pgflineto{\pgfpoint{256.878662pt}{429.480927pt}} +\pgfpathmoveto{\pgfpoint{273.394409pt}{447.058716pt}} +\pgflineto{\pgfpoint{269.151764pt}{451.301361pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{261.121307pt}{429.480927pt}} -\pgflineto{\pgfpoint{256.878662pt}{425.238281pt}} +\pgfpathmoveto{\pgfpoint{273.394409pt}{451.301361pt}} +\pgflineto{\pgfpoint{269.151764pt}{447.058716pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{308.659607pt}{455.596619pt}} -\pgflineto{\pgfpoint{302.659637pt}{455.596619pt}} +\pgfpathmoveto{\pgfpoint{279.661224pt}{449.180054pt}} +\pgflineto{\pgfpoint{273.661224pt}{449.180054pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{305.659637pt}{452.596619pt}} -\pgflineto{\pgfpoint{305.659637pt}{458.596649pt}} +\pgfpathmoveto{\pgfpoint{276.661224pt}{446.180054pt}} +\pgflineto{\pgfpoint{276.661224pt}{452.180054pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{307.780945pt}{453.475342pt}} -\pgflineto{\pgfpoint{303.538300pt}{457.717957pt}} +\pgfpathmoveto{\pgfpoint{278.782532pt}{447.058716pt}} +\pgflineto{\pgfpoint{274.539917pt}{451.301361pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{307.780945pt}{457.717957pt}} -\pgflineto{\pgfpoint{303.538300pt}{453.475342pt}} +\pgfpathmoveto{\pgfpoint{278.782532pt}{451.301361pt}} +\pgflineto{\pgfpoint{274.539917pt}{447.058716pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{335.953796pt}{458.882965pt}} -\pgflineto{\pgfpoint{329.953796pt}{458.882965pt}} +\pgfpathmoveto{\pgfpoint{284.649841pt}{449.180054pt}} +\pgflineto{\pgfpoint{278.649841pt}{449.180054pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{332.953796pt}{455.882965pt}} -\pgflineto{\pgfpoint{332.953796pt}{461.882996pt}} +\pgfpathmoveto{\pgfpoint{281.649841pt}{446.180054pt}} +\pgflineto{\pgfpoint{281.649841pt}{452.180054pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{335.075104pt}{456.761658pt}} -\pgflineto{\pgfpoint{330.832458pt}{461.004272pt}} +\pgfpathmoveto{\pgfpoint{283.771149pt}{447.058716pt}} +\pgflineto{\pgfpoint{279.528503pt}{451.301361pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{335.075104pt}{461.004272pt}} -\pgflineto{\pgfpoint{330.832458pt}{456.761658pt}} +\pgfpathmoveto{\pgfpoint{283.771149pt}{451.301361pt}} +\pgflineto{\pgfpoint{279.528503pt}{447.058716pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{355.319275pt}{452.737671pt}} -\pgflineto{\pgfpoint{349.319275pt}{452.737671pt}} +\pgfpathmoveto{\pgfpoint{289.294128pt}{449.180054pt}} +\pgflineto{\pgfpoint{283.294159pt}{449.180054pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{352.319275pt}{449.737671pt}} -\pgflineto{\pgfpoint{352.319275pt}{455.737701pt}} +\pgfpathmoveto{\pgfpoint{286.294159pt}{446.180054pt}} +\pgflineto{\pgfpoint{286.294159pt}{452.180054pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{354.440613pt}{450.616394pt}} -\pgflineto{\pgfpoint{350.197968pt}{454.859009pt}} +\pgfpathmoveto{\pgfpoint{288.415466pt}{447.058716pt}} +\pgflineto{\pgfpoint{284.172852pt}{451.301361pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{354.440613pt}{454.859009pt}} -\pgflineto{\pgfpoint{350.197968pt}{450.616394pt}} +\pgfpathmoveto{\pgfpoint{288.415466pt}{451.301361pt}} +\pgflineto{\pgfpoint{284.172852pt}{447.058716pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{370.340363pt}{447.388855pt}} -\pgflineto{\pgfpoint{364.340363pt}{447.388855pt}} +\pgfpathmoveto{\pgfpoint{308.659607pt}{462.500000pt}} +\pgflineto{\pgfpoint{302.659637pt}{462.500000pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{367.340363pt}{444.388855pt}} -\pgflineto{\pgfpoint{367.340363pt}{450.388855pt}} +\pgfpathmoveto{\pgfpoint{305.659637pt}{459.500000pt}} +\pgflineto{\pgfpoint{305.659637pt}{465.500000pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{369.461670pt}{445.267548pt}} -\pgflineto{\pgfpoint{365.219025pt}{449.510193pt}} +\pgfpathmoveto{\pgfpoint{307.780945pt}{460.378693pt}} +\pgflineto{\pgfpoint{303.538300pt}{464.621338pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{369.461670pt}{449.510193pt}} -\pgflineto{\pgfpoint{365.219025pt}{445.267548pt}} +\pgfpathmoveto{\pgfpoint{307.780945pt}{464.621338pt}} +\pgflineto{\pgfpoint{303.538300pt}{460.378693pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{382.613434pt}{445.330811pt}} -\pgflineto{\pgfpoint{376.613434pt}{445.330811pt}} +\pgfpathmoveto{\pgfpoint{335.953796pt}{462.500000pt}} +\pgflineto{\pgfpoint{329.953796pt}{462.500000pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{379.613434pt}{442.330811pt}} -\pgflineto{\pgfpoint{379.613434pt}{448.330811pt}} +\pgfpathmoveto{\pgfpoint{332.953796pt}{459.500000pt}} +\pgflineto{\pgfpoint{332.953796pt}{465.500000pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{381.734741pt}{443.209473pt}} -\pgflineto{\pgfpoint{377.492096pt}{447.452118pt}} +\pgfpathmoveto{\pgfpoint{335.075104pt}{460.378693pt}} +\pgflineto{\pgfpoint{330.832458pt}{464.621338pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{381.734741pt}{447.452118pt}} -\pgflineto{\pgfpoint{377.492096pt}{443.209473pt}} +\pgfpathmoveto{\pgfpoint{335.075104pt}{464.621338pt}} +\pgflineto{\pgfpoint{330.832458pt}{460.378693pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{392.990173pt}{439.660553pt}} -\pgflineto{\pgfpoint{386.990173pt}{439.660553pt}} +\pgfpathmoveto{\pgfpoint{355.319275pt}{462.500000pt}} +\pgflineto{\pgfpoint{349.319275pt}{462.500000pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{389.990173pt}{436.660522pt}} -\pgflineto{\pgfpoint{389.990173pt}{442.660553pt}} +\pgfpathmoveto{\pgfpoint{352.319275pt}{459.500000pt}} +\pgflineto{\pgfpoint{352.319275pt}{465.500000pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{392.111511pt}{437.539246pt}} -\pgflineto{\pgfpoint{387.868866pt}{441.781860pt}} +\pgfpathmoveto{\pgfpoint{354.440613pt}{460.378693pt}} +\pgflineto{\pgfpoint{350.197968pt}{464.621338pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{392.111511pt}{441.781860pt}} -\pgflineto{\pgfpoint{387.868866pt}{437.539246pt}} +\pgfpathmoveto{\pgfpoint{354.440613pt}{464.621338pt}} +\pgflineto{\pgfpoint{350.197968pt}{460.378693pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{401.978912pt}{436.302032pt}} -\pgflineto{\pgfpoint{395.978912pt}{436.302032pt}} +\pgfpathmoveto{\pgfpoint{370.340363pt}{462.500000pt}} +\pgflineto{\pgfpoint{364.340363pt}{462.500000pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{398.978912pt}{433.302032pt}} -\pgflineto{\pgfpoint{398.978912pt}{439.302063pt}} +\pgfpathmoveto{\pgfpoint{367.340363pt}{459.500000pt}} +\pgflineto{\pgfpoint{367.340363pt}{465.500000pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{401.100250pt}{434.180725pt}} -\pgflineto{\pgfpoint{396.857605pt}{438.423340pt}} +\pgfpathmoveto{\pgfpoint{369.461670pt}{460.378693pt}} +\pgflineto{\pgfpoint{365.219025pt}{464.621338pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{401.100250pt}{438.423340pt}} -\pgflineto{\pgfpoint{396.857605pt}{434.180725pt}} +\pgfpathmoveto{\pgfpoint{369.461670pt}{464.621338pt}} +\pgflineto{\pgfpoint{365.219025pt}{460.378693pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{417.000000pt}{429.646851pt}} -\pgflineto{\pgfpoint{411.000000pt}{429.646851pt}} +\pgfpathmoveto{\pgfpoint{417.000000pt}{325.750824pt}} +\pgflineto{\pgfpoint{411.000000pt}{325.750824pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{414.000000pt}{426.646851pt}} -\pgflineto{\pgfpoint{414.000000pt}{432.646851pt}} +\pgfpathmoveto{\pgfpoint{414.000000pt}{322.750824pt}} +\pgflineto{\pgfpoint{414.000000pt}{328.750824pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{416.121307pt}{427.525513pt}} -\pgflineto{\pgfpoint{411.878662pt}{431.768158pt}} +\pgfpathmoveto{\pgfpoint{416.121307pt}{323.629517pt}} +\pgflineto{\pgfpoint{411.878662pt}{327.872131pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{416.121307pt}{431.768158pt}} -\pgflineto{\pgfpoint{411.878662pt}{427.525513pt}} +\pgfpathmoveto{\pgfpoint{416.121307pt}{327.872131pt}} +\pgflineto{\pgfpoint{411.878662pt}{323.629517pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{444.294159pt}{417.878021pt}} -\pgflineto{\pgfpoint{438.294128pt}{417.878021pt}} +\pgfpathmoveto{\pgfpoint{463.659637pt}{325.750824pt}} +\pgflineto{\pgfpoint{457.659637pt}{325.750824pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{441.294128pt}{414.877991pt}} -\pgflineto{\pgfpoint{441.294128pt}{420.878021pt}} +\pgfpathmoveto{\pgfpoint{460.659637pt}{322.750824pt}} +\pgflineto{\pgfpoint{460.659637pt}{328.750824pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{443.415466pt}{415.756714pt}} -\pgflineto{\pgfpoint{439.172821pt}{419.999329pt}} +\pgfpathmoveto{\pgfpoint{462.780975pt}{323.629517pt}} +\pgflineto{\pgfpoint{458.538330pt}{327.872131pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{443.415466pt}{419.999329pt}} -\pgflineto{\pgfpoint{439.172821pt}{415.756714pt}} +\pgfpathmoveto{\pgfpoint{462.780975pt}{327.872131pt}} +\pgflineto{\pgfpoint{458.538330pt}{323.629517pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{463.659637pt}{407.708282pt}} -\pgflineto{\pgfpoint{457.659637pt}{407.708282pt}} +\pgfpathmoveto{\pgfpoint{490.953796pt}{283.820740pt}} +\pgflineto{\pgfpoint{484.953796pt}{283.820740pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{460.659637pt}{404.708282pt}} -\pgflineto{\pgfpoint{460.659637pt}{410.708313pt}} +\pgfpathmoveto{\pgfpoint{487.953796pt}{280.820740pt}} +\pgflineto{\pgfpoint{487.953796pt}{286.820740pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{462.780975pt}{405.586975pt}} -\pgflineto{\pgfpoint{458.538330pt}{409.829590pt}} +\pgfpathmoveto{\pgfpoint{490.075134pt}{281.699432pt}} +\pgflineto{\pgfpoint{485.832489pt}{285.942078pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{462.780975pt}{409.829590pt}} -\pgflineto{\pgfpoint{458.538330pt}{405.586975pt}} +\pgfpathmoveto{\pgfpoint{490.075134pt}{285.942078pt}} +\pgflineto{\pgfpoint{485.832489pt}{281.699432pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{490.953796pt}{399.180603pt}} -\pgflineto{\pgfpoint{484.953796pt}{399.180603pt}} +\pgfpathmoveto{\pgfpoint{510.319305pt}{137.872375pt}} +\pgflineto{\pgfpoint{504.319305pt}{137.872375pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{487.953796pt}{396.180603pt}} -\pgflineto{\pgfpoint{487.953796pt}{402.180634pt}} +\pgfpathmoveto{\pgfpoint{507.319305pt}{134.872375pt}} +\pgflineto{\pgfpoint{507.319305pt}{140.872375pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{490.075134pt}{397.059326pt}} -\pgflineto{\pgfpoint{485.832489pt}{401.301941pt}} +\pgfpathmoveto{\pgfpoint{509.440613pt}{135.751038pt}} +\pgflineto{\pgfpoint{505.197998pt}{139.993683pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{490.075134pt}{401.301941pt}} -\pgflineto{\pgfpoint{485.832489pt}{397.059326pt}} +\pgfpathmoveto{\pgfpoint{509.440613pt}{139.993683pt}} +\pgflineto{\pgfpoint{505.197998pt}{135.751038pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{510.319305pt}{393.238251pt}} -\pgflineto{\pgfpoint{504.319305pt}{393.238251pt}} +\pgfpathmoveto{\pgfpoint{525.340271pt}{137.872375pt}} +\pgflineto{\pgfpoint{519.340332pt}{137.872375pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{507.319305pt}{390.238220pt}} -\pgflineto{\pgfpoint{507.319305pt}{396.238251pt}} +\pgfpathmoveto{\pgfpoint{522.340332pt}{134.872375pt}} +\pgflineto{\pgfpoint{522.340332pt}{140.872375pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{509.440613pt}{391.116943pt}} -\pgflineto{\pgfpoint{505.197998pt}{395.359558pt}} +\pgfpathmoveto{\pgfpoint{524.461609pt}{135.751038pt}} +\pgflineto{\pgfpoint{520.218994pt}{139.993683pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{509.440613pt}{395.359558pt}} -\pgflineto{\pgfpoint{505.197998pt}{391.116943pt}} +\pgfpathmoveto{\pgfpoint{524.461609pt}{139.993683pt}} +\pgflineto{\pgfpoint{520.218994pt}{135.751038pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{525.340271pt}{388.960693pt}} -\pgflineto{\pgfpoint{519.340332pt}{388.960693pt}} +\pgfpathmoveto{\pgfpoint{572.000000pt}{77.350677pt}} +\pgflineto{\pgfpoint{566.000000pt}{77.350677pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{522.340332pt}{385.960693pt}} -\pgflineto{\pgfpoint{522.340332pt}{391.960693pt}} +\pgfpathmoveto{\pgfpoint{569.000000pt}{74.350677pt}} +\pgflineto{\pgfpoint{569.000000pt}{80.350677pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{524.461609pt}{386.839355pt}} -\pgflineto{\pgfpoint{520.218994pt}{391.082001pt}} +\pgfpathmoveto{\pgfpoint{571.121338pt}{75.229355pt}} +\pgflineto{\pgfpoint{566.878662pt}{79.471985pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{524.461609pt}{391.082001pt}} -\pgflineto{\pgfpoint{520.218994pt}{386.839355pt}} +\pgfpathmoveto{\pgfpoint{571.121338pt}{79.471985pt}} +\pgflineto{\pgfpoint{566.878662pt}{75.229355pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{572.000000pt}{380.848114pt}} -\pgflineto{\pgfpoint{566.000000pt}{380.848114pt}} +\pgfpathmoveto{\pgfpoint{618.659668pt}{77.350677pt}} +\pgflineto{\pgfpoint{612.659668pt}{77.350677pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{569.000000pt}{377.848114pt}} -\pgflineto{\pgfpoint{569.000000pt}{383.848114pt}} +\pgfpathmoveto{\pgfpoint{615.659668pt}{74.350677pt}} +\pgflineto{\pgfpoint{615.659668pt}{80.350677pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{571.121338pt}{378.726807pt}} -\pgflineto{\pgfpoint{566.878662pt}{382.969421pt}} +\pgfpathmoveto{\pgfpoint{617.781006pt}{75.229355pt}} +\pgflineto{\pgfpoint{613.538330pt}{79.471985pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{571.121338pt}{382.969421pt}} -\pgflineto{\pgfpoint{566.878662pt}{378.726807pt}} +\pgfpathmoveto{\pgfpoint{617.781006pt}{79.471985pt}} +\pgflineto{\pgfpoint{613.538330pt}{75.229355pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{618.659668pt}{377.747833pt}} -\pgflineto{\pgfpoint{612.659668pt}{377.747833pt}} +\pgfpathmoveto{\pgfpoint{645.953796pt}{77.350677pt}} +\pgflineto{\pgfpoint{639.953796pt}{77.350677pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{615.659668pt}{374.747833pt}} -\pgflineto{\pgfpoint{615.659668pt}{380.747833pt}} +\pgfpathmoveto{\pgfpoint{642.953796pt}{74.350677pt}} +\pgflineto{\pgfpoint{642.953796pt}{80.350677pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{617.781006pt}{375.626526pt}} -\pgflineto{\pgfpoint{613.538330pt}{379.869141pt}} +\pgfpathmoveto{\pgfpoint{645.075073pt}{75.229355pt}} +\pgflineto{\pgfpoint{640.832458pt}{79.471985pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{617.781006pt}{379.869141pt}} -\pgflineto{\pgfpoint{613.538330pt}{375.626526pt}} +\pgfpathmoveto{\pgfpoint{645.075073pt}{79.471985pt}} +\pgflineto{\pgfpoint{640.832458pt}{75.229355pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{665.319275pt}{377.167664pt}} -\pgflineto{\pgfpoint{659.319275pt}{377.167664pt}} +\pgfpathmoveto{\pgfpoint{665.319275pt}{77.350677pt}} +\pgflineto{\pgfpoint{659.319275pt}{77.350677pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{662.319275pt}{374.167664pt}} -\pgflineto{\pgfpoint{662.319275pt}{380.167664pt}} +\pgfpathmoveto{\pgfpoint{662.319275pt}{74.350677pt}} +\pgflineto{\pgfpoint{662.319275pt}{80.350677pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{664.440613pt}{375.046326pt}} -\pgflineto{\pgfpoint{660.197937pt}{379.288971pt}} +\pgfpathmoveto{\pgfpoint{664.440613pt}{75.229355pt}} +\pgflineto{\pgfpoint{660.197937pt}{79.471985pt}} \pgfusepath{stroke} -\pgfpathmoveto{\pgfpoint{664.440613pt}{379.288971pt}} -\pgflineto{\pgfpoint{660.197937pt}{375.046326pt}} +\pgfpathmoveto{\pgfpoint{664.440613pt}{79.471985pt}} +\pgflineto{\pgfpoint{660.197937pt}{75.229355pt}} \pgfusepath{stroke} \end{pgfpicture} diff --git a/fig/factory/graphConv.m b/fig/factory/graphConv.m index 1df84a5..c022d99 100644 --- a/fig/factory/graphConv.m +++ b/fig/factory/graphConv.m @@ -1,21 +1,23 @@ %m_r_p2_n16_b6000_g300_r3_s3.pgm idx = 1; -noisy = imread('n_q70.pgm'); -orig = imread('../lena.pgm'); +noisy = imread('bar/n_q200.pgm'); +orig = imread('bar.pgm'); noise = noisy - orig; vals = []; -gs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 100, 150, 200, 300, 400, 500, 1000, 2000, 4000]; +gs = [0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.2, 0.3, 0.4, 0.5, 1, 2, 3, 4, 5, 10, 20, 30, 40]; + for g = gs - im = imread(['m_r_p2_n16_b6000_g', int2str(g), '_r3_s3.pgm']); + im = imread(['bar/r_p2_n16_b80000_g', num2str(g), '_r20_s15.pgm']); + %['bar/r_p2_n16_b10000_g', num2str(g), '_r15_s15.pgm'] - vals(idx) = corr(im(:), noise(:)); + vals(idx) = corr(im(:), orig(:)); idx = idx+1; end -vals +%vals semilogx(gs, vals, '*-'); xlabel('$\gamma$'); diff --git a/fig/factory/octagon.pgm b/fig/factory/octagon.pgm new file mode 100644 index 0000000..9469dc2 Binary files /dev/null and b/fig/factory/octagon.pgm differ diff --git a/fig/factory/pmake.py b/fig/factory/pmake.py index e636892..ee90d7c 100644 --- a/fig/factory/pmake.py +++ b/fig/factory/pmake.py @@ -48,6 +48,41 @@ files = { 'g': [100, 10000000000] }, + 'octagon': { + 'orig': 'octagon.pgm', + 'q': [0], + 'p': [2], + 's': [1], + 'r': [1], + 'n': [8, 16, 32, 48, 72], + 'b': [100000], + 'g': [100, 10000000000] + }, + + 'rombus': { + 'orig': 'rombus.pgm', + 'q': [0], + 'p': [2], + 's': [1], + 'r': [1], + 'n': [4, 8, 72], + 'b': [100000, 120000, 140000], + 'g': [100, 10000000000] + }, + + 'bar': { + 'orig': 'bar.pgm', + 'q': [200], + 'p': [2], + 's': [15], + 'r': [20], + 'n': [16], + 'b': [80000], + 'g': [0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, + 0.14, 0.15, 0.2, 0.3, 0.4, 0.5, 1, 2, 3, 4, 5, 10, 20, + 30, 40] + }, + 'lena_gamma_seq': { 'orig': 'lena.pgm', 'q': [70], @@ -71,6 +106,17 @@ files = { 'g': [60] }, + 'lena_neigh': { + 'orig': 'lena.pgm', + 'q': [30], + 'p': [2], + 's': [5], + 'r': [10], + 'n': [16, 72], + 'b': [2000], + 'g': [80] + }, + 'grad': { 'orig': 'grad.pgm', 'q': [40], diff --git a/fig/factory/rombus.pgm b/fig/factory/rombus.pgm new file mode 100644 index 0000000..c826249 Binary files /dev/null and b/fig/factory/rombus.pgm differ diff --git a/fig/pixel_perimeter.tex b/fig/pixel_perimeter.tex new file mode 100644 index 0000000..e63e887 --- /dev/null +++ b/fig/pixel_perimeter.tex @@ -0,0 +1,37 @@ +\centering +\begin{tikzpicture}[scale=1.2] + \foreach \x in {0,...,3} { + \foreach \y in {0,...,3} { + \node[tiny vertex] (\x\y) at (\x, \y) {}; + } + } + \node[tiny vertex,draw] (a) at (1, 2) {}; + \node[tiny vertex,draw] (b) at (1, 3) {}; + \node[tiny vertex,draw] (c) at (2, 2) {}; + \node[tiny vertex,draw] (d) at (2, 3) {}; + \node[tiny vertex,draw] (e) at (2, 4) {}; + \node[tiny vertex,draw] (f) at (3, 3) {}; + \node[tiny vertex,draw] (g) at (3, 1) {}; + \node[tiny vertex,draw] (h) at (2, 1) {}; + \node[tiny vertex,draw] (i) at (2, 0) {}; + + \path[edge,-] (a) -- (b); + \path[edge,-] (a) -- (c); + \path[edge,-] (a) -- (d); + \path[edge,-] (a) -- (e); + \path[edge,-] (a) -- (f); + \path[edge,-] (a) -- (g); + \path[edge,-] (a) -- (h); + \path[edge,-] (a) -- (i); + + \path[dash] (1, 2) -- +(35.785:4cm); + \path[dash] (1, 2) -- +(54.215:4cm); + + \draw (1,2) +(35.785:3.1cm) arc (35.785:54.215:3.1cm); + \path (1,2) ++(45:3.4cm) node {$\Delta \phi$}; + +\end{tikzpicture} +\caption{% + BOP. +} +\label{fig:pixel_perimeter} diff --git a/introduction.tex b/introduction.tex index 28324a4..883b9e7 100644 --- a/introduction.tex +++ b/introduction.tex @@ -58,16 +58,18 @@ input parameters. \chapter{Methods in image restoration} +\fixme{Rating: 5/10} + There are numerous methods in image restoration, and since we do not -have time or space to discuss them all, we will focus on the ones -related to the anisotropic total variation method considered in this -thesis. +have time nor space to discuss them all, we will focus on the ones +related to the anisotropic total variation method considered later in +this thesis. -In this Chapter, and also in the rest of the thesis we will assume that +In this chapter, and also in the rest of the thesis we will assume that we are given an image $f$ on a rectangular, open domain $\Omega$. The -assumptions on which space this $f$ resides in will vary, but since we -are talking about image restoration, we assume that it includes some -kind of noise. +space in which $f$ resides in will vary, but since we are looking at +methods for image restoration, we assume that it includes some kind of +noise. There are different kinds of noise models for different situations and applications, but we will assume that the given image $f$ is a @@ -82,13 +84,13 @@ fulfills certain smoothness or regularity properties. In any case, we will denote the output of the methods $u$, and loosely discuss their properties. -\fixme{superbad} - \section{Diffusion filtering} -Diffusion filtering is a broad group of filtering or restoration methods +\fixme{Rating: 8/10} + +Diffusion filtering is a broad group of filtering and restoration methods based on physical diffusion processes. The basic idea is to take the -noisy image as initial value of some diffusion process, and then let it +noisy image as the initial value of some diffusion process, and then let it evolve for some time. The most well-known method is probably the Gaussian filter or Gaussian blur, in which one convolves the image with the Gaussian function @@ -122,8 +124,10 @@ vary for different parts of the image. \subsection{Non-linear diffusion filtering} +\fixme{Rating: 8/10} + In the theory of the heat equation one can introduce a \emph{thermal -diffusivity} $\alpha$ such that +diffusivity} $\alpha$ such that the equation becomes \begin{equation} \begin{cases} \partial_t u &= \diver \big( \alpha(u) \nabla u\big) \\ @@ -180,6 +184,9 @@ diffusivity is a tensor, and thus both location and direction dependent. \subsection{Anisotropic diffusion} \label{sec:anisotropic_diffusion} +\fixme{Rating: 7/10, update figure, and refer to it. Maybe even a figure +showing the structure and anisotropy tensors as ellipses along an edge?} + The diffusivity is made directionally dependent by introducing a diffusion \emph{tensor} $A(u)$ such that the initial boundary value problem becomes @@ -264,13 +271,15 @@ problem we hope to avoid in our anisotropic total variation method. \section{Total variation} \label{sec:total_variation} -Total variation image restoration method is usually formulated as a +\fixme{Rating: 8/10, numerical methods: 5/10} + +The total variation image restoration method is usually formulated as a minimization problem \begin{equation} \begin{gathered} - \min_{u \in L^p(\Omega)} F(u) \\ + \min_{u \in L^p(\Omega)} F(u), \\ F(u) = \underbrace{\int_\Omega \abs{u - f}^p \, dx}_{\text{fidelity - term}} + \beta \underbrace{\int_\Omega + term}} {}+{} \beta \underbrace{\int_\Omega \abs{\nabla u} \, dx}_{\mathclap{\text{regularization term}}}, \label{eq:first_min_presentation} @@ -280,7 +289,7 @@ where $p$ is normally taken to be 1 or 2. The fidelity term penalizes images $u$ that are far from the original image $f$, and thus controls the \emph{fidelity} of our solution. The regularization term is the total variation, and minimizing it will -reduce the variation and regularize the image. The $\beta$ parameter +reduce the variation and thus regularize the image. The $\beta$ parameter controls the strength of the regularization. Since we do not only want to consider differentiable images $u \in @@ -308,7 +317,7 @@ variation using the distributional derivative. Note that since $\Omega$ is open and bounded, the test functions $\varphi$ vanish on the boundary of $\Omega$. Thus no variation is -measured across the boundary. As this restoration method is the one +measured at the boundary. As this restoration method is the one which will be extended later in this thesis, we will look a little bit more deeply into the background and the numerical methods relating to it. @@ -329,13 +338,11 @@ $\Omega$.}% Our optimization problem has thus become \begin{equation} \min_{u \in \BV(\Omega)} \int_\Omega \abs{u - v}^p \, dx + \beta \, - \TV(u), + \TV(u). \label{eq:second_min_presentation} \end{equation} -and there are many different numerical methods to find or approximate a -solution. -As with any restoration method, the total variation method also has its +As with any restoration method, the total variation method has its strengths and weaknesses. Its main strength is its ability to recover edges in the input image. The total variation of a section only takes the absolute change into account, and does not favor gradual changes @@ -343,7 +350,7 @@ like the diffusion methods. There is also a theoretical result stating that the set of edges in the solution $u$ is contained in the set of edges in the original image $f$, -thus no new edges are created, \cite{caselles2011total}. However, in the +thus no new edges are created \cite{caselles2011total}. However, in the presence of noise, the method may introduce or rather ``find'' new edges that were not in the original image, since flat sections of zero variation are encouraged by the functional. This effect is called the @@ -372,6 +379,7 @@ restoration. \label{fig:grad_tv} \end{figure} +\fixme{First time we mention level values.} Thin objects and corners may also suffer from contrast loss since bringing them closer to their surroundings in level value reduces the total variation. An example of this is shown in @@ -385,23 +393,25 @@ regularized image. \begin{subfigure}[t]{0.4\textwidth} \centering \includegraphics[width=\textwidth]{fig/finger.png} - \caption{FINGER} \end{subfigure} ~ \begin{subfigure}[t]{0.4\textwidth} \centering \includegraphics[width=\textwidth]{fig/ftv.png} - \caption{TV} \end{subfigure} \caption{% - Example of how the contrast of thin stuff might be reduced when - regularization is too high. \fixme{FIX} + A fingerprint heavily regularized using the total variation + method. The originally white and black ridges have been brought + closer in value, to reduce the total variation. } \label{fig:tv_example} \end{figure} \subsection{Chambolle's dual approach} +\fixme{Maybe give a list of references, instead of seemingly favoring +Chambolle's method.} + A popular approach for solving the minimization problem, is the dual algorithm of Chambolle described in \cite{chambolle2004algorithm}. It has been improved on by others, and also extended to primal-dual @@ -410,6 +420,9 @@ be found in \cite{caselles2011total}. \subsection{Graph cut approach} +\fixme{Could probably be shortened a lot, but I thought it could be +useful to at least give an idea how it is done.} + Using graph cuts is the approach we will be taking later when considering the anisotropic total variation regularization, and it is therefore valuable to briefly look into how graph cuts are used in the diff --git a/results.tex b/results.tex index fde9ef4..c8a0585 100644 --- a/results.tex +++ b/results.tex @@ -45,8 +45,8 @@ tensor construction described earlier, we will look at how a simple predescribed tensor affects the regularization. Imagine a tensor which is a diagonal matrix $A = \operatorname{diag}(1, \epsilon)$, where $\epsilon \ll 1$ is small. This would result in us down-weighting the -size of $\nabla \tilde{f}_\sigma$ in the $y$-direction, and thus -regularizing mostly in the $x$-direction. +size of $\nabla f_\sigma$ in the $y$-direction, and thus regularizing +mostly in the $x$-direction. The results of this experiment can be seen in Figure~\ref{fig:tensor_experiment}, where a noisy picture of a circle @@ -143,7 +143,7 @@ black. \begin{figure} \centering - \includegraphics[width=0.4\textwidth]{fig/wheel.png} + \includegraphics[width=0.3\textwidth]{fig/wheel.png} \caption{% Color wheel. } @@ -282,15 +282,63 @@ too big is bad.} \centering \includegraphics[width=\textwidth]{fig/factory/circle_deform/r_p2_n8_b100000_g10000000000_r1_s1.png} \caption{% - Size of neighborhood: 8. + $\abs{\mathcal{N}} = 8$. } \end{subfigure} ~ \begin{subfigure}[t]{0.30\textwidth} \centering - \includegraphics[width=\textwidth]{fig/factory/circle_deform/r_p2_n32_b100000_g10000000000_r1_s1.png} + \includegraphics[width=\textwidth]{fig/factory/circle_deform/r_p2_n72_b100000_g10000000000_r1_s1.png} \caption{% - Size of neighborhood: 32. + $\abs{\mathcal{N}} = 72$. + } + \end{subfigure} + + \begin{subfigure}[t]{0.30\textwidth} + \centering + \includegraphics[width=\textwidth]{fig/factory/octagon/n_q0.png} + \caption{% + Octagon. + } + \end{subfigure} + ~ + \begin{subfigure}[t]{0.30\textwidth} + \centering + \includegraphics[width=\textwidth]{fig/factory/octagon/r_p2_n8_b100000_g10000000000_r1_s1.png} + \caption{% + $\abs{\mathcal{N}} = 8$. + } + \end{subfigure} + ~ + \begin{subfigure}[t]{0.30\textwidth} + \centering + \includegraphics[width=\textwidth]{fig/factory/octagon/r_p2_n72_b100000_g10000000000_r1_s1.png} + \caption{% + $\abs{\mathcal{N}} = 72$. + } + \end{subfigure} + + \begin{subfigure}[t]{0.30\textwidth} + \centering + \includegraphics[width=\textwidth]{fig/factory/rombus/n_q0.png} + \caption{% + Tilted square. + } + \end{subfigure} + ~ + \begin{subfigure}[t]{0.30\textwidth} + \centering + \includegraphics[width=\textwidth]{fig/factory/rombus/r_p2_n4_b100000_g10000000000_r1_s1.png} + \caption{% + $\abs{\mathcal{N}} = 4$. + } + \end{subfigure} + ~ + \begin{subfigure}[t]{0.30\textwidth} + \centering + \includegraphics[width=\textwidth]{fig/factory/rombus/r_p2_n72_b100000_g10000000000_r1_s1.png} + \caption{% + $\abs{\mathcal{N}} = 72$. } \end{subfigure} \caption{% @@ -313,6 +361,45 @@ deformed to look more like an octagon. This is due to the fact that the exactly in the Cauhcy--Crofton formula, while the length of other lines overestimated as the sum of their three components. +\begin{figure} + \centering + \begin{subfigure}[t]{0.46\textwidth} + \centering + \includegraphics[trim=240 170 110 180,clip=true,width=\textwidth]{fig/factory/lena_neigh/r_p2_n16_b2000_g80_r10_s5.png} + \caption{% + $\abs{\mathcal{N}} = 16$ + } + \end{subfigure} + ~ + \begin{subfigure}[t]{0.46\textwidth} + \centering + \includegraphics[trim=240 170 110 180,clip=true,width=\textwidth]{fig/factory/lena_neigh/r_p2_n72_b2000_g80_r10_s5.png} + \caption{% + $\abs{\mathcal{N}} = 72$ + } + \end{subfigure} + \caption{% + Noisy Lena restored using different neighborhood stencils. + } + \label{fig:lena_neigh} +\end{figure} + +\begin{figure} + \input{fig/pixel_perimeter.tex} +\end{figure} + +As mentioned before, there is another discretization error which relates +to the length of the edges in the neighborhood. Thus a larger +neighborhood is not always better, even if it will reduced the artifacts +discussed above. In Figure~\ref{fig:lena_neigh}, a noisy image of Lena +has been restored using two differently sized neighborhood stencils, and +there are obvious differences. For the stencil of size 72, the restored +image still contains some salt- and pepper-like noise, seemingly very +different from their neighboring pixels. An explanation can be found in +Figure~\ref{boop}, where we see that the length of a one-pixel curve is +very underestimated because so many edges cross over it, and thus ignore +it completely. + \begin{figure} \centering \begin{subfigure}[t]{0.30\textwidth} diff --git a/theory.tex b/theory.tex index cb02987..90eb0df 100644 --- a/theory.tex +++ b/theory.tex @@ -11,7 +11,7 @@ This chapter will be devoted to the continuous formulation of the method. We will look at the functional we want to minimize, its different forms and briefly discuss its well-posedness. Through the coarea formula, the anisotropic total variation is rewritten as an -integral of the perimeter of all the level sets. +integral of the perimeter of all the level sets of the image. Later, the Cauchy--Crofton formula is introduced to make it feasible to calculate the perimeter of these level sets. All of this leads up to the @@ -19,6 +19,8 @@ discretization of our functional in the following chapter. \section{Anisotropic total variation} +\fixme{Rating: 8/10} + The method considered will build on the total variation regularization method of Section~\ref{sec:total_variation}. From anisotropic diffusion in Section~\ref{sec:anisotropic_diffusion} we borrow the idea of making @@ -28,23 +30,25 @@ the anisotropic total variation \TVA(u) = \int_\Omega \sqrt{\nabla u(x)^T A(x) \nabla u(x)} \, dx \label{eq:aniso_tv_sqrt} \end{equation} -for all $u \in C^1(\Omega)$. If $A(x)$ is the identity -matrix we get the regular total variation found in -Definition~\ref{def:tv}. One problem with the regular total variation -method is that when reducing the total variation, it will also try to -reduce the variation over known edges in the image, which can lead to -contrast loss, especially in thin details. By controlling $A(x)$ such -that $\nabla u(x)$ is weighted down across known edges, we hope to -retain the regularization properties of the method while reducing some -of the negative effects. If the variation across an edge is ``ignored'' -by the energy functional, there is no gain in reducing the height of the -edge as before. +for all $u \in C^1(\Omega)$. If $A(x)$ is the identity matrix we get the +regular total variation found in \eqref{eq:first_min_presentation}. One +problem with the regular total variation method is that when reducing +the total variation, it will also try to reduce the variation over known +edges in the image, which can lead to contrast loss, especially in thin +details. By controlling $A(x)$ such that $\nabla u(x)$ is weighted down +across known edges, we hope to retain the regularization properties of +the method while reducing some of the negative effects. If the variation +across an edge is ``ignored'' by the energy functional, there is no gain +in reducing the height of the edge as before. + +Note that $u(x)$ and $A(x)$ are always dependent on the position in the +image $x$, but we will sometimes drop writing the $x$, when no +misunderstandings are possible. As we will not always be working with differentiable images, we extend -the definition of the total variation functional to the space of -functions of bounded variation $\BV(\Omega)$. Being symmetric positive -definite, the matrix $A(x)$ can be factored into two symmetric matrices -as $A(x) = \Ahalf(x) \Ahalf(x)$. We can then write +the definition of the total variation functional. Being symmetric +positive definite, the matrix $A(x)$ can be factored into two symmetric +matrices as $A(x) = \Ahalf(x) \Ahalf(x)$. We can then write \begin{align} \TVA(u) &= \int_\Omega \abs{\Ahalf \nabla u} \, dx \\ &= \sup_{\abs{\xi(x)} @@ -90,18 +94,23 @@ solution methods. \subsection{Anisotropy tensor} \label{sec:anisotropy_tensor} +\fixme{Rating: 6/10} + \fixme{% We also discuss whether to use the noisy image (yes, probably), or the smoothed image (implicitly, complicated, possible iteratively) in the structure tensor. } +\fixme{Using $\abs{v}$ for vector length has apparently spread from the +initial total variation $\abs{\nabla u}$.} + There are many possible choices for the anisotropy tensor $A(x)$. Our constraints are that we have assumed it to be symmetric positive definite, and we have some wishes for its properties. We would first and -foremost like it to down-weight the effect of $\nabla u$ in -\eqref{eq:aniso_tv_sqrt} across true edges, while maintaining normal -regularization properties in smooth sections. +foremost like it to down-weight $\nabla u$ in \eqref{eq:aniso_tv_sqrt} +across true edges, while maintaining normal regularization properties in +smooth sections. By true edges we mean that that we do not want the tensor to be sensitive to noise in the image, and thus find edges where there are @@ -121,8 +130,8 @@ detecting edges, but it can not give us information about larger structures, like corners and textures, which is why we introduce the structure tensor \begin{equation} - S_\rho(x) := K_\rho * \left( \nabla f_\sigma(x) \otimes - \nabla f_\sigma(x) \right). + S_\rho(x) := K_\rho * \big( \nabla f_\sigma(x) \otimes + \nabla f_\sigma(x) \big). \label{eq:s_def} \end{equation} @@ -137,15 +146,13 @@ the structure tensor \end{figure} First consider the tensor $S_0(x) = \nabla f_\sigma(x) \otimes -\nabla f_\sigma(x)$. It obviously contains the same information -as the edge detector itself. Its eigenvalues will be 0 and $\labs{\nabla -f_\sigma(x)}^2$ with corresponding eigenvectors $v_1$ and $v_2$ -perpendicular and parallel to $\nabla f_\sigma(x)$ respectively. -Figure~\ref{fig:edges} shows that the largest eigenvalue of the -structure tensor is a good edge detector. +\nabla f_\sigma(x)$. It obviously contains no more information +than the edge detector itself. Its eigenvalues will be 0 and +$\labs{\nabla f_\sigma(x)}^2$ with corresponding eigenvectors $v_1$ and +$v_2$ perpendicular and parallel to $\nabla f_\sigma(x)$ respectively. We are also interested in identifying and being sensitive to features in -a neighborhood around the point, such as corners or curved edges and +a neighborhood around the point $x$, such as corners or curved edges and \fixme{coherent structures}. This is why we introduce the convolution with $K_\rho$, which is done component-wise. The parameter $\rho$, called the \emph{integration scale} thus controls the size of the neighborhood @@ -161,7 +168,7 @@ s_{12} \\ s_{12} & s_{22} \end{smallmatrix})$ we obtain a closed form expression for the eigenvalues \begin{equation} \lambda = \frac{1}{2} \left( s_{11} + s_{22} \pm \sqrt{(s_{11} - - s_{22})^2 + 4 s_{12}^2} \right) + s_{22})^2 + 4 s_{12}^2} \right). \label{eq:s_eigenvalues} \end{equation} @@ -171,11 +178,8 @@ neighborhood. From this we see that an edge would give $\lambda_1 \gg \lambda_2 \approx 0$, while smooth areas would give $\lambda_1 \approx \lambda_2 \approx 0$. In corners we have variation in the direction of $v_1$ but also perpendicular to $v_1$, so we will have $\lambda_1 -\approx \lambda_2 \gg 0$. - -These eigenvalues indicate that the product $\nabla u^T S_\rho(x) \nabla -u$ would amplify the effect of $\nabla u$ across edges, the opposite of -what we want. +\approx \lambda_2 \gg 0$. Thus the quantity $(\lambda_1 - \lambda_2)^2$ +will be large around edges and small in smooth or non-coherent areas. We begin our anisotropy tensor construction by eigendecomposing the structure tensor as @@ -186,7 +190,7 @@ where $\Lambda(x)$ is a matrix with the eigenvalues of $S_\rho(x)$ on the diagonal, while $U(x)$ is a rotation matrix and has the eigenvectors of $S_\rho(x)$ as its columns. -The eigen-decomposition gave us +The eigen-decomposition give us \begin{equation} \Lambda(x) = \begin{pmatrix} \lambda_1 & 0 \\ @@ -211,22 +215,33 @@ the norm across edges, we need $\sigma_1 \leq \sigma_2$, so we construct \end{aligned} \label{eq:sigma_construction} \end{equation} -This way, $\sigma_1 \in (0, 1]$. -The rotation is kept, while the size of the eigenvalues are changed. -This should be visualized, with a figure showing the length and -direction of the eigenvalues in the area around an edge. +This way, $\sigma_1 \in (0, 1]$. The rotation is kept, while the size of +the eigenvalues are changed. + +\fixme{% + Discuss $\omega$. Discuss other tensor choices, the coherency thing + from Weickert. Discuss that this is not optimal in corners. +} Note that in smooth parts of the image we have $\sigma_1 \approx \sigma_2 = 1$ and the anisotropic total variation is close to the regular total variation. +\fixme{% + This should be visualized, with a figure showing the length and + direction of the eigenvalues in the area around an edge. +} + \fixme{% The numerical problems should be discussed somewhere but maybe not - here. The eigenvalues are extracted such that + here. } \section{Well-posedness} +\fixme{Rating: 7/10, can give more references maybe, and be more +specific on the ``problems.''} + The theory of existence and uniqueness for these kinds of variational methods is a minefield of more or less subtle problems. Even if we restrict ourself to a nice space such as $L^2(\Omega)$ we will at some @@ -237,25 +252,26 @@ with a reference to further theory. The basic things we ask of our functional \begin{equation} - F(u) = \int_\Omega (u - v)^2 + \beta \, \TVA(u) + F(u) = \int_\Omega (u - f)^2 + \beta \, \TVA(u) \end{equation} are lower semicontinuity and coercivity for existence and convexity for uniqueness. We restrict ourself to $L^2(\Omega)$, and leave the extension to $\BV(\Omega)$ to -someone else \fixme{ref}. +someone else \fixme{Ref, and is it really an extension? More like a +constriction?} \subsection{Convexity} -We start with convexity as it is the easiest to show. The fidelity term -of our functional +We start with convexity as it is the easiest to show. Being quadratic, +the fidelity term of our functional \begin{equation} - \int_\Omega (u - v)^2 \, dx + \int_\Omega (u - f)^2 \, dx \end{equation} is obviously strictly convex. It can be shown by expanding and rearranging the strict convexity condition \begin{equation} - \int_\Omega (\lambda x + (1-\lambda)y - v)^2 \, dx < \lambda - \int_\Omega (x - v)^2 \, dx + (1 - \lambda) \int_\Omega (y - v)^2 \, + \int_\Omega (\lambda x + (1-\lambda)y - f)^2 \, dx < \lambda + \int_\Omega (x - f)^2 \, dx + (1 - \lambda) \int_\Omega (y - f)^2 \, dx \end{equation} to obtain that it is equivalent to @@ -269,16 +285,16 @@ The anisotropic total variation \TVA(u) = \sup_{\norm{\xi}_A^* \leq 1} \int_\Omega u \diver \xi \, dx \end{equation} -can be thought of as - and has the properties of - a norm, and is therefore -convex. The sum of the two is thus strictly convex, which, given the -existence of a minimizer, implies uniqueness. +can be thought of as -- and has the properties of -- a norm, and is +therefore convex. The sum of the two is thus strictly convex, which, +given the existence of a minimizer, implies uniqueness. \subsection{Coercivity} We need coercivity to show that we cannot go further and further away to obtain a better and better solution. This means that $\lnorm{u}_{L^2} \to \infty$ should imply that $F(u) \to \infty$, which is obvious from the -fidelity term for some fixed $v \in L^2(\Omega)$. +fidelity term for some fixed $f \in L^2(\Omega)$. From the coercivity we can conclude that we should be able to find some near-minimal solutions somewhere in $L^2(\Omega)$ without ``going too far @@ -290,6 +306,8 @@ away.'' \subsection{Lower semi-continuity} +\fixme{Find something else than $f$ for the example.} + The lower semicontinuity is the most tricky part, and this is where we will take some shortcuts. Lower semicontinuity for a functional $F$ at a point $u$ means that at points $u_\epsilon$ close to $u$, the functional @@ -304,12 +322,14 @@ functional which is continuous with respect to sequences is not necessarily continuous with respect to the underlying topology. In other words, in these spaces, there is a difference between sequential continuity and topological continuity. Topological continuity implies -sequential continuity, but not the other way. One way to get around this -would be to consider topological \emph{nets}, an extension of sequences, -but we will stick to proving sequential lower semi-continuity and -referring to further theory. For further reading on the theory of -sequential versus topological continuity see for example Megginson's -book on Banach space theory \cite{megginson}. +sequential continuity, but not the other way around. One way to get +around this would be to consider topological \emph{nets}, an extension +of sequences, but for simplicity, and because it might not add much to +the understanding of the restoration method, we will stick to proving +sequential lower semi-continuity and referring to further theory. For +further reading on the theory of sequential versus topological +continuity see for example Megginson's book on Banach space theory +\cite{megginson}. \fixme{We consider the weak topology. Because it is convenient?} @@ -337,6 +357,7 @@ semi-continuous, we present a much needed result. where all the $F_i$ are sequentially weakly lower semi-continuous, then $F$ is sequentially weakly lower semi-continuous, meaning that for any sequence $u_k \rightharpoonup u$ we have $F(u) \leq \liminf_k F(u_k)$. + \label{lem:sup_semi_cont} \end{lemma} \begin{proof} For any sequence $u_k \rightharpoonup u$ in $L^2(\Omega)$ we have @@ -357,7 +378,7 @@ semi-continuous, we present a much needed result. \end{proof} From our functional in \eqref{eq:first_anisotropic_functional}, we first -consider the fidelity term +consider the fidelity term, and rewrite it as a supremum \begin{equation} \int_\Omega (u - v)^2 \, dx %= \sup_{\substack{\xi \in L^2(\Omega) \\ \norm{\xi}_{L^2} \leq @@ -367,7 +388,8 @@ consider the fidelity term \end{equation} As the map $u \mapsto \int_\Omega (u - v) \xi\, dx$ is continuous in the weak topology, the fidelity term is then a supremum of weakly continuous -functionals, and is thus sequentially lower semi-continuous. +functionals, and is thus by Lemma~\ref{lem:sup_semi_cont} sequentially +lower semi-continuous. For the regularization term the approach is similar. With our extended definition from \eqref{eq:extended_tv}, we have @@ -379,19 +401,25 @@ definition from \eqref{eq:extended_tv}, we have \end{equation} This is again is a supremum of weakly continuous functionals. Thus the regularization term -is also sequentially weakly lower semi-continuous. +is by Lemma~\ref{lem:sup_semi_cont} also sequentially weakly lower +semi-continuous. The usual ways of going from coercivity and lower semicontinuity to existence do not work in infinite dimensions. But with our coercivity and sequential lower semi-continuity we can apply \fixme{Theorem 5.1 in -\cite{scherzer2008variational}}. +\cite{scherzer2008variational}} to conclude that we have existence. \section{Anisotropic coarea formula} +\fixme{Rating: 6.5/10, especially the part after the proof needs some +work.} + +\fixme{More flow between the sections. Somehow.} + The anisotropic coarea formula we will present here allows us, as in the -Euclidean case, to write the anisotropic total variation as an integral -over the levels of the image. First we define the thresholded image at -level $s$. +Euclidean case \fixme{we removed the Euclidean one}, to write the +anisotropic total variation as an integral over the levels of the image. +First we define the thresholded image at level $s$. \begin{definition}[Thresholded image] The thresholded image at level $s$ is the function \begin{equation} @@ -402,16 +430,22 @@ level $s$. \end{equation} \label{def:thresholded_image} \end{definition} -This will be used throughout the rest of the thesis and allows us to -write a non-negative image $u \geq 0$ as an integral over all the layers +This will be used throughout the rest of the thesis. Note that given the +thresholded image for every level, we are able to reconstruct the image +as +\begin{equation} + u(x) = \sup \left\{ s : u^s(x) = 1 \right\}. +\end{equation} +The thresholded image definition also allows us to write a non-negative +image $u \geq 0$ as an integral over all the layers \begin{equation} u = \int_0^\infty u^s \, ds. \label{eq:positive_int} \end{equation} Note that \eqref{eq:positive_int} only holds for a non-negative image, -something which has to be worked around in the proof of the coarea -formula. For the proof we will avoid measure theory and follow a proof -given in \cite{olsson2009extending}. +something which has to be worked around in the proof of the anisotropic +coarea formula. For the proof we will avoid measure theory and follow a +proof given in \cite{olsson2009extending}. \begin{figure} \input{fig/eta_r} @@ -429,7 +463,7 @@ given in \cite{olsson2009extending}. \begin{proof} Assume that $u \in C^1(\Omega) \cap \BV(\Omega)$. The extension to all functions $u \in \BV(\Omega)$ can be made by approximation - arguments but will not be considered here. + arguments but will not be considered here. \fixme{ref maybe} \paragraph{First we prove that $\TVA(u) \leq \int_{-\infty}^\infty \TVA(u^s) \, ds$.} @@ -452,7 +486,7 @@ given in \cite{olsson2009extending}. For $u \leq 0$ we use that $\TVA(-v) = \TVA(v)$ and that $\TVA(c + v) = \TVA(v)$ for any constant $c$. Note that $-u \geq 0$ and that its thresholded image $(-u)^s$ will be exactly the opposite of $u^{-s}$, - that is, $(-u)^s = 1 - u^{-s}$. This allows us to show that + that is $(-u)^s = 1 - u^{-s}$. This allows us to show that \begin{equation} \begin{aligned} \TVA(u) &= \TVA(-u) \leq \int_0^\infty \TVA \big( (-u)^r @@ -500,10 +534,10 @@ given in \cite{olsson2009extending}. \end{equation} and note that $m(\infty) = \TVA(u)$. Since $m(t)$ is non-decreasing with $t$, we can apply the existence theorems of Lebesgue \cite[Thm.\ - 17.12, 18.14]{hewstrom} to conclude that $m'(t)$ exists almost + 17.12, 18.14]{hewstrom} to conclude that $m\prime(t)$ exists almost everywhere and that the following inequality holds: \begin{equation} - \int_{-\infty}^\infty m'(t)\, dt \leq m(\infty) - m(-\infty) = + \int_{-\infty}^\infty m\prime(t)\, dt \leq m(\infty) - m(-\infty) = \TVA(u). \label{eq:tva_geq_mder} \end{equation} @@ -520,7 +554,7 @@ given in \cite{olsson2009extending}. $\eta_r$ with our image $u$ and Green's identity we obtain \begin{equation} \int_\Omega - \eta_r(u) \diver \xi \, dx - = \int_\Omega \eta_r'(u) \nabla u\cdot \xi \, dx + = \int_\Omega \eta_r\prime(u) \nabla u\cdot \xi \, dx = \frac{1}{r} \int_{\{ s \leq u \leq s + r \}} \nabla u\cdot \xi \, dx, \end{equation} @@ -539,7 +573,7 @@ given in \cite{olsson2009extending}. As the limit of the left-hand side when $r \to 0$ exists almost everywhere, suppose it exists at $s \in \mathbb{R}$, then \begin{equation} - m'(s) \geq - \int_\Omega u^s \diver \xi \, dx + m\prime(s) \geq - \int_\Omega u^s \diver \xi \, dx \end{equation} since $\eta_r(u) \to u^s$ when $r \to 0$. As this holds for any $\norm{\xi}_A^* \leq 1$, we get from the extended total variation @@ -558,7 +592,7 @@ total variation into an easily discretizisable expression. The anisotropic total variation of the thresholded images occurring in the anisotropic coarea formula are very much related to the size of the boundary of the level set, as the only variation in a characteristic -function, occurs at the boundary of the set. This is why we introduce +function occurs at the boundary of the set. This is why we introduce the following definition of the anisotropic set perimeter. \begin{definition}[The anisotropic set perimeter] Given an anisotropy tensor $A$ the anisotropic perimeter of a set @@ -616,6 +650,12 @@ definition of the TV.} \section{Cauchy--Crofton formulas} +\fixme{Rating: 6/10, comment in the beginning that we are actually going +to introduce two formulas. The transition between the two can be +smoother as well. And we should refer to maybe Do Carmo, or sketch a +proof of the Euclidean one. The stuff after the proof could use some +work.} + \begin{figure} \input{fig/line_param} \end{figure} @@ -624,9 +664,9 @@ In the fields of integral theory and geometric measure theory there are a number of interesting integral formulas. Several of them fall in a category often referred to as \emph{Cauchy--Crofton style formulas}, and give ways to measure geometric objects using the set of all lines in the -plane. The formulas presented here will give a way to measure a curve by -counting the times it intersects line in the set of all lines. -Intuitively, a long curve will intersect more lines. +plane. The formulas presented here will give a way to measure the length +of a curve by counting the times it intersects line in the set of all +lines. Intuitively, a long curve will intersect more lines. We write $\mathcal{L}$ for the set of all straight lines in the plane, and parametrize them as shown in Figure~\ref{fig:line_param}. Thus a @@ -637,10 +677,9 @@ the line instead of the angle parameter $\phi$. We will write a line $\ell_{\phi, \rho} = \ell_{\nu, \rho}$ where $\nu$ is a unit vector along the line, i.e.\ $\nu = (-\sin \phi, \cos \phi)^T$. By defining the measure on this set $d\mathcal{L} = \dpdr$ we are ready to introduce the -Cauchy--Crofton formula, which gives us a way to calculate the length of -a curve by looking at the measure of the set of lines that intersect the -curve. Note that the measure $d\mathcal{L}$ is invariant under rigid -motions, meaning combinations of translations and rotations. +Cauchy--Crofton formula. Note that the measure $d\mathcal{L}$ is +invariant under rigid motions, meaning combinations of translations and +rotations. \nomenclature{$\mathcal{L}$}{The set of all straight lines in the plane.}% \nomenclature{$\ell_{\phi, \rho}$}{A line given by the angle of the @@ -980,8 +1019,10 @@ anisotropic perimeter is calculated by integrating the norm of the \emph{normal vector} around the boundary, while the anisotropic curve length in \eqref{eq:riemannian_length} is the integral of the norm of the \emph{tangent vector} of the curve. The normal and tangent vector -are always perpendicular, so all we need is a 90\textdegree{} rotation. -If $P$ is a 90\textdegree{} rotation matrix we have +are always perpendicular, so all we need is a 90\textdegree{} rotation, +assuming that the tangent vector is unit length. It will be if it arises +from an arc length parametrization of the boundary. If $P$ is a +90\textdegree{} rotation matrix we have \begin{equation} \begin{aligned} \PerA(U; \Omega) &= \int_{\partial U} \sqrt{\langle @@ -996,9 +1037,9 @@ If $P$ is a 90\textdegree{} rotation matrix we have \label{eq:per_to_length1} \end{equation} We simplify the equation by defining the metric tensor $M(x) = P A(x) -P^T$ and let $\gamma = \partial U$ be an arclength parametrization of +P^T$ and letting $\gamma = \partial U$ be an arclength parametrization of the boundary of $U$. Observe that a 90\textdegree{} rotation of the -normal $\nu_{\partial U}$ gives us the tangent $\pm \dot{\gamma}$. +normal $\nu_{\partial U}$ gives us the tangent $\dot{\gamma}$. Inserting this into \eqref{eq:per_to_length1} we get \begin{equation} \PerA(U; \Omega) = \int_\gamma \sqrt{\langle \dot{\gamma}, M(x) \, @@ -1007,7 +1048,7 @@ Inserting this into \eqref{eq:per_to_length1} we get \end{equation} Note that since $\Omega$ is open, we assume that $\gamma = \partial U \subset \Omega$ and thus $\gamma$ can not include parts of the boundary -of $\Omega$. +of $\Omega$. \fixme{rewrite} Now we make sure that all the assumptions of the Riemannian Cauchy--Crofton formula in Theorem~\ref{thm:riemannian_cauchy_crofton} @@ -1028,7 +1069,7 @@ elements in the structure tensor $S_\rho(x)$. The extreme value theorem \fixme{ref} states that a continuous real-valued function on a nonempty compact space is bounded above. Thus the eigenvalues $\lambda_1$ and $\lambda_2$ of $S_\rho(x)$ -are bounded from above and by the construction in +are bounded above and by the construction in \eqref{eq:sigma_construction}, the smallest eigenvalue of our anisotropy tensor $A(x)$ is bounded away from zero as \begin{equation} @@ -1058,15 +1099,17 @@ $\det A = \det PAP^T = \det M$, and from our eigendecomposition in amounts to switching the two eigenvalues $\sigma_1$ and $\sigma_2$ in $\Sigma$. +\fixme{Small summary, complete functional, tensor construction.} \chapter{Discrete formulation} The whole transformation from the initial functional in -\eqref{eq:first_anisotropic_functional} through the coarea formula and -the Cauchy--Crofton formula was motivated by the discretization which -will be described here. The coarea formula allows us to minimize the -functional for each level separately, while the Cauchy--Crofton formula -gives a feasible way of calculating the perimeter of each level set. +\eqref{eq:first_anisotropic_functional} through the anisotropic coarea +formula and the Cauchy--Crofton formula was motivated by the +discretization which will be described here. The anisotropic coarea +formula allows us to minimize the functional for each level separately, +while the Cauchy--Crofton formula gives a feasible way of calculating +the perimeter of each level set. The integrals we had in \fixme{ref} will be approximated by discrete sums, and we will be careful to discretize in a way which is consistent @@ -1074,16 +1117,22 @@ with the initial continuous formulation. \section{Discretization} -We assume that our discrete images are given on a grid $\mathcal{G}$, +\fixme{Rating: 4/10} + +\fixme{Sometimes I write uniform grid, and sometimes regular. Uniform is +probably better.} + +We assume that our discrete images are given on a uniform grid $\mathcal{G}$, where each discrete point is called a pixel and we further assume that -each \emph{pixel} takes a value in the set of levels $\mathcal{P} = \{0, -\hdots, L-1\}$. This is a reasonable assumption for grayscale images. -(\fixme{repeated}). We now want to discretize the energy function in -\eqref{eq:continuous_energy}. In addition, we want to decompose the -energyfunction as a sum over all the levels $\mathcal{P}$. +each pixel takes a value in the set of levels $\mathcal{P} = \{0, +\hdots, L-1\}$. This is a reasonable assumption for digital grayscale +images. We now want to discretize the energy function in +\eqref{eq:continuous_energy}. \subsection{Fidelity term} +\fixme{Rating: 7/10} + Since it is not affected by our introduction of the anisotropy tensor, the fidelity term can be discretized as in my project work \cite{project}. For some pixel position $x \in \mathcal{G}$ and some @@ -1121,13 +1170,16 @@ rewrite \eqref{eq:fidelity_approx_1} and obtain \big( N_x(\lambda + 1) - N_x(\lambda) \big) \, u_x^\lambda + N_x(0). \end{equation} As our domain is discretized uniformly, we drop the constant -$\Delta x$, and absorb it into our parameter $\beta$. Note that since +$\Delta x$, and absorb it into our parameter $\beta$ of +\eqref{eq:first_anisotropic_functional}. Note that since our image takes values in $\mathcal{P} = \{0, \hdots, L-1\}$, the thresholded image $u^{L-1}$ is equal to zero everywhere. \subsection{Regularization term} \label{sec:disc_regularization} +\fixme{Rating: 6/10} + Discretizing the regularization term is more challenging. We introduce the discrete levels to get \begin{equation} @@ -1136,8 +1188,8 @@ the discrete levels to get \, \Delta \lambda. \label{eq:per_approx1} \end{equation} -Note that we will later ignore the $\Delta \lambda$ difference, as we can -just absorb it into the $\beta$ parameter of +As with the $\Delta x$ difference, we can absorb the $\Delta \lambda$ +difference into the $\beta$ parameter of \eqref{eq:first_anisotropic_functional}. The perimeter is then calculated using a discretized version of the Cauchy--Crofton formula introduced in Theorem~\ref{thm:riemannian_cauchy_crofton}. Again, we @@ -1187,8 +1239,8 @@ Moreover, the level sets $\{ u > \lambda\}$ will be functions taking the value of 0 or 1 on this grid, as shown in Figure \fixme{ref}. The choice of our discrete set of lines $\mathcal{L}_D$ is important, as -it will decide the accuracy of our approximation in -\eqref{eq:cauchy_crofton_approx1}. We need some sensible restrictions on +it will decide the accuracy of our approximation. +We need some sensible restrictions on the set $\mathcal{L}_D$ to simplify the further discussion. All lines intersect at least two grid points, and from the periodicity of our grid they thus intersect an infinite number of grid points. This puts some @@ -1353,10 +1405,10 @@ this requirement.} \fixme{maybe with a $w_{xy}$ definition} -\fixme{edges here are a bit different from edges later} - \subsubsection{Consistency} +\fixme{Rating: 6/10} + Consistency relates to how well a solution to the continuous problem fits in the discretized equation, in other words, whether the discretized equation approximates the continuous one.