Thread: SVN Commit by andreas: r4785 - in branches/REL-1_4_0_PATCHES/pgadmin3: . src/ctl src/include/images

Author: andreas
Date: 2005-12-02 12:35:49 +0000 (Fri, 02 Dec 2005)
New Revision: 4785

Modified:
   branches/REL-1_4_0_PATCHES/pgadmin3/CHANGELOG.txt
   branches/REL-1_4_0_PATCHES/pgadmin3/src/ctl/explainShape.cpp
   branches/REL-1_4_0_PATCHES/pgadmin3/src/include/images/ex_scan.xpm
Log:
Graphical explain: distinct scan images


Modified: branches/REL-1_4_0_PATCHES/pgadmin3/CHANGELOG.txt
===================================================================
--- branches/REL-1_4_0_PATCHES/pgadmin3/CHANGELOG.txt    2005-12-02 10:06:55 UTC (rev 4784)
+++ branches/REL-1_4_0_PATCHES/pgadmin3/CHANGELOG.txt    2005-12-02 12:35:49 UTC (rev 4785)
@@ -20,6 +20,7 @@
 <ul>
     <li>2005-12-02 DP  1.4.1  Drop constraints on columns before the columns themselves [Miha Radej]
     <li>2005-12-01 AP  1.4.1  Deal with incompatible wx2.6.2 API changes (comboboxes)
+    <li>2005-11-30 AP  1.4.1  Graphical explain: distinct scan images
     <li>2005-11-25 DP  1.4.1  Fix the server status SQL query
     <li>2005-11-25 FGP 1.4.1  Include pg_dump/pg_restore in the Mac OSX bundle
     <li>2005-11-20 DP  1.4.1  Use a proper 'Save As' style dialogue for selecting backup files

Modified: branches/REL-1_4_0_PATCHES/pgadmin3/src/ctl/explainShape.cpp
===================================================================
--- branches/REL-1_4_0_PATCHES/pgadmin3/src/ctl/explainShape.cpp    2005-12-02 10:06:55 UTC (rev 4784)
+++ branches/REL-1_4_0_PATCHES/pgadmin3/src/ctl/explainShape.cpp    2005-12-02 12:35:49 UTC (rev 4785)
@@ -32,6 +32,10 @@
 #include "images/ex_join.xpm"
 #include "images/ex_aggregate.xpm"
 #include "images/ex_scan.xpm"
+#include "images/ex_index_scan.xpm"
+#include "images/ex_tid_scan.xpm"
+#include "images/ex_bmp_index.xpm"
+#include "images/ex_bmp_heap.xpm"
 #include "images/ex_sort.xpm"
 #include "images/ex_group.xpm"
 #include "images/ex_subplan.xpm"
@@ -145,8 +149,11 @@

     wxStringTokenizer tokens(str, wxT(" "));
     wxString token = tokens.GetNextToken();
+    wxString token2 = tokens.GetNextToken();
+    wxString token3 = tokens.GetNextToken();
     wxString descr = costPos > 0 ? str.Left(costPos) : str;

+    // possible keywords can be found in postgresql/src/backend/commands/explain.c

     if (token == wxT("Total"))              return 0;
     else if (token == wxT("Result"))        s = new ExplainShape(ex_result_xpm, descr);
@@ -155,24 +162,16 @@
     else if (token == wxT("Merge"))         s = new ExplainShape(ex_merge_xpm, descr);
     else if (token == wxT("Hash"))
     {
-        token=tokens.GetNextToken();
-        if (token == wxT("Join"))
+        if (token2 == wxT("Join"))
             s = new ExplainShape(ex_join_xpm, descr);
         else
         {
-            token=tokens.GetNextToken();
-            if (token == wxT("Join"))
+            if (token3 == wxT("Join"))
                 s = new ExplainShape(ex_join_xpm, descr);
             else
                 s = new ExplainShape(ex_hash_xpm, descr);
         }
     }
-    else if (token == wxT("Seq") || token == wxT("Index") || token == wxT("Tid"))
-    {
-        token = tokens.GetNextToken();
-        if (token == wxT("Scan"))           s = new ExplainShape(ex_scan_xpm, descr, 3, 2);
-        else if (token == wxT("Seek"))      s = new ExplainShape(ex_seek_xpm, descr, 3, 2);
-    }
     else if (token == wxT("Subquery"))      s = new ExplainShape(ex_subplan_xpm, descr, 0, 2);
     else if (token == wxT("Function"))      s = new ExplainShape(ex_result_xpm, descr, 0, 2);
     else if (token == wxT("Materialize"))   s = new ExplainShape(ex_materialize_xpm, descr);
@@ -186,6 +185,19 @@

     else if (token == wxT("Limit"))         s = new ExplainShape(ex_limit_xpm, descr);

+    else if (token == wxT("Bitmap"))
+    {
+        if (token == wxT("Index"))          s = new ExplainShape(ex_bmp_index_xpm, descr, 3, 2);
+        else                                s = new ExplainShape(ex_bmp_heap_xpm, descr, 3, 2);
+    }
+    else if (token2 == wxT("Scan"))
+    {
+        if (token == wxT("Index"))          s = new ExplainShape(ex_index_scan_xpm, descr, 3, 2);
+        else if (token == wxT("Tid"))       s = new ExplainShape(ex_tid_scan_xpm, descr, 3, 2);
+        else                                s = new ExplainShape(ex_scan_xpm, descr, 3, 2);
+    }
+    else if (token2 == wxT("Seek"))         s = new ExplainShape(ex_seek_xpm, descr, 3, 2);
+
     if (!s)
         s = new ExplainShape(ex_unknown_xpm, descr);


Modified: branches/REL-1_4_0_PATCHES/pgadmin3/src/include/images/ex_scan.xpm
===================================================================
--- branches/REL-1_4_0_PATCHES/pgadmin3/src/include/images/ex_scan.xpm    2005-12-02 10:06:55 UTC (rev 4784)
+++ branches/REL-1_4_0_PATCHES/pgadmin3/src/include/images/ex_scan.xpm    2005-12-02 12:35:49 UTC (rev 4785)
@@ -1,185 +1,181 @@
 /* XPM */
-static char *ex_scan_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"50 50 129 2",
-"   c #44BDE9",
-".  c #DCC182",
-"X  c #E2D08E",
-"o  c #EADDAA",
-"O  c #DABB7E",
-"+  c #E6D4A4",
-"@  c #EEE6B3",
-"#  c #F0E8C2",
-"$  c #EBE59E",
-"%  c #D6E9F5",
-"&  c #54C2EA",
-"*  c #EADDAB",
-"=  c #86D4F0",
-"-  c #E8DE99",
-";  c #E8D7A6",
-":  c #E9E09A",
-">  c #82D1ED",
-",  c #96D9F1",
-"<  c #EAD9B6",
-"1  c #38B7E5",
-"2  c #E2CE8C",
-"3  c #E6D2A2",
-"4  c #A6DEF2",
-"5  c #92D6EF",
-"6  c #DEC686",
-"7  c #EDE5B1",
-"8  c #E4CD9E",
-"9  c #E6D894",
-"0  c #E4CE9F",
-"q  c #E5D693",
-"w  c #CDE5F2",
-"e  c #75CEEF",
-"r  c #C5E1EF",
-"t  c #ECDEBA",
-"y  c #EFE9B4",
-"u  c #D1E7F2",
-"i  c #1BAEE3",
-"p  c #F0ECB7",
-"a  c #DEC484",
-"s  c #E1CC8B",
-"d  c #E9DAA9",
-"f  c #E8D7A7",
-"g  c #F4F0C8",
-"h  c #E7DA96",
-"j  c #7BCEED",
-"k  c #ECE3B0",
-"l  c #ECE2AF",
-"z  c #EFE6C0",
-"x  c #DCBE80",
-"c  c #05A7E1",
-"v  c #CAE3F0",
-"b  c #C2E0EE",
-"n  c #ECE1AE",
-"m  c #EAE39C",
-"M  c #8ED4EE",
-"N  c #E4D491",
-"B  c #E0C988",
-"V  c #E7DC97",
-"C  c #EFEBB6",
-"Z  c #EEE2BD",
-"A  c #ECDCB8",
-"S  c #BEDEED",
-"D  c #ADD6E9",
-"F  c #6BC7E8",
-"G  c #F2ECC5",
-"H  c #E1CB8A",
-"J  c #F1EAC4",
-"K  c #EDE1BC",
-"L  c #EFE5C0",
-"P  c #F3EEC7",
-"I  c #E0CA89",
-"U  c #E4D591",
-"Y  c #DDC383",
-"T  c #C7AA75",
-"R  c #ECE0AD",
-"E  c #92AED1",
-"W  c #E9DBAA",
-"Q  c #E5D0A1",
-"!  c #E4D390",
-"~  c #EFE4BF",
-"^  c #75A6C7",
-"/  c #E9D9A8",
-"(  c #7296A1",
-")  c #EFE8B3",
-"_  c #E6D1A2",
-"`  c #E6D1A1",
-"'  c #E3CB9E",
-"]  c #E6D3A3",
-"[  c #E6D995",
-"{  c #DFC787",
-"}  c #EFEAB5",
-"|  c #F3EDC6",
-" . c #ECDDBA",
-".. c #DFC888",
-"X. c #EBDAB7",
-"o. c #E3CC9E",
-"O. c #66C8EC",
-"+. c #EDDFBB",
-"@. c #AFE1F3",
-"#. c #CBE4F1",
-"$. c #C7E3F0",
-"%. c #EEE3BD",
-"&. c #C0DFEE",
-"*. c #6FCDEE",
-"=. c #E1EFF7",
-"-. c #C8E3F0",
-";. c #79D0EF",
-":. c #D3E8F3",
-">. c #D4E9F4",
-",. c #E7D6A6",
-"<. c #E7D5A5",
-"1. c #6AC9EC",
-"2. c #6FCAEB",
-"3. c #B9DBEC",
-"4. c #E3D28F",
-"5. c #EDE6B2",
-"6. c #5FC6EB",
-"7. c #F3EFC7",
-"8. c #EBDFAD",
-"9. c #4DC1E9",
-"0. c #E5D894",
-"q. c #EBDCB8",
-"w. c #50BEE7",
-"e. c #57C1E7",
-"r. c #6696D1",
-"t. c #3688C1",
-"y. c #C18F36",
-"u. c #D0D0D0",
-"i. c None",
-/* pixels */
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.^ t.t.t.t.t.^ t.t.t.t.t.^ t.t.t.t.t.^ t.t.t.t.t.^ t.t.t.t.t.^ i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.t.*.      e t.;.& & & = t.= O.1.2., t., j > > 4 t.4 M 5 5 @.t.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.t.  c c c 9.t.9.i i i 6.t.6.1 1 1 2.t.j w.e.e.> t.M F F 2.5 t.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.t.*.      e t.;.& & & = t.= O.1.2., t., j > > 4 t.4 M 5 5 @.t.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.( t.t.t.t.t.( t.t.t.t.t.( t.t.t.t.t.( t.t.t.t.t.( t.t.t.t.t.( i.i.i.i.i.",
-"i.i.i.i.i.i.i.E r.r.E i.i.i.y.g p p p g y.g p p C g y.7.y y y | y.| @ @ @ J y.J k k k J y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.=.=.r.i.i.i.y.p $ $ $ p y.p m m m } y.y : : : ) y.@ - V V 7 y.k [ 9 q R y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.% % r.i.i.i.y.p $ $ $ p y.C m m m y y.y : : - @ y.@ V V h k y.l 0.q q R y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.% % r.i.i.i.y.p $ $ $ C y.} m m m y y.) - - - @ y.7 h h [ k y.n q U U 8.y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.% % r.i.i.i.y.g p C C 7.y.7.y y y | y.| @ @ 5.J y.J k k l # y.# R 8.8.z y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.>.>.r.i.i.i.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.>.>.r.i.i.i.y.g } } y 7.y.P ) @ @ G y.G 7 7 k J y.J n R R # y.z * * o ~ y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.:.:.r.i.i.i.y.} m m : y y.) - - - @ y.7 h h [ l y.n q U N 8.y.* 4.X X d y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.u u r.i.i.i.y.y m : : ) y.@ - - V 7 y.k [ [ 9 n y.R U N ! * y.o X X 2 d y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.u u r.i.i.i.y.y : : : @ y.@ V V h k y.k 9 q q R y.8.! 4.4.o y.W 2 s s / y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.u u r.i.i.i.y.| ) @ @ G y.J 7 7 k J y.# n R R # y.z * o o ~ y.%.d / / K y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.w w r.i.i.i.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.w w r.i.i.i.y.G @ @ 7 J y.J k l n # y.# 8.8.* z y.~ W d d %.y.Z f f ; +.y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.w w r.i.i.i.y.@ V V h k y.k 9 q q R y.8.! 4.4.o y.W 2 s s / y.f B ..{ + y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.#.#.r.i.i.i.y.7 h h h k y.n q q U 8.y.* 4.4.X W y.d s s H f y.,...{ 6 + y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.v v r.i.i.i.y.7 h [ 9 l y.R U N ! 8.y.o X X 2 d y./ H I B ; y.<.6 6 6 ] y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.-.-.r.i.i.i.y.J k l n # y.# 8.8.* L y.~ W d d Z y.Z f ; ,.+.y.+.+ ] ]  .y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.$.$.r.i.i.i.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.r r r.i.i.i.y.# R R 8.z y.z * o W ~ y.%./ / f K y.K <.+ + t y. .3 _ ` A y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.r r r.i.i.i.y.R U N ! * y.o X X 2 d y./ H I B ,.y.<.6 6 a ] y._ Y . . Q y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.r r r.i.i.i.y.8.! ! 4.o y.W 2 2 s / y.f B B ..<.y.+ 6 a Y 3 y.` . . x Q y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.b b r.i.i.i.y.8.4.4.X W y.d s s H f y.; ..{ { + y.] a Y Y ` y.Q . x x 0 y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.b b r.i.i.i.y.z o W W %.y.%./ / f K y.+.<.+ + t y. ._ _ ` q.y.q.Q 0 0 X.y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.&.&.r.i.i.i.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T i.i.i.i.i.",
-"i.i.i.i.i.i.i.r.&.&.r.i.i.i.y.~ d d / Z y.K ; ,.<.+.y.t ] ] 3  .y.A Q Q Q X.y.X.0 8 8 < y.i.i.i.i.i.",
-"i.i.i.i.i.E r.r.3.3.r.r.E i.y.d s s H f y.; ..{ 6 + y.] Y Y Y ` y.Q x x x 0 y.8 O O O o.y.i.i.i.i.i.",
-"i.i.i.i.i.r.>.S D D S >.r.i.y./ H H I ; y.<.{ 6 6 ] y.3 Y . . Q y.Q x x x 0 y.8 O O O ' y.i.i.i.i.i.",
-"i.i.i.i.i.E r.b D D b r.E i.y.f I B ..,.y.+ 6 6 a 3 y._ . . . Q y.0 x x O 8 y.o.O O O ' y.i.i.i.i.i.",
-"i.i.i.i.i.i.E r.-.-.r.E i.i.y.K ; ,.<.+.y.t ] 3 3  .y.q.Q Q Q X.y.X.0 8 8 < y.< ' ' ' < y.i.i.i.i.i.",
-"i.i.i.i.i.i.i.E r.r.E i.i.i.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T y.y.y.y.y.T i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.",
-"i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i."
-};
+static char * ex_scan_xpm[] = {
+"50 50 128 2",
+"      c None",
+".     c #D1E7F2",
+"+     c #1BAEE3",
+"@     c #82D1ED",
+"#     c #EFE35F",
+"$     c #7BCEED",
+"%     c #FEDE29",
+"&     c #56C3EA",
+"*     c #05A7E1",
+"=     c #92D6EF",
+"-     c #CAE3F0",
+";     c #C2E0EE",
+">     c #FEEC86",
+",     c #8ED4EE",
+"'     c #45BEE9",
+")     c #FADD29",
+"!     c #D6E9F4",
+"~     c #C5E1EF",
+"{     c #BEDEED",
+"]     c #ADD6E9",
+"^     c #6BC7E8",
+"/     c #D4E9F4",
+"(     c #41BDE9",
+"_     c #F2E45F",
+":     c #DBBD89",
+"<     c #F5E55F",
+"[     c #FBE65F",
+"}     c #F8E65F",
+"|     c #FEE65F",
+"1     c #F7E55F",
+"2     c #F9E65F",
+"3     c #F6E55F",
+"4     c #F1E45F",
+"5     c #FAE65F",
+"6     c #F4E55F",
+"7     c #F0E45F",
+"8     c #F0DC2A",
+"9     c #F6DD2A",
+"0     c #F8DD29",
+"a     c #FDE65F",
+"b     c #F2DC2A",
+"c     c #ECDB2A",
+"d     c #F1DC2A",
+"e     c #F9DD29",
+"f     c #EFE45F",
+"g     c #A5C1E4",
+"h     c #F4DC2A",
+"i     c #EEDB2A",
+"j     c #EDDB2A",
+"k     c #F3E45F",
+"l     c #F7DD2A",
+"m     c #F3DC2A",
+"n     c #EDE360",
+"o     c #F8EB87",
+"p     c #FCDE29",
+"q     c #EADB2A",
+"r     c #FCE65F",
+"s     c #F4EB87",
+"t     c #F7EB87",
+"u     c #E7DA2B",
+"v     c #E9DA2A",
+"w     c #FCEC86",
+"x     c #FAEC87",
+"y     c #EEE360",
+"z     c #EFDB2A",
+"A     c #FDDE29",
+"B     c #EBDB2A",
+"C     c #FDEC86",
+"D     c #FFE65F",
+"E     c #F9EB87",
+"F     c #F5EB87",
+"G     c #89B9DB",
+"H     c #F5DC2A",
+"I     c #FBDE29",
+"J     c #F6EB87",
+"K     c #7A9EA9",
+"L     c #FBEC86",
+"M     c #F8E55F",
+"N     c #F1EA87",
+"O     c #F3EB87",
+"P     c #F5DD2A",
+"Q     c #EFDC2A",
+"R     c #F3E55F",
+"S     c #E8DA2A",
+"T     c #E8DA2B",
+"U     c #F2EA87",
+"V     c #F3EA87",
+"W     c #79D0EF",
+"X     c #C6E2EF",
+"Y     c #CEE6F2",
+"Z     c #CBE4F1",
+"`     c #C0DFEE",
+" .    c #D3E8F3",
+"..    c #D4E9F3",
+"+.    c #C8E3F0",
+"@.    c #99DAF1",
+"#.    c #6AC9EC",
+"$.    c #6FCAEC",
+"%.    c #6FCDEE",
+"&.    c #E1EFF7",
+"*.    c #CEE5F2",
+"=.    c #B9DBEC",
+"-.    c #F9EC87",
+";.    c #50C2EA",
+">.    c #65C8EC",
+",.    c #89D5F0",
+"'.    c #83D3F0",
+").    c #94D8F1",
+"!.    c #AFE1F3",
+"~.    c #D7EAF5",
+"{.    c #C7E3F0",
+"].    c #A8DEF2",
+"^.    c #A4DDF1",
+"/.    c #CCE5F1",
+"(.    c #75CEEF",
+"_.    c #F7DD29",
+":.    c #55C0E7",
+"<.    c #59C1E7",
+"[.    c #5BC5EB",
+"}.    c #6FC8E9",
+"|.    c #48BFE9",
+"1.    c #38B7E5",
+"2.    c #95D7EF",
+"3.    c #50BEE7",
+"4.    c #86D1ED",
+"5.    c #6696D1",
+"6.    c #3688C1",
+"7.    c #C18F36",
+"                                                                                                    ",
+"                                                                                                    ",
+"                                                                                                    ",
+"                                                                                                    ",
+"                                                                                                    ",
+"                                                                                                    ",
+"                                                                                                    ",
+"                            G 6.6.6.6.6.G 6.6.6.6.6.G 6.6.6.6.6.G 6.6.6.6.6.G 6.6.6.6.6.G           ",
+"                            6.%.( ' ' (.6.W ;.& & '.6.,.>.#.$.).6.@.$ @ @ ^.6.]., = = !.6.          ",
+"                            6.( * * * |.6.;.+ + + [.6.>.1.1.1.$.6.$ 3.:.<.4.6., ^ ^ }.2.6.          ",
+"                            6.%.( ' ' (.6.W ;.& & '.6.,.>.#.$.).6.@.$ @ @ ^.6.]., = = !.6.          ",
+"                            K 6.6.6.6.6.K 6.6.6.6.6.K 6.6.6.6.6.K 6.6.6.6.6.K 6.6.6.6.6.K           ",
+"              g 5.5.g       7.N n n n N 7.N n y y U 7.V # # f O 7.s 7 7 4 s 7.F _ _ _ J 7.          ",
+"              5.&.&.5.      7.n u u u n 7.y T T S # 7.# q q q 7 7.7 c c c _ 7._ i z z R 7.          ",
+"              5.~.~.5.      7.n u u u n 7.y S S v # 7.f q q B 7 7.4 c j j _ 7._ z Q 8 6 7.          ",
+"              5.! ! 5.      7.n u u T y 7.y v v v f 7.f B B B 4 7._ j j i _ 7.k 8 8 8 < 7.          ",
+"              5.! ! 5.      7.N y y y U 7.V # # f O 7.s 7 4 4 s 7.F _ _ _ J 7.t 6 < < o 7.          ",
+"              5.! ! 5.      : 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.:           ",
+"              5./ / 5.      7.U y # # V 7.O f 7 7 s 7.s 4 _ _ F 7.J k R 6 t 7.t < < 3 o 7.          ",
+"              5. . .5.      7.y v v v f 7.f B B c 4 7._ j i i _ 7.R 8 8 d < 7.< b m m 1 7.          ",
+"              5.. . 5.      7.# v q q f 7.7 B c c _ 7._ i i z k 7.6 8 d d < 7.3 m h h M 7.          ",
+"              5.. . 5.      7.# q q q 7 7.4 c c j _ 7._ z z Q 6 7.< d b b 3 7.1 h h H } 7.          ",
+"              5.. . 5.      7.O f 7 7 s 7.s _ _ _ F 7.J k 6 6 t 7.t < < 3 o 7.E M } } x 7.          ",
+"              5.Y Y 5.      : 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.:           ",
+"              5.*.*.5.      7.s 4 4 4 F 7.F _ _ k J 7.t < < < o 7.o 3 1 1 E 7.x } 2 2 L 7.          ",
+"              5././.5.      7.4 c j j _ 7._ z z 8 6 7.< d b b 3 7.1 h H P } 7.} l l 0 5 7.          ",
+"              5.Z Z 5.      7.4 j j i _ 7.k Q 8 8 < 7.< b m m 1 7.1 H P 9 } 7.2 0 0 0 [ 7.          ",
+"              5.- - 5.      7._ i i i k 7.6 8 d d < 7.< m m h 1 7.} 9 9 l 2 7.5 0 e e [ 7.          ",
+"              5.+.+.5.      7.F _ k k t 7.t < < < o 7.o 1 1 M -.7.x } 2 2 L 7.w [ [ [ w 7.          ",
+"              5.{.{.5.      : 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.:           ",
+"              5.X X 5.      7.J 6 6 < t 7.o < 3 3 E 7.E } } } x 7.x 5 5 [ w 7.w [ r r C 7.          ",
+"              5.~ ~ 5.      7.6 8 d d < 7.3 m h h M 7.} 9 9 l 2 7.5 e e e [ 7.r I I p a 7.          ",
+"              5.~ ~ 5.      7.< d b b < 7.3 h h H } 7.} l l _.5 7.[ e ) ) [ 7.r p p p | 7.          ",
+"              5.; ; 5.      7.< b b m 3 7.1 H P 9 } 7.2 l 0 0 [ 7.[ ) ) ) r 7.a p p A | 7.          ",
+"              5.; ; 5.      7.o 3 3 1 E 7.E } } } x 7.L 5 5 [ w 7.w [ r r C 7.C | | | > 7.          ",
+"              5.` ` 5.      : 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.:           ",
+"              5.` ` 5.      7.E 1 M } -.7.x 2 2 5 L 7.w [ [ [ C 7.C a a a > 7.> | | | > 7.          ",
+"          g 5.5.=.=.5.5.g   7.1 H P 9 } 7.2 0 0 0 [ 7.[ ) ) I r 7.a p A A | 7.| % % % D 7.          ",
+"          5...{ ] ] { ..5.  7.} 9 9 9 2 7.5 0 e e [ 7.[ ) I I a 7.a A A A | 7.| % % % D 7.          ",
+"          g 5.; ] ] ; 5.g   7.} 9 l l 5 7.5 e e ) [ 7.r I p p a 7.| A % % | 7.D % % % D 7.          ",
+"            g 5.+.+.5.g     7.x 2 2 5 L 7.w [ [ [ C 7.C a a | > 7.> | | | > 7.> D D D > 7.          ",
+"              g 5.5.g       : 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.: 7.7.7.7.7.:           ",
+"                                                                                                    ",
+"                                                                                                    ",
+"                                                                                                    ",
+"                                                                                                    ",
+"                                                                                                    ",
+"                                                                                                    ",
+"                                                                                                    ",
+"                                                                                                    "};
\ No newline at end of file