Improving contextual menu in Viewer and fixing menu toolbar icons on Windows
authorlaurent
Sat, 31 Mar 2012 15:08:18 +0200
changeset 666 d4bb66691248
parent 665 6a376615142e
child 667 baab9eb5b8ad
Improving contextual menu in Viewer and fixing menu toolbar icons on Windows
DataTypeEditor.py
Images/copy.png
Images/cut.png
Images/find.png
Images/icons.svg
Images/new.png
Images/open.png
Images/paste.png
Images/print.png
Images/redo.png
Images/save.png
Images/saveas.png
Images/undo.png
PLCOpenEditor.py
Viewer.py
controls/VariablePanel.py
graphics/GraphicCommons.py
--- a/DataTypeEditor.py	Sat Mar 31 15:03:50 2012 +0200
+++ b/DataTypeEditor.py	Sat Mar 31 15:08:18 2012 +0200
@@ -712,6 +712,7 @@
 ##                type_menu.AppendMenu(wx.NewId(), _("Function Block Types"), functionblock_menu)
             rect = self.StructureElementsGrid.BlockToDeviceRect((row, col), (row, col))
             self.StructureElementsGrid.PopupMenuXY(type_menu, rect.x + rect.width, rect.y + self.StructureElementsGrid.GetColLabelSize())
+            type_menu.Destroy()
             event.Veto()
         else:
             event.Skip()
Binary file Images/copy.png has changed
Binary file Images/cut.png has changed
Binary file Images/find.png has changed
--- a/Images/icons.svg	Sat Mar 31 15:03:50 2012 +0200
+++ b/Images/icons.svg	Sat Mar 31 15:08:18 2012 +0200
@@ -654,6 +654,1866 @@
          offset="1"
          id="stop5179-5" />
     </linearGradient>
+    <linearGradient
+       x1="72.422"
+       x2="72.422"
+       gradientTransform="matrix(0.14823,0,0,0.14944,5.4508,5.3567)"
+       y1="124.76"
+       gradientUnits="userSpaceOnUse"
+       y2="51.244"
+       id="linearGradient3123">
+      <stop
+         offset="0"
+         style="stop-color:#365f0e"
+         id="stop2492-3" />
+      <stop
+         offset="1"
+         style="stop-color:#84a718"
+         id="stop2494-8" />
+    </linearGradient>
+    <radialGradient
+       gradientTransform="matrix(0,0.35684,-0.3882,0,37.357,-10.114)"
+       r="31"
+       cy="51.695"
+       cx="69.448"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient3121">
+      <stop
+         offset="0"
+         style="stop-color:#eef87e"
+         id="stop3244-5" />
+      <stop
+         offset=".26238"
+         style="stop-color:#cde34f"
+         id="stop3246-9" />
+      <stop
+         offset=".66094"
+         style="stop-color:#93b723"
+         id="stop3248-7" />
+      <stop
+         offset="1"
+         style="stop-color:#5a7e0d"
+         id="stop3250-8" />
+    </radialGradient>
+    <linearGradient
+       x1="24.139"
+       y1="7.0479"
+       gradientTransform="matrix(0.2818,0,0,0.2801,12.186,12.022)"
+       x2="24.139"
+       gradientUnits="userSpaceOnUse"
+       y2="39.268"
+       id="linearGradient5530">
+      <stop
+         offset="0"
+         style="stop-color:#fff"
+         id="stop3945" />
+      <stop
+         offset="1"
+         style="stop-color:#fff;stop-opacity:0"
+         id="stop3947" />
+    </linearGradient>
+    <linearGradient
+       x1="302.86"
+       y1="366.65"
+       gradientTransform="matrix(0.035207,0,0,0.0082353,-0.72485,18.981)"
+       x2="302.86"
+       gradientUnits="userSpaceOnUse"
+       y2="609.51"
+       id="linearGradient2447">
+      <stop
+         offset="0"
+         style="stop-opacity:0"
+         id="stop5050" />
+      <stop
+         offset=".5"
+         id="stop5056" />
+      <stop
+         offset="1"
+         style="stop-opacity:0"
+         id="stop5052" />
+    </linearGradient>
+    <radialGradient
+       r="117.14"
+       gradientTransform="matrix(-0.012049,0,0,0.0082353,10.761,18.981)"
+       cx="605.71"
+       cy="486.65"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5060"
+       id="radialGradient2444" />
+    <radialGradient
+       r="117.14"
+       gradientTransform="matrix(0.012049,0,0,0.0082353,13.239,18.981)"
+       cx="605.71"
+       cy="486.65"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5060"
+       id="radialGradient2441" />
+    <linearGradient
+       x1="-51.786"
+       y1="50.786"
+       gradientTransform="matrix(0.39221,0,0,0.44736,29.199,-1.2387)"
+       x2="-51.786"
+       gradientUnits="userSpaceOnUse"
+       y2="2.9062"
+       id="linearGradient2438">
+      <stop
+         offset="0"
+         style="stop-color:#aaa"
+         id="stop3106" />
+      <stop
+         offset="1"
+         style="stop-color:#c8c8c8"
+         id="stop3108" />
+    </linearGradient>
+    <linearGradient
+       x1="25.132"
+       y1=".98521"
+       gradientTransform="matrix(0.48572,0,0,0.47803,0.34283,-0.70595)"
+       x2="25.132"
+       gradientUnits="userSpaceOnUse"
+       y2="47.013"
+       id="linearGradient2435">
+      <stop
+         offset="0"
+         style="stop-color:#f4f4f4"
+         id="stop3602" />
+      <stop
+         offset="1"
+         style="stop-color:#dbdbdb"
+         id="stop3604" />
+    </linearGradient>
+    <radialGradient
+       r="139.56"
+       gradientTransform="matrix(0.17021,0,0,-0.19072,1.1064,23.717)"
+       cx="92.09"
+       cy="102.7"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient2432">
+      <stop
+         offset="0"
+         style="stop-color:#b7b8b9"
+         id="stop41" />
+      <stop
+         offset=".17403"
+         style="stop-color:#ececec"
+         id="stop47" />
+      <stop
+         offset=".23908"
+         style="stop-color:#fafafa;stop-opacity:0"
+         id="stop49" />
+      <stop
+         offset=".30111"
+         style="stop-color:#fff;stop-opacity:0"
+         id="stop51" />
+      <stop
+         offset=".53130"
+         style="stop-color:#fafafa;stop-opacity:0"
+         id="stop53" />
+      <stop
+         offset=".84490"
+         style="stop-color:#ebecec;stop-opacity:0"
+         id="stop55" />
+      <stop
+         offset="1"
+         style="stop-color:#e1e2e3;stop-opacity:0"
+         id="stop57" />
+    </radialGradient>
+    <linearGradient
+       x1="24"
+       y1="2"
+       gradientTransform="matrix(0.45454,0,0,0.46512,1.0909,0.33723)"
+       x2="24"
+       gradientUnits="userSpaceOnUse"
+       y2="46.017"
+       id="linearGradient2429">
+      <stop
+         offset="0"
+         style="stop-color:#fff"
+         id="stop3213" />
+      <stop
+         offset="1"
+         style="stop-color:#fff;stop-opacity:0"
+         id="stop3215" />
+    </linearGradient>
+    <linearGradient
+       x1="32.892"
+       y1="8.059"
+       gradientTransform="matrix(0.47785,0,0,0.55248,0.37225,-0.076128)"
+       x2="36.358"
+       gradientUnits="userSpaceOnUse"
+       y2="5.4565"
+       id="linearGradient2425">
+      <stop
+         offset="0"
+         style="stop-color:#fefefe"
+         id="stop8591" />
+      <stop
+         offset="1"
+         style="stop-color:#cbcbcb"
+         id="stop8593" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5060">
+      <stop
+         offset="0"
+         id="stop5062" />
+      <stop
+         offset="1"
+         style="stop-opacity:0"
+         id="stop5064" />
+    </linearGradient>
+    <linearGradient
+       x1="302.86"
+       y1="366.65"
+       gradientTransform="matrix(2.7744,0,0,1.9697,-1892.2,-872.89)"
+       x2="302.86"
+       gradientUnits="userSpaceOnUse"
+       y2="609.51"
+       id="linearGradient2617">
+      <stop
+         offset="0"
+         style="stop-opacity:0"
+         id="stop5050-4" />
+      <stop
+         offset=".5"
+         id="stop5056-8" />
+      <stop
+         offset="1"
+         style="stop-opacity:0"
+         id="stop5052-1" />
+    </linearGradient>
+    <radialGradient
+       r="117.14"
+       gradientTransform="matrix(2.7744,0,0,1.9697,-1891.6,-872.89)"
+       cx="605.71"
+       cy="486.65"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5060-3"
+       id="radialGradient2619" />
+    <linearGradient
+       id="linearGradient5060-3">
+      <stop
+         offset="0"
+         id="stop5062-3" />
+      <stop
+         offset="1"
+         style="stop-opacity:0"
+         id="stop5064-0" />
+    </linearGradient>
+    <radialGradient
+       r="117.14"
+       gradientTransform="matrix(-2.7744,0,0,1.9697,112.76,-872.89)"
+       cx="605.71"
+       cy="486.65"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5060-3"
+       id="radialGradient2621" />
+    <linearGradient
+       x1="-28.531"
+       y1="17.956"
+       gradientTransform="translate(34.414,-14.501)"
+       x2="-28.531"
+       gradientUnits="userSpaceOnUse"
+       y2="37.503"
+       id="linearGradient3019">
+      <stop
+         offset="0"
+         style="stop-color:#fff"
+         id="stop11113" />
+      <stop
+         offset=".91014"
+         style="stop-color:#cdcdcd"
+         id="stop11115" />
+      <stop
+         offset="1"
+         style="stop-color:#a1a1a1"
+         id="stop11117" />
+    </linearGradient>
+    <linearGradient
+       x1="9.8764"
+       y1="2.6015"
+       gradientTransform="translate(0.036304,2.9e-7)"
+       x2="9.8764"
+       gradientUnits="userSpaceOnUse"
+       y2="23.062"
+       id="linearGradient3021">
+      <stop
+         offset="0"
+         style="stop-color:#c1c1c1"
+         id="stop5159" />
+      <stop
+         offset="1"
+         style="stop-color:#909090"
+         id="stop5161" />
+    </linearGradient>
+    <linearGradient
+       x1="25.132"
+       y1="6.7287"
+       gradientTransform="matrix(0.37156,0,0,0.33344,-0.91752,-0.0025171)"
+       x2="25.132"
+       gradientUnits="userSpaceOnUse"
+       y2="47.013"
+       id="linearGradient3253">
+      <stop
+         offset="0"
+         style="stop-color:#f4f4f4"
+         id="stop3602-4" />
+      <stop
+         offset="1"
+         style="stop-color:#dbdbdb"
+         id="stop3604-6" />
+    </linearGradient>
+    <linearGradient
+       x1="-51.786"
+       y1="50.786"
+       gradientTransform="matrix(0.30004,0,0,0.31205,21.157,-0.37413)"
+       x2="-51.786"
+       gradientUnits="userSpaceOnUse"
+       y2="2.9062"
+       id="linearGradient3255">
+      <stop
+         offset="0"
+         style="stop-color:#8d8f8a"
+         id="stop3933" />
+      <stop
+         offset="1"
+         style="stop-color:#c1c1c1"
+         id="stop3935" />
+    </linearGradient>
+    <linearGradient
+       x1="32.892"
+       y1="8.059"
+       gradientTransform="matrix(0.37071,0,0,0.35485,-0.85666,-0.048951)"
+       x2="36.358"
+       gradientUnits="userSpaceOnUse"
+       y2="5.4565"
+       id="linearGradient3257">
+      <stop
+         offset="0"
+         style="stop-color:#fefefe"
+         id="stop8591-4" />
+      <stop
+         offset="1"
+         style="stop-color:#cbcbcb"
+         id="stop8593-8" />
+    </linearGradient>
+    <linearGradient
+       x1="17.289"
+       y1="2.1849"
+       gradientTransform="matrix(0.68443,0,0,0.68201,-0.21315,0.15692)"
+       x2="15.18"
+       gradientUnits="userSpaceOnUse"
+       y2="5.8215"
+       id="linearGradient3259">
+      <stop
+         offset="0"
+         style="stop-color:#c0c0c0"
+         id="stop4561" />
+      <stop
+         offset="1"
+         style="stop-color:#949492"
+         id="stop4563" />
+    </linearGradient>
+    <radialGradient
+       r="11.268"
+       gradientTransform="matrix(1.69,0,0,0.78074,-5.4127,6.4032)"
+       cx="7.8186"
+       cy="8.5609"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient3293">
+      <stop
+         offset="0"
+         style="stop-color:#f0c178"
+         id="stop3618" />
+      <stop
+         offset=".5"
+         style="stop-color:#e18941"
+         id="stop3270" />
+      <stop
+         offset="1"
+         style="stop-color:#ec4f18"
+         id="stop3620" />
+    </radialGradient>
+    <linearGradient
+       x1="9.7046"
+       y1="20.882"
+       gradientTransform="matrix(0.99458,0,0,0.74406,-0.30296,6.9688)"
+       x2="9.7046"
+       gradientUnits="userSpaceOnUse"
+       y2="4.303"
+       id="linearGradient3295">
+      <stop
+         offset="0"
+         style="stop-color:#bb2b12"
+         id="stop3624" />
+      <stop
+         offset="1"
+         style="stop-color:#cd7233"
+         id="stop3626" />
+    </linearGradient>
+    <radialGradient
+       r="10.273"
+       gradientTransform="matrix(-0.016802,1.0431,-1.7966,-0.016197,14.189,7.2971)"
+       cx="4.02"
+       cy="5.5927"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient3004-5-2">
+      <stop
+         offset="0"
+         style="stop-color:#fff"
+         id="stop3754-7-5" />
+      <stop
+         offset=".84754"
+         style="stop-color:#fff"
+         id="stop3760-0-0" />
+      <stop
+         offset="1"
+         style="stop-color:#fff;stop-opacity:0"
+         id="stop3756-4-9" />
+    </radialGradient>
+    <linearGradient
+       x1="18.031"
+       y1="16.408"
+       gradientTransform="matrix(0.44503,0,0,0.30102,2.8555,8.5638)"
+       x2="20.055"
+       gradientUnits="userSpaceOnUse"
+       y2="24.628"
+       id="linearGradient3001-8-3">
+      <stop
+         offset="0"
+         style="stop-color:#fff;stop-opacity:.27451"
+         id="stop2687-4-1" />
+      <stop
+         offset="1"
+         style="stop-color:#fff;stop-opacity:.078431"
+         id="stop2689-2-2" />
+    </linearGradient>
+    <linearGradient
+       x1="28.671"
+       y1="23.891"
+       gradientTransform="matrix(0,-0.33674,-0.33543,0,20.014,15.582)"
+       x2="1.31"
+       gradientUnits="userSpaceOnUse"
+       y2="23.891"
+       id="linearGradient2834">
+      <stop
+         offset="0"
+         style="stop-color:#d7e866"
+         id="stop2266" />
+      <stop
+         offset="1"
+         style="stop-color:#8cab2a"
+         id="stop2268" />
+    </linearGradient>
+    <linearGradient
+       x1="8.5273"
+       y1="33.332"
+       gradientTransform="matrix(0,0.39055,-0.38724,0,22.223,-1.7244)"
+       x2="57.411"
+       gradientUnits="userSpaceOnUse"
+       y2="33.332"
+       id="linearGradient2831">
+      <stop
+         offset="0"
+         style="stop-color:#fff"
+         id="stop4224" />
+      <stop
+         offset="1"
+         style="stop-color:#fff;stop-opacity:0"
+         id="stop4226" />
+    </linearGradient>
+    <radialGradient
+       r="2.5631"
+       cx="113.07"
+       cy="97.588"
+       gradientUnits="userSpaceOnUse"
+       fy="98"
+       fx="113.67"
+       id="radialGradient4241">
+      <stop
+         offset="0"
+         style="stop-color:#eee"
+         id="stop4243" />
+      <stop
+         offset=".16"
+         style="stop-color:#cecece"
+         id="stop4245" />
+      <stop
+         offset=".4675"
+         style="stop-color:#888"
+         id="stop4247" />
+      <stop
+         offset="1"
+         style="stop-color:#555"
+         id="stop4249" />
+    </radialGradient>
+    <radialGradient
+       r="2.5631"
+       gradientTransform="matrix(2.4957,0,0,2.4957,-223.98,-53.226)"
+       cx="113.07"
+       cy="97.588"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#radialGradient4241"
+       fy="98"
+       fx="113.67"
+       id="radialGradient8498" />
+    <radialGradient
+       r="78.728"
+       gradientTransform="matrix(0.10006,-0.023376,0.0082168,0.059717,-5.2741,-0.91135)"
+       cx="127.32"
+       cy="143.83"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient4035"
+       id="radialGradient8475" />
+    <linearGradient
+       id="linearGradient4035">
+      <stop
+         offset="0"
+         style="stop-color:#f5f5f5"
+         id="stop4037" />
+      <stop
+         offset=".47026"
+         style="stop-color:#e7e7e7"
+         id="stop4039" />
+      <stop
+         offset=".69349"
+         style="stop-color:#8c8c8c"
+         id="stop4041" />
+      <stop
+         offset=".83543"
+         style="stop-color:#ddd"
+         id="stop4043" />
+      <stop
+         offset="1"
+         style="stop-color:#a8a8a8"
+         id="stop4045" />
+    </linearGradient>
+    <radialGradient
+       r="78.728"
+       gradientTransform="matrix(0.092476,0,0,-0.087162,-1.5556,24.366)"
+       cx="142.62"
+       cy="191.85"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient8464">
+      <stop
+         offset="0"
+         style="stop-color:#fff"
+         id="stop7611-3" />
+      <stop
+         offset=".47026"
+         style="stop-color:#e7e7e7"
+         id="stop7677-2" />
+      <stop
+         offset=".67184"
+         style="stop-color:#8c8c8c"
+         id="stop7613-4" />
+      <stop
+         offset=".83543"
+         style="stop-color:#ddd"
+         id="stop7617-3" />
+      <stop
+         offset="1"
+         style="stop-color:#a8a8a8"
+         id="stop7615-6" />
+    </radialGradient>
+    <radialGradient
+       r="78.728"
+       gradientTransform="matrix(0.18615,-0.0031402,0.0013777,0.18068,-15.013,-20.636)"
+       cx="141.75"
+       cy="206.43"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient4035"
+       id="radialGradient8471" />
+    <radialGradient
+       r="21"
+       gradientTransform="matrix(0.52381,0,1.4569e-8,0.21429,-0.57143,11.5)"
+       cx="24"
+       cy="42"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient3248">
+      <stop
+         offset="0"
+         style="stop-color:#fff"
+         id="stop6312-6" />
+      <stop
+         offset="1"
+         style="stop-color:#fff;stop-opacity:0"
+         id="stop6314-6" />
+    </radialGradient>
+    <radialGradient
+       r="12"
+       gradientTransform="matrix(1.5194,0.0037157,-0.0030247,1.2368,-3.7373,0.067833)"
+       cx="7.2203"
+       cy="4.2333"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient4072">
+      <stop
+         offset="0"
+         style="stop-color:#e6e6e6"
+         id="stop7064-4" />
+      <stop
+         offset="1"
+         style="stop-color:#c8c8c8"
+         id="stop7060-2" />
+    </radialGradient>
+    <linearGradient
+       x1="9.599"
+       y1="13.499"
+       gradientTransform="matrix(0.98925,0,0,1.4696,0.12903,-10.339)"
+       x2="4.459"
+       gradientUnits="userSpaceOnUse"
+       y2="8.3495"
+       id="linearGradient2869">
+      <stop
+         offset="0"
+         style="stop-color:#969696"
+         id="stop3486-2" />
+      <stop
+         offset="1"
+         style="stop-color:#b4b4b4"
+         id="stop3488-0" />
+    </linearGradient>
+    <linearGradient
+       x1="12.277"
+       y1="37.206"
+       gradientTransform="matrix(0.73759,0,0,0.53933,-2.796,2.187)"
+       x2="12.222"
+       gradientUnits="userSpaceOnUse"
+       y2="33.759"
+       id="linearGradient8487">
+      <stop
+         offset="0"
+         style="stop-color:#eee"
+         id="stop4238-4" />
+      <stop
+         offset="1"
+         style="stop-color:#eee;stop-opacity:0"
+         id="stop4240-3" />
+    </linearGradient>
+    <linearGradient
+       x1="7.0625"
+       y1="35.281"
+       gradientTransform="matrix(0.73759,0,0,0.53933,-2.2092,1.4719)"
+       x2="24.688"
+       gradientUnits="userSpaceOnUse"
+       y2="35.281"
+       id="linearGradient8490">
+      <stop
+         offset="0"
+         id="stop6311" />
+      <stop
+         offset="1"
+         style="stop-color:#bbb;stop-opacity:0"
+         id="stop6313" />
+    </linearGradient>
+    <linearGradient
+       x1="53.991"
+       y1="87.896"
+       gradientTransform="matrix(0.19046,0,0,0.24853,0.090799,-3.4847)"
+       x2="53.991"
+       gradientUnits="userSpaceOnUse"
+       y2="104.28"
+       id="linearGradient2872">
+      <stop
+         offset="0"
+         style="stop-color:#7a7a7a"
+         id="stop2223-6" />
+      <stop
+         offset="1"
+         style="stop-color:#474747"
+         id="stop2219-1" />
+    </linearGradient>
+    <radialGradient
+       r="117.14"
+       gradientTransform="matrix(-0.022183,0,0,0.01086,16.259,17.381)"
+       cx="605.71"
+       cy="486.65"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5060-0"
+       id="radialGradient2877" />
+    <linearGradient
+       id="linearGradient5060-0">
+      <stop
+         offset="0"
+         id="stop5062-9" />
+      <stop
+         offset="1"
+         style="stop-opacity:0"
+         id="stop5064-7" />
+    </linearGradient>
+    <radialGradient
+       r="117.14"
+       gradientTransform="matrix(0.022183,0,0,0.01086,7.7407,17.381)"
+       cx="605.71"
+       cy="486.65"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5060-0"
+       id="radialGradient2880" />
+    <linearGradient
+       x1="302.86"
+       y1="366.65"
+       gradientTransform="matrix(0.037768,0,0,0.01086,-1.6503,17.381)"
+       x2="302.86"
+       gradientUnits="userSpaceOnUse"
+       y2="609.51"
+       id="linearGradient2883">
+      <stop
+         offset="0"
+         style="stop-opacity:0"
+         id="stop5050-0" />
+      <stop
+         offset=".5"
+         id="stop5056-1" />
+      <stop
+         offset="1"
+         style="stop-opacity:0"
+         id="stop5052-7" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#radialGradient4241"
+       id="radialGradient4747"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4957,0,0,2.4957,-223.98,-53.226)"
+       cx="113.07"
+       cy="97.588"
+       fx="113.67"
+       fy="98"
+       r="2.5631" />
+    <linearGradient
+       x1="21.478"
+       y1="1.6845"
+       gradientTransform="matrix(0.47644,0,0,0.40577,-36.625,-0.80551)"
+       x2="21.478"
+       gradientUnits="userSpaceOnUse"
+       y2="6.5747"
+       id="linearGradient5605">
+      <stop
+         offset="0"
+         style="stop-color:#eeeeec"
+         id="stop6453" />
+      <stop
+         offset="1"
+         style="stop-color:#fff"
+         id="stop6455" />
+    </linearGradient>
+    <linearGradient
+       x1="28.671"
+       y1="23.891"
+       gradientTransform="matrix(0,-0.33674,-0.33543,0,20.014,15.582)"
+       x2="1.31"
+       gradientUnits="userSpaceOnUse"
+       y2="23.891"
+       id="linearGradient2834-9">
+      <stop
+         offset="0"
+         style="stop-color:#d7e866"
+         id="stop2266-1" />
+      <stop
+         offset="1"
+         style="stop-color:#8cab2a"
+         id="stop2268-1" />
+    </linearGradient>
+    <linearGradient
+       x1="8.5273"
+       y1="33.332"
+       gradientTransform="matrix(0,0.39055,-0.38724,0,22.223,-1.7244)"
+       x2="57.411"
+       gradientUnits="userSpaceOnUse"
+       y2="33.332"
+       id="linearGradient2831-9">
+      <stop
+         offset="0"
+         style="stop-color:#fff"
+         id="stop4224-4" />
+      <stop
+         offset="1"
+         style="stop-color:#fff;stop-opacity:0"
+         id="stop4226-7" />
+    </linearGradient>
+    <radialGradient
+       r="2.5631"
+       cx="113.07"
+       cy="97.588"
+       gradientUnits="userSpaceOnUse"
+       fy="98"
+       fx="113.67"
+       id="radialGradient4241-8">
+      <stop
+         offset="0"
+         style="stop-color:#eee"
+         id="stop4243-5" />
+      <stop
+         offset=".16"
+         style="stop-color:#cecece"
+         id="stop4245-2" />
+      <stop
+         offset=".4675"
+         style="stop-color:#888"
+         id="stop4247-3" />
+      <stop
+         offset="1"
+         style="stop-color:#555"
+         id="stop4249-1" />
+    </radialGradient>
+    <radialGradient
+       r="2.5631"
+       gradientTransform="matrix(2.4957,0,0,2.4957,-223.98,-53.226)"
+       cx="113.07"
+       cy="97.588"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#radialGradient4241-8"
+       fy="98"
+       fx="113.67"
+       id="radialGradient8498-1" />
+    <radialGradient
+       r="78.728"
+       gradientTransform="matrix(0.10006,-0.023376,0.0082168,0.059717,-5.2741,-0.91135)"
+       cx="127.32"
+       cy="143.83"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient4035-7"
+       id="radialGradient8475-7" />
+    <linearGradient
+       id="linearGradient4035-7">
+      <stop
+         offset="0"
+         style="stop-color:#f5f5f5"
+         id="stop4037-6" />
+      <stop
+         offset=".47026"
+         style="stop-color:#e7e7e7"
+         id="stop4039-4" />
+      <stop
+         offset=".69349"
+         style="stop-color:#8c8c8c"
+         id="stop4041-5" />
+      <stop
+         offset=".83543"
+         style="stop-color:#ddd"
+         id="stop4043-0" />
+      <stop
+         offset="1"
+         style="stop-color:#a8a8a8"
+         id="stop4045-2" />
+    </linearGradient>
+    <radialGradient
+       r="78.728"
+       gradientTransform="matrix(0.092476,0,0,-0.087162,-1.5556,24.366)"
+       cx="142.62"
+       cy="191.85"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient8464-7">
+      <stop
+         offset="0"
+         style="stop-color:#fff"
+         id="stop7611-3-2" />
+      <stop
+         offset=".47026"
+         style="stop-color:#e7e7e7"
+         id="stop7677-2-3" />
+      <stop
+         offset=".67184"
+         style="stop-color:#8c8c8c"
+         id="stop7613-4-2" />
+      <stop
+         offset=".83543"
+         style="stop-color:#ddd"
+         id="stop7617-3-2" />
+      <stop
+         offset="1"
+         style="stop-color:#a8a8a8"
+         id="stop7615-6-2" />
+    </radialGradient>
+    <radialGradient
+       r="78.728"
+       gradientTransform="matrix(0.18615,-0.0031402,0.0013777,0.18068,-15.013,-20.636)"
+       cx="141.75"
+       cy="206.43"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient4035-7"
+       id="radialGradient8471-3" />
+    <radialGradient
+       r="21"
+       gradientTransform="matrix(0.52381,0,1.4569e-8,0.21429,-0.57143,11.5)"
+       cx="24"
+       cy="42"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient3248-5">
+      <stop
+         offset="0"
+         style="stop-color:#fff"
+         id="stop6312-6-9" />
+      <stop
+         offset="1"
+         style="stop-color:#fff;stop-opacity:0"
+         id="stop6314-6-5" />
+    </radialGradient>
+    <radialGradient
+       r="12"
+       gradientTransform="matrix(1.5194,0.0037157,-0.0030247,1.2368,-3.7373,0.067833)"
+       cx="7.2203"
+       cy="4.2333"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient4072-4">
+      <stop
+         offset="0"
+         style="stop-color:#e6e6e6"
+         id="stop7064-4-2" />
+      <stop
+         offset="1"
+         style="stop-color:#c8c8c8"
+         id="stop7060-2-6" />
+    </radialGradient>
+    <linearGradient
+       x1="9.599"
+       y1="13.499"
+       gradientTransform="matrix(0.98925,0,0,1.4696,0.12903,-10.339)"
+       x2="4.459"
+       gradientUnits="userSpaceOnUse"
+       y2="8.3495"
+       id="linearGradient2869-6">
+      <stop
+         offset="0"
+         style="stop-color:#969696"
+         id="stop3486-2-0" />
+      <stop
+         offset="1"
+         style="stop-color:#b4b4b4"
+         id="stop3488-0-6" />
+    </linearGradient>
+    <linearGradient
+       x1="12.277"
+       y1="37.206"
+       gradientTransform="matrix(0.73759,0,0,0.53933,-2.796,2.187)"
+       x2="12.222"
+       gradientUnits="userSpaceOnUse"
+       y2="33.759"
+       id="linearGradient8487-5">
+      <stop
+         offset="0"
+         style="stop-color:#eee"
+         id="stop4238-4-4" />
+      <stop
+         offset="1"
+         style="stop-color:#eee;stop-opacity:0"
+         id="stop4240-3-9" />
+    </linearGradient>
+    <linearGradient
+       x1="7.0625"
+       y1="35.281"
+       gradientTransform="matrix(0.73759,0,0,0.53933,-2.2092,1.4719)"
+       x2="24.688"
+       gradientUnits="userSpaceOnUse"
+       y2="35.281"
+       id="linearGradient8490-6">
+      <stop
+         offset="0"
+         id="stop6311-1" />
+      <stop
+         offset="1"
+         style="stop-color:#bbb;stop-opacity:0"
+         id="stop6313-5" />
+    </linearGradient>
+    <linearGradient
+       x1="53.991"
+       y1="87.896"
+       gradientTransform="matrix(0.19046,0,0,0.24853,0.090799,-3.4847)"
+       x2="53.991"
+       gradientUnits="userSpaceOnUse"
+       y2="104.28"
+       id="linearGradient2872-0">
+      <stop
+         offset="0"
+         style="stop-color:#7a7a7a"
+         id="stop2223-6-9" />
+      <stop
+         offset="1"
+         style="stop-color:#474747"
+         id="stop2219-1-5" />
+    </linearGradient>
+    <radialGradient
+       r="117.14"
+       gradientTransform="matrix(-0.022183,0,0,0.01086,16.259,17.381)"
+       cx="605.71"
+       cy="486.65"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5060-9"
+       id="radialGradient2877-6" />
+    <linearGradient
+       id="linearGradient5060-9">
+      <stop
+         offset="0"
+         id="stop5062-6" />
+      <stop
+         offset="1"
+         style="stop-opacity:0"
+         id="stop5064-2" />
+    </linearGradient>
+    <radialGradient
+       r="117.14"
+       gradientTransform="matrix(0.022183,0,0,0.01086,7.7407,17.381)"
+       cx="605.71"
+       cy="486.65"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5060-9"
+       id="radialGradient2880-4" />
+    <linearGradient
+       x1="302.86"
+       y1="366.65"
+       gradientTransform="matrix(0.037768,0,0,0.01086,-1.6503,17.381)"
+       x2="302.86"
+       gradientUnits="userSpaceOnUse"
+       y2="609.51"
+       id="linearGradient2883-8">
+      <stop
+         offset="0"
+         style="stop-opacity:0"
+         id="stop5050-3" />
+      <stop
+         offset=".5"
+         id="stop5056-89" />
+      <stop
+         offset="1"
+         style="stop-opacity:0"
+         id="stop5052-5" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#radialGradient4241-8"
+       id="radialGradient4958"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4957,0,0,2.4957,-223.98,-53.226)"
+       cx="113.07"
+       cy="97.588"
+       fx="113.67"
+       fy="98"
+       r="2.5631" />
+    <linearGradient
+       x1="12"
+       y1="10"
+       x2="12"
+       gradientUnits="userSpaceOnUse"
+       y2="3"
+       id="linearGradient6666">
+      <stop
+         offset="0"
+         style="stop-color:#787878"
+         id="stop6662" />
+      <stop
+         offset="1"
+         style="stop-color:#787878;stop-opacity:0"
+         id="stop6664" />
+    </linearGradient>
+    <radialGradient
+       r="19.125"
+       gradientTransform="matrix(.62745 0 0 .16993 -3.0588 13.634)"
+       cx="24"
+       cy="41.875"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5591">
+      <stop
+         offset="0"
+         id="stop7614" />
+      <stop
+         offset="1"
+         style="stop-opacity:0"
+         id="stop7616" />
+    </radialGradient>
+    <linearGradient
+       x1="20.562"
+       y1="37"
+       gradientTransform="matrix(.48837 0 0 0.5 .27903 1.2499)"
+       x2="20.279"
+       gradientUnits="userSpaceOnUse"
+       y2="20"
+       id="linearGradient5583">
+      <stop
+         offset="0"
+         style="stop-color:#828282"
+         id="stop6868" />
+      <stop
+         offset="1"
+         style="stop-color:#aaa"
+         id="stop6870" />
+    </linearGradient>
+    <linearGradient
+       x1="11.519"
+       y1="20"
+       gradientTransform="matrix(.48837 0 0 0.5 .27903 1.2499)"
+       x2="11.506"
+       gradientUnits="userSpaceOnUse"
+       y2="37"
+       id="linearGradient5581">
+      <stop
+         offset="0"
+         style="stop-color:#fefefe"
+         id="stop8591-40" />
+      <stop
+         offset="1"
+         style="stop-color:#bebebe"
+         id="stop8593-9" />
+    </linearGradient>
+    <radialGradient
+       r="21"
+       gradientTransform="matrix(.46334 .0080418 -.0058515 .28835 .94804 9.495)"
+       cx="3.7591"
+       cy="11.918"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5577">
+      <stop
+         offset="0"
+         style="stop-color:#fff"
+         id="stop6844" />
+      <stop
+         offset="1"
+         style="stop-color:#fff;stop-opacity:0"
+         id="stop6846" />
+    </radialGradient>
+    <linearGradient
+       x1="15.601"
+       y1="33"
+       gradientTransform="matrix(.48359 0 0 .45973 .39379 1.5874)"
+       x2="15.335"
+       gradientUnits="userSpaceOnUse"
+       y2="21"
+       id="linearGradient5564">
+      <stop
+         offset="0"
+         style="stop-color:#2e3436"
+         id="stop2368" />
+      <stop
+         offset="1"
+         style="stop-color:#555753"
+         id="stop2370" />
+    </linearGradient>
+    <linearGradient
+       x1="21.919"
+       y1="21"
+       gradientTransform="matrix(.48359 0 0 .45973 .39379 1.5874)"
+       x2="22.008"
+       gradientUnits="userSpaceOnUse"
+       y2="33"
+       id="linearGradient5562">
+      <stop
+         offset="0"
+         style="stop-color:#6e6e6e"
+         id="stop6830" />
+      <stop
+         offset="1"
+         style="stop-color:#1e1e1e"
+         id="stop6832" />
+    </linearGradient>
+    <radialGradient
+       r="13"
+       gradientTransform="matrix(.34490 -.0026213 0.00146 .19209 2.5148 9.5924)"
+       cx="11.537"
+       cy="15.28"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5554">
+      <stop
+         offset="0"
+         style="stop-color:#fff"
+         id="stop2465" />
+      <stop
+         offset="1"
+         style="stop-color:#fff;stop-opacity:0"
+         id="stop2467" />
+    </radialGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#radialGradient5591"
+       id="radialGradient5083"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.62745,0,0,0.16993,-3.0588,13.634)"
+       cx="24"
+       cy="41.875"
+       r="19.125" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5581"
+       id="linearGradient5085"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.48837,0,0,0.5,0.27903,1.2499)"
+       x1="11.519"
+       y1="20"
+       x2="11.506"
+       y2="37" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5583"
+       id="linearGradient5087"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.48837,0,0,0.5,0.27903,1.2499)"
+       x1="20.562"
+       y1="37"
+       x2="20.279"
+       y2="20" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#radialGradient5577"
+       id="radialGradient5089"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.46334,0.0080418,-0.0058515,0.28835,0.94804,9.495)"
+       cx="3.7591"
+       cy="11.918"
+       r="21" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5562"
+       id="linearGradient5091"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.48359,0,0,0.45973,0.39379,1.5874)"
+       x1="21.919"
+       y1="21"
+       x2="22.008"
+       y2="33" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5564"
+       id="linearGradient5093"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.48359,0,0,0.45973,0.39379,1.5874)"
+       x1="15.601"
+       y1="33"
+       x2="15.335"
+       y2="21" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#radialGradient5554"
+       id="radialGradient5095"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.3449,-0.0026213,0.00146,0.19209,2.5148,9.5924)"
+       cx="11.537"
+       cy="15.28"
+       r="13" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6666"
+       id="linearGradient5097"
+       gradientUnits="userSpaceOnUse"
+       x1="12"
+       y1="10"
+       x2="12"
+       y2="3" />
+    <linearGradient
+       x1="5.5"
+       y1="-3"
+       x2="14.154"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient4456"
+       y2="18.844"
+       id="linearGradient2839" />
+    <linearGradient
+       x1="5.5"
+       y1="-3"
+       x2="13"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient4456"
+       y2="16"
+       id="linearGradient4462" />
+    <linearGradient
+       x1="-47.659"
+       y1="178.97"
+       gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+       x2="-42.818"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient7012-661-145-733-759-865-745-661-970-94-1-0"
+       y2="197.04"
+       id="linearGradient4322" />
+    <linearGradient
+       id="linearGradient7012-661-145-733-759-865-745-661-970-94-1-0">
+      <stop
+         offset="0"
+         style="stop-color:#f0c178"
+         id="stop3618-1-9" />
+      <stop
+         offset=".5"
+         style="stop-color:#e18941"
+         id="stop3270-5-6" />
+      <stop
+         offset="1"
+         style="stop-color:#ec4f18"
+         id="stop3620-9-3" />
+    </linearGradient>
+    <linearGradient
+       x1="-39.666"
+       y1="198.91"
+       gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+       x2="-46.583"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3390-178-986-453-4-5"
+       y2="176.96"
+       id="linearGradient3732" />
+    <linearGradient
+       id="linearGradient3390-178-986-453-4-5">
+      <stop
+         offset="0"
+         style="stop-color:#bb2b12"
+         id="stop3624-8-6" />
+      <stop
+         offset="1"
+         style="stop-color:#cd7233"
+         id="stop3626-1-1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4456">
+      <stop
+         offset="0"
+         style="stop-color:#f6daae"
+         id="stop4458" />
+      <stop
+         offset="1"
+         style="stop-color:#f0c178;stop-opacity:0"
+         id="stop4460" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3390-178-986-453-4-5"
+       id="linearGradient5188"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+       x1="-39.666"
+       y1="198.91"
+       x2="-46.583"
+       y2="176.96" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7012-661-145-733-759-865-745-661-970-94-1-0"
+       id="linearGradient5190"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+       x1="-47.659"
+       y1="178.97"
+       x2="-42.818"
+       y2="197.04" />
+    <linearGradient
+       x1="5.5"
+       y1="-3"
+       x2="14.154"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient4456-7"
+       y2="18.844"
+       id="linearGradient2839-6" />
+    <linearGradient
+       x1="5.5"
+       y1="-3"
+       x2="13"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient4456-7"
+       y2="16"
+       id="linearGradient4462-6" />
+    <linearGradient
+       x1="-40.64"
+       y1="182.98"
+       gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+       x2="-46.994"
+       gradientUnits="userSpaceOnUse"
+       y2="198.19"
+       id="linearGradient4324">
+      <stop
+         offset="0"
+         style="stop-color:#d7e866"
+         id="stop3641" />
+      <stop
+         offset=".64406"
+         style="stop-color:#98b438"
+         id="stop3643" />
+      <stop
+         offset="1"
+         style="stop-color:#a1ba49"
+         id="stop3645" />
+    </linearGradient>
+    <linearGradient
+       x1="-40.64"
+       y1="182.98"
+       gradientTransform="matrix(0.92957,0,0,0.99594,51.302,-181.74)"
+       x2="-46.994"
+       gradientUnits="userSpaceOnUse"
+       y2="198.19"
+       id="linearGradient4322-5">
+      <stop
+         offset="0"
+         style="stop-color:#d7e866"
+         id="stop3618-1-9-1" />
+      <stop
+         offset=".64198"
+         style="stop-color:#98b438"
+         id="stop3270-5-6-3" />
+      <stop
+         offset="1"
+         style="stop-color:#a1ba49"
+         id="stop3620-9-3-5" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4456-7">
+      <stop
+         offset="0"
+         style="stop-color:#e5f09a"
+         id="stop4458-2" />
+      <stop
+         offset="1"
+         style="stop-color:#d7e866;stop-opacity:0"
+         id="stop4460-5" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       id="XMLID_45_"
+       y2="27.836672"
+       x2="74.587158"
+       y1="21.424805"
+       x1="68.175293">
+      <stop
+         offset="0"
+         style="stop-color:#babdb6;stop-opacity:1"
+         id="stop695" />
+      <stop
+         offset="1"
+         style="stop-color:#eeeeec;stop-opacity:1"
+         id="stop697" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.32937464,-0.18440234,0.2272317,0.42503946,63.110644,29.8148)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#XMLID_45_"
+       id="linearGradient6543"
+       y2="22.860907"
+       x2="24.190449"
+       y1="23.843431"
+       x1="22.225399" />
+    <linearGradient
+       gradientTransform="matrix(0.32429489,-0.1897767,0.23187135,0.40393918,63.404032,30.47844)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2229"
+       id="linearGradient6531"
+       y2="27.087946"
+       x2="24.947838"
+       y1="21.144136"
+       x1="21.054403" />
+    <linearGradient
+       gradientTransform="matrix(1.3432519,-0.79619135,0.98307194,1.7344871,-329.42724,256.04227)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#XMLID_897_"
+       id="linearGradient6534"
+       y2="10.711433"
+       x2="296.93979"
+       y1="4.7592773"
+       x1="292.97168" />
+    <linearGradient
+       id="linearGradient2229">
+      <stop
+         offset="0"
+         style="stop-color:#e2e2e2;stop-opacity:1"
+         id="stop2231" />
+      <stop
+         offset="1"
+         style="stop-color:#d8d8d8;stop-opacity:1"
+         id="stop2233" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(0.30002427,-0.15885894,0.1590255,0.44281237,66.323263,29.078644)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient2229"
+       id="linearGradient6538"
+       y2="23.942537"
+       x2="24.32597"
+       y1="6.4603648"
+       x1="20.288025" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       id="XMLID_897_"
+       y2="10.711433"
+       x2="296.93979"
+       y1="4.7592773"
+       x1="292.97168">
+      <stop
+         offset="0"
+         style="stop-color:#e8e8e5;stop-opacity:1"
+         id="stop45093" />
+      <stop
+         offset="1"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         id="stop45095" />
+    </linearGradient>
+    <linearGradient
+       gradientTransform="matrix(-1.6199036,0.64359508,0.87746896,1.8299675,548.24021,-170.70599)"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#XMLID_897_"
+       id="linearGradient6541"
+       y2="9.9224663"
+       x2="296.44699"
+       y1="7.4534159"
+       x1="294.8241" />
+    <linearGradient
+       x1="-55.344"
+       y1="34.058"
+       gradientTransform="matrix(0.4153,0,0,0.43675,24.711,-5.7201)"
+       x2="-51.786"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3931"
+       y2="2.9062"
+       id="linearGradient2908" />
+    <linearGradient
+       x1="25.132"
+       y1="6.7287"
+       gradientTransform="matrix(0.51431,0,0,0.46669,-5.8439,-5.2)"
+       x2="25.132"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3600"
+       y2="47.013"
+       id="linearGradient2906" />
+    <linearGradient
+       x1="-56.333"
+       y1="17.518"
+       gradientTransform="matrix(0.4153,0,0,0.43675,30.711,0.27988)"
+       x2="-47.636"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3931"
+       y2="-.10106"
+       id="linearGradient2992" />
+    <linearGradient
+       x1="25.132"
+       y1="6.7287"
+       gradientTransform="matrix(0.51431,0,0,0.46669,0.15615,0.79999)"
+       x2="25.132"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient3600"
+       y2="47.013"
+       id="linearGradient2990" />
+    <linearGradient
+       id="linearGradient3931">
+      <stop
+         offset="0"
+         style="stop-color:#787a75"
+         id="stop3933-0" />
+      <stop
+         offset="1"
+         style="stop-color:#cbcbcb"
+         id="stop3935-0" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3600">
+      <stop
+         offset="0"
+         style="stop-color:#f4f4f4"
+         id="stop3602-7" />
+      <stop
+         offset="1"
+         style="stop-color:#dbdbdb"
+         id="stop3604-8" />
+    </linearGradient>
+    <linearGradient
+       x1="6.0602"
+       y1="19"
+       x2="5.8041"
+       gradientUnits="userSpaceOnUse"
+       y2="11"
+       id="linearGradient3621">
+      <stop
+         offset="0"
+         style="stop-color:#9d7d53"
+         id="stop3617" />
+      <stop
+         offset="1"
+         style="stop-color:#ad8757"
+         id="stop3619" />
+    </linearGradient>
+    <linearGradient
+       x1="22.452"
+       y1="30.05"
+       gradientTransform="matrix(0.41182,0,0,0.51282,-0.5502,-14.24)"
+       x2="22.452"
+       gradientUnits="userSpaceOnUse"
+       y2="40.186"
+       id="linearGradient2935">
+      <stop
+         offset="0"
+         style="stop-color:#787878"
+         id="stop3261" />
+      <stop
+         offset=".36564"
+         style="stop-color:#828282"
+         id="stop3263" />
+      <stop
+         offset="1"
+         style="stop-color:#464646"
+         id="stop3267" />
+    </linearGradient>
+    <linearGradient
+       x1="321.58"
+       y1="86.05"
+       gradientTransform="matrix(0.41035,0,0,0.51289,-121.99,-42.965)"
+       x2="321.58"
+       gradientUnits="userSpaceOnUse"
+       y2="96.245"
+       id="linearGradient2933">
+      <stop
+         offset="0"
+         style="stop-color:#787878"
+         id="stop3271" />
+      <stop
+         offset=".34447"
+         style="stop-color:#bebebe"
+         id="stop3273" />
+      <stop
+         offset=".37315"
+         style="stop-color:#c8c8c8"
+         id="stop3275" />
+      <stop
+         offset=".48991"
+         style="stop-color:#e6e6e6"
+         id="stop3277" />
+      <stop
+         offset="1"
+         style="stop-color:#8c8c8c"
+         id="stop3279" />
+    </linearGradient>
+    <linearGradient
+       x1="25.132"
+       y1="6.7287"
+       gradientTransform="matrix(0.51431,0,0,0.46669,-5.8439,-3.2)"
+       x2="25.132"
+       gradientUnits="userSpaceOnUse"
+       y2="47.013"
+       id="linearGradient2906-5">
+      <stop
+         offset="0"
+         style="stop-color:#c1a581"
+         id="stop3620-9" />
+      <stop
+         offset="1"
+         style="stop-color:#9b784b"
+         id="stop3622" />
+    </linearGradient>
+    <linearGradient
+       x1="-56.333"
+       y1="17.518"
+       gradientTransform="matrix(0.4153,0,0,0.43675,30.711,0.27988)"
+       x2="-47.636"
+       gradientUnits="userSpaceOnUse"
+       y2="-.10106"
+       id="linearGradient2992-9">
+      <stop
+         offset="0"
+         style="stop-color:#787a75"
+         id="stop3933-3" />
+      <stop
+         offset="1"
+         style="stop-color:#cbcbcb"
+         id="stop3935-7" />
+    </linearGradient>
+    <linearGradient
+       x1="25.132"
+       y1="6.7287"
+       gradientTransform="matrix(0.51431,0,0,0.46669,0.15615,0.79999)"
+       x2="25.132"
+       gradientUnits="userSpaceOnUse"
+       y2="47.013"
+       id="linearGradient2990-5">
+      <stop
+         offset="0"
+         style="stop-color:#f4f4f4"
+         id="stop3602-8" />
+      <stop
+         offset="1"
+         style="stop-color:#dbdbdb"
+         id="stop3604-61" />
+    </linearGradient>
+    <linearGradient
+       x1="173.1"
+       y1="75.319"
+       gradientTransform="matrix(0.13658,0,0,0.14121,-9.717,7.6392)"
+       x2="173.1"
+       gradientUnits="userSpaceOnUse"
+       y2="11.949"
+       id="linearGradient2700">
+      <stop
+         offset="0"
+         style="stop-color:#343435;stop-opacity:.97647"
+         id="stop2302" />
+      <stop
+         offset="1"
+         style="stop-color:#919295"
+         id="stop2304" />
+    </linearGradient>
+    <linearGradient
+       x1="41.542"
+       y1="68.292"
+       gradientTransform="matrix(0.13658,0,0,0.14121,7.9984,8.7019)"
+       x2="41.485"
+       gradientUnits="userSpaceOnUse"
+       y2="4.5363"
+       id="linearGradient2702">
+      <stop
+         offset="0"
+         style="stop-color:#333"
+         id="stop11106" />
+      <stop
+         offset="1"
+         style="stop-color:#333;stop-opacity:.61224"
+         id="stop11108" />
+    </linearGradient>
+    <radialGradient
+       r="6.6562"
+       gradientTransform="matrix(1.0388,0,0,0.83463,-3.35,0.21686)"
+       cx="15.414"
+       cy="13.078"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient2705">
+      <stop
+         offset="0"
+         style="stop-color:#fff"
+         id="stop4469" />
+      <stop
+         offset="1"
+         style="stop-color:#fff;stop-opacity:.24762"
+         id="stop4471" />
+    </radialGradient>
+    <radialGradient
+       r="8.3085"
+       cx="18.241"
+       cy="21.818"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient4193">
+      <stop
+         offset="0"
+         style="stop-color:#a1a1a1;stop-opacity:.20784"
+         id="stop4456" />
+      <stop
+         offset="1"
+         style="stop-color:#a1a1a1;stop-opacity:.67843"
+         id="stop4458-7" />
+    </radialGradient>
+    <linearGradient
+       x1="-172.65"
+       y1="99.667"
+       gradientTransform="matrix(0.13658,0,0,0.14121,42.855,6.039)"
+       x2="-166.64"
+       gradientUnits="userSpaceOnUse"
+       y2="93.654"
+       id="linearGradient2710">
+      <stop
+         offset="0"
+         style="stop-color:#242424;stop-opacity:.99216"
+         id="stop11116" />
+      <stop
+         offset="1"
+         style="stop-color:#656565"
+         id="stop11118" />
+    </linearGradient>
+    <linearGradient
+       x1="32.892"
+       y1="8.059"
+       gradientTransform="matrix(0.54163,0,0,0.5203,-0.94021,-0.30186)"
+       x2="36.358"
+       gradientUnits="userSpaceOnUse"
+       y2="5.4565"
+       id="linearGradient4543">
+      <stop
+         offset="0"
+         style="stop-color:#fefefe"
+         id="stop8591-3" />
+      <stop
+         offset="1"
+         style="stop-color:#cbcbcb"
+         id="stop8593-7" />
+    </linearGradient>
+    <linearGradient
+       x1="17.289"
+       y1="2.1849"
+       x2="15.18"
+       gradientUnits="userSpaceOnUse"
+       y2="5.8215"
+       id="linearGradient4565">
+      <stop
+         offset="0"
+         style="stop-color:#cacaca"
+         id="stop4561-2" />
+      <stop
+         offset="1"
+         style="stop-color:#949492"
+         id="stop4563-2" />
+    </linearGradient>
+    <linearGradient
+       x1="25.132"
+       y1="6.7287"
+       gradientTransform="matrix(0.54288,0,0,0.48891,-1.0291,-0.23377)"
+       x2="25.132"
+       gradientUnits="userSpaceOnUse"
+       y2="47.013"
+       id="linearGradient4545">
+      <stop
+         offset="0"
+         style="stop-color:#f4f4f4"
+         id="stop3602-3" />
+      <stop
+         offset="1"
+         style="stop-color:#dbdbdb"
+         id="stop3604-7" />
+    </linearGradient>
+    <linearGradient
+       x1="-51.786"
+       y1="50.786"
+       gradientTransform="matrix(0.43837,0,0,0.45754,31.224,-0.77865)"
+       x2="-51.786"
+       gradientUnits="userSpaceOnUse"
+       y2="2.9062"
+       id="linearGradient4547">
+      <stop
+         offset="0"
+         style="stop-color:#8d8f8a"
+         id="stop3933-2" />
+      <stop
+         offset="1"
+         style="stop-color:#cbcbcb"
+         id="stop3935-76" />
+    </linearGradient>
+    <linearGradient
+       x1="302.86"
+       y1="366.65"
+       gradientTransform="matrix(2.7744,0,0,1.9697,-1892.2,-872.89)"
+       x2="302.86"
+       gradientUnits="userSpaceOnUse"
+       y2="609.51"
+       id="linearGradient4532">
+      <stop
+         offset="0"
+         style="stop-opacity:0"
+         id="stop5050-6" />
+      <stop
+         offset=".5"
+         id="stop5056-0" />
+      <stop
+         offset="1"
+         style="stop-opacity:0"
+         id="stop5052-53" />
+    </linearGradient>
+    <radialGradient
+       r="117.14"
+       gradientTransform="matrix(2.7744,0,0,1.9697,-1891.6,-872.89)"
+       cx="605.71"
+       cy="486.65"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5060-04"
+       id="radialGradient4534" />
+    <linearGradient
+       id="linearGradient5060-04">
+      <stop
+         offset="0"
+         id="stop5062-4" />
+      <stop
+         offset="1"
+         style="stop-opacity:0"
+         id="stop5064-1" />
+    </linearGradient>
+    <radialGradient
+       r="117.14"
+       gradientTransform="matrix(-2.7744,0,0,1.9697,112.76,-872.89)"
+       cx="605.71"
+       cy="486.65"
+       gradientUnits="userSpaceOnUse"
+       xlink:href="#linearGradient5060-04"
+       id="radialGradient4536" />
   </defs>
   <sodipodi:namedview
      id="base"
@@ -662,9 +2522,9 @@
      borderopacity="1.0"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:zoom="11.313708"
-     inkscape:cx="477.40877"
-     inkscape:cy="-82.224917"
+     inkscape:zoom="1.9999999"
+     inkscape:cx="129.24816"
+     inkscape:cy="-53.192872"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      width="16px"
@@ -814,7 +2674,7 @@
        height="24"
        width="24"
        id="add_wire"
-       style="opacity:1;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+       style="fill:#ff0000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
     <rect
        style="opacity:1;fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
        id="add_divergence"
@@ -2893,5 +4753,916 @@
        d="m 422.51945,108.09999 0,-3.69999 c 0,-1.10799 0.58266,-2 1.69064,-2 1.108,0 1.30076,0.58603 1.30076,0.95332 l 0,4.94668 c 0,-4.53334 0,-5.76667 0,-10.3 0,-1.108 1.00248,-1.999999 2.11049,-1.999999 1.108,0 1.90765,0.892006 1.9116,1.999999 l 0,6.19293 0,-7.79293 c 0,-1.107998 0.9804,-1.999999 2.0884,-1.999999 1.108,0 1.9116,0.957418 1.9116,2.065417 0,0 0,8.704682 0,7.596682 l 0,-6.0621 c 0,-1.108 0.9804,-1.999999 2.0884,-1.999999 1.108,0 1.91162,0.891999 1.91162,1.999999 0,0 0,8.14719 0,7.03918 l 0,-3.72334 c 0,-1.10799 0.98038,-1.999996 2.08838,-1.999996 1.10802,0 1.91161,0.892006 1.91161,1.999996 l 0,4.68416 c 0,0 0,3.59999 -0.79999,6 -4.82135,2 -11.28619,2 -16.12285,0 -1.02363,-0.38443 -2.09065,-1.59999 -2.09066,-3.90001 z"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="csssccsscsscssscsssscccc" />
+    <rect
+       inkscape:label="#rect3636"
+       y="139"
+       x="-265"
+       height="24"
+       width="24"
+       id="new"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;overflow:visible;enable-background:accumulate;opacity:0" />
+    <g
+       id="g4362"
+       transform="translate(-265.97486,138.99141)">
+      <rect
+         x="3.5"
+         y="22"
+         width="17"
+         height="2"
+         style="opacity:0.15;fill:url(#linearGradient2447)"
+         id="rect2879" />
+      <path
+         d="m 3.5,22 v 1.9999 c -0.6205,0.004 -1.5,-0.448 -1.5,-1 0,-0.552 0.6924,-1 1.5,-1 z"
+         style="opacity:0.15;fill:url(#radialGradient2444)"
+         id="path2881"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 20.5,22 v 1.9999 c 0.62047,0.0038 1.5,-0.44807 1.5,-1.0001 0,-0.552 -0.6924,-0.99982 -1.5,-0.99982 z"
+         style="opacity:0.15;fill:url(#radialGradient2441)"
+         id="path2883"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 3.5,0.49996 H 15 c 0.683,0.2373 4.541,3.1281 5.5,5 0,5.7292 3.9e-5,11.271 3.9e-5,17 h -17 v -22 z"
+         style="fill:url(#linearGradient2435);stroke:url(#linearGradient2438);stroke-width:0.99992001;stroke-linejoin:round"
+         id="path4160"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 4.1702,22 C 4.0764,22 4,21.914 4,21.809 V 1.211 C 4,1.106 4.0764,1.0205 4.1702,1.0205 7.6917,1.0732 11.594,0.94167 15.1112,1.0336 l 4.839,4.3272 0.05,16.448 c 0,0.105 -0.076,0.191 -0.17,0.191 h -15.66 z"
+         style="fill:url(#radialGradient2432)"
+         id="path4191"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 19.5,5.677 V 21.5 h -15 v -20 h 10.394"
+         style="opacity:0.6;fill:none;stroke:url(#linearGradient2429)"
+         id="path2435"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 14.075,1 c 1.1563,0.32877 0.33906,4.6144 0.33906,4.6144 0,0 4.5154,-0.42774 5.6077,1.195 1.489,2.2122 -0.068,-0.6352 -0.173,-0.8217 -0.756,-1.3401 -3.867,-4.5471 -5.046,-4.9412 C 14.71476,1.017 14.51976,1 14.07476,1 z"
+         style="opacity:0.2;fill-rule:evenodd"
+         id="path3370"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 14,1 c 1.5262,0 1,4 1,4 0,0 4.9921,-0.45326 4.9921,2 0,-0.59774 0.05575,-1.4784 -0.06407,-1.6559 -0.839,-1.243 -3.744,-3.8619 -4.798,-4.2976 C 15.04403,1.0109 14.44403,1 14.00003,1 z"
+         style="fill:url(#linearGradient2425);fill-rule:evenodd"
+         id="path4474"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 16.489,16.507 v -3 h 4 v 3 h 3 v 4 h -3 v 3 h -4 v -3 h -2.9895 v -4 h 2.9895 z"
+         style="color:#000000;fill:url(#radialGradient3121);stroke:url(#linearGradient3123);stroke-width:0.98543;stroke-linecap:round;stroke-linejoin:round"
+         id="path2262"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 17.489,17.507 v -3 h 2 v 3 h 3 v 2 h -3 v 3 h -2 v -3 h -3 v -2 h 3 z"
+         style="opacity:0.4;fill:none;stroke:url(#linearGradient5530)"
+         id="path2272"
+         inkscape:connector-curvature="0" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="-266"
+       y="133"
+       id="text3638-3"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1"
+         x="-266"
+         y="133">%%new%%</tspan></text>
+    <rect
+       inkscape:label="#rect3636"
+       y="139"
+       x="-231"
+       height="24"
+       width="24"
+       id="open"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0" />
+    <g
+       id="layer1-3"
+       transform="translate(-231.01164,138.33944)">
+      <g
+         id="g3350">
+        <g
+           transform="matrix(0.54593,0,0,0.51685,-0.96573,-0.57818)"
+           style="stroke-width:1.88259995"
+           id="g3490">
+          <g
+             transform="matrix(0.021652,0,0,0.014857,43.008,42.685)"
+             style="stroke-width:104.95999908"
+             id="g5022">
+            <rect
+               x="-1559.3"
+               y="-150.7"
+               width="1339.6"
+               height="478.35999"
+               style="opacity:0.40206;fill:url(#linearGradient2617)"
+               id="rect2527" />
+            <path
+               d="m -219.62,-150.68 v 478.33 c 142.88,0.9 345.4,-107.17 345.4,-239.2 0,-132.02 -159.44,-239.13 -345.4,-239.13 z"
+               style="opacity:0.40206;fill:url(#radialGradient2619)"
+               id="path2529"
+               inkscape:connector-curvature="0" />
+            <path
+               d="m -1559.3,-150.68 v 478.33 c -142.8,0.9 -345.4,-107.17 -345.4,-239.2 0,-132.02 159.5,-239.13 345.4,-239.13 z"
+               style="opacity:0.40206;fill:url(#radialGradient2621)"
+               id="path2531"
+               inkscape:connector-curvature="0" />
+          </g>
+        </g>
+        <path
+           d="m 0.71358,2.5695 c -0.08553,0 -0.15886,0.0927 -0.15886,0.1885 0,5.8692 -0.04308,12.244 -0.04915,18.225 0.02909,0.895 0.53723,1.505 0.88963,1.508 1.0128,0.009 0.5393,-0.004 1.0486,0 6.4703,-0.016 13.579,-0.078 20.049,-0.094 0.054,0.007 -1.477,-0.108 -1.462,-1.446 0,-4.673 -0.502,-11.187 -0.502,-15.86 0,-0.1865 -0.015,-0.2905 -0.031,-0.3767 -0.013,-0.0666 -0.029,-0.0989 -0.064,-0.1257 -0.028,-0.0244 -0.054,-0.057 -0.095,-0.0628 h -8.82 c -0.816,0 -1.002,-1.992 -2.2141,-1.992 L 0.7134,2.5695 h -2e-5 z"
+           style="fill:url(#linearGradient3019);stroke:url(#linearGradient3021);stroke-width:1.01110005;stroke-linecap:round;stroke-linejoin:round"
+           id="path3496"
+           inkscape:connector-curvature="0" />
+        <rect
+           x="2"
+           y="4"
+           width="7"
+           height="1"
+           ry="0.5"
+           rx="0.53846002"
+           style="fill:#edbd74;display:block"
+           id="rect2545" />
+        <g
+           transform="translate(4,1)"
+           id="layer1-9">
+          <path
+             d="m 1.4976,0.49763 h 7.9177 c 0.5228,0.16184 4.3537,2.6136 5.0867,3.8903 v 11.114 H 1.498 c -4e-4,-5.001 -4e-4,-10.003 -4e-4,-15.004 v -3.7e-4 z"
+             style="fill:url(#linearGradient3253);stroke:url(#linearGradient3255);stroke-width:0.99524999;stroke-linejoin:round"
+             id="rect2594"
+             inkscape:connector-curvature="0" />
+          <path
+             d="m 9.5,0.49792 v 4.0021 h 5.002 c 0,-1.9018 -3.006,-4.0021 -5.002,-4.0021 v 2e-5 z"
+             style="fill:url(#linearGradient3257);fill-rule:evenodd;stroke:url(#linearGradient3259);stroke-width:0.99524999;stroke-linejoin:round"
+             id="path12038"
+             inkscape:connector-curvature="0" />
+        </g>
+        <path
+           d="m 3.5357,10.582 c 10.57,0 13.03,0 19.993,-0.021 0,1.175 0.258,12 -0.484,12 -0.714,0 -14.046,-0.07 -21.009,-0.05 1.472,0 1.4997,-0.465 1.4997,-11.929 z"
+           style="fill:url(#radialGradient3293);stroke:url(#linearGradient3295);stroke-linecap:round;stroke-linejoin:round"
+           id="path3498"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 22.975,11.376 c 0,0 -16.832,0.07 -18.397,-0.069 C 4.4954,21.653 4.0774,22.109 4.0774,22.109"
+           style="opacity:0.4;fill:none;stroke:url(#radialGradient3004-5-2);stroke-width:0.98119003"
+           id="path3211"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 4.288,10.172 c -0.6849,0 -1.2517,0.384 -1.2517,0.847 v 4.816 c 0.0026,0.086 0.0661,0.185 0.1669,0.245 0.1008,0.06 0.2297,0.085 0.3755,0.075 h 0.0139 l 20.026,-2.145 c 0.232,-0.024 0.414,-0.16 0.417,-0.319 v -2.672 c 0,-0.463 -0.566,-0.847 -1.251,-0.847 H 4.2876 z"
+           style="fill:url(#linearGradient3001-8-3);fill-rule:evenodd"
+           id="path2608"
+           inkscape:connector-curvature="0" />
+      </g>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="-233"
+       y="133"
+       id="text3638-3-1"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-2"
+         x="-233"
+         y="133">%%open%%</tspan></text>
+    <rect
+       inkscape:label="#rect3636"
+       y="139"
+       x="-197"
+       height="24"
+       width="24"
+       id="save"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="-199"
+       y="133"
+       id="text3638-3-1-0"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-2-4"
+         x="-199"
+         y="133">%%save%%</tspan></text>
+    <g
+       id="layer1-97"
+       transform="translate(-197.02443,138.98432)">
+      <rect
+         x="2.8817999"
+         y="21.363001"
+         width="18.236"
+         height="2.6373999"
+         style="opacity:0.40206;fill:url(#linearGradient2883)"
+         id="rect2723" />
+      <path
+         d="m 21.109,21.363 v 2.6373 c 1.1423,0.005 2.7616,-0.59088 2.7616,-1.3188 0,-0.72793 -1.2748,-1.3185 -2.7616,-1.3185 z"
+         style="opacity:0.40206;fill:url(#radialGradient2880)"
+         id="path2725"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 2.8907,21.363 v 2.6373 c -1.1424,0.005 -2.7616,-0.59088 -2.7616,-1.3188 0,-0.72793 1.2748,-1.3185 2.7616,-1.3185 z"
+         style="opacity:0.40206;fill:url(#radialGradient2877)"
+         id="path2727"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 23.5,18.5 c -0.46639,3.38 -0.35138,3.9815 -1.1959,3.9815 -0.33079,0.04823 -13.337,0 -20.654,0 -0.91714,0 -0.68541,0.06576 -1.1498,-3.9786 l 23,-0.0029 v -4.9e-5 z"
+         style="fill:url(#linearGradient2872);stroke:#353537;stroke-linejoin:round"
+         id="rect2992"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 2.7,19 H 16 v 3 H 3 L 2.7,19 z"
+         style="fill:url(#linearGradient8490);fill-rule:evenodd"
+         id="rect9146"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 3,22 C 3,22 2.8,19.8365 2.8,19.8365 4.1539,21.5511 9.1194,22 12.5426,22 H 3 z"
+         style="opacity:0.81142997;fill:url(#linearGradient8487);fill-rule:evenodd"
+         id="path9148"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 2.5,2 0.5226,18.483 c -0.014949,0 -0.022616,0.0044 -0.022616,0.01667 h 23 c 0,-0.01232 -0.0077,-0.01667 -0.02261,-0.01667 L 21.500374,2 c -0.099,-0.8274 -1.167,-1.5 -2,-1.5 h -15 c -0.8333,0 -1.9007,0.6726 -2,1.5 z"
+         style="fill:url(#radialGradient4072);stroke:url(#linearGradient2869);stroke-linecap:round;stroke-linejoin:round"
+         id="rect2990"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 1.4991,18.5 h 21.002"
+         style="opacity:0.6;fill:none;stroke:#ffffff;stroke-linecap:round;stroke-linejoin:round"
+         id="path2215"
+         inkscape:connector-curvature="0" />
+      <rect
+         x="1"
+         y="19"
+         width="22"
+         height="3"
+         style="opacity:0.2;fill:url(#radialGradient3248)"
+         id="rect6300-3" />
+      <path
+         d="m 14.531,1.8125 c -0.27749,0 -0.52468,0.080669 -0.71875,0.21875 -0.19407,0.138081 -0.33544,0.35016 -0.34375,0.59375 -0.02564,0.74969 -0.40816,1.2893 -1.125,1.7812 -0.71102,0.48797 -1.7547,0.89986 -3,1.2812 -0.010197,0.00312 -0.021024,-0.00312 -0.03125,0 -0.471,0.098904 -1.245,0.37608 -2,0.65625 -0.7654,0.2842 -1.4645,0.5582 -1.781,0.7813 -1.5978,1.0054 -2.5829,2.3417 -2.7187,3.813 -0.12364,1.3391 0.47939,2.6794 1.6562,3.75 1.7217,1.5662 4.5353,2.5 7.5312,2.5 2.9959,0 5.8094,-0.93383 7.5312,-2.5 1.075,-0.97766 1.6562,-2.1551 1.6562,-3.375 0,-0.09948 0.0114,-0.24227 0,-0.375 -0.12,-1.2916 -0.916,-2.4839 -2.188,-3.438 -0.036,-0.5044 -0.344,-4.875 -0.344,-4.875 -0.017,-0.2437 -0.176,-0.4572 -0.375,-0.5938 -0.199,-0.1365 -0.442,-0.2187 -0.719,-0.2187 h -3.0312 z m 0,0.53125 h 3.0312 c 0.06724,0 0.12597,0.018412 0.15625,0.03125 l 0.375,5.125 c -0.0035,0.020687 -0.0035,0.041813 0,0.0625 0.0091,0.011612 0.01964,0.022101 0.03125,0.03125 0.01556,0.025516 0.03698,0.046944 0.0625,0.0625 1.232,0.84283 1.959,2.1272 2.0625,3.25 0.12887,1.3951 -0.69926,2.5486 -2.1875,3.4062 -1.4882,0.85766 -3.6257,1.375 -6.0625,1.375 -2.4368,0 -4.5743,-0.51734 -6.0625,-1.375 -1.4877,-0.857 -2.3158,-2.011 -2.187,-3.406 0.1109,-1.2003 0.9556,-2.5362 2.3438,-3.406 0.0116,-0.0091 0.0221,-0.0196 0.0312,-0.0312 0.0046,-0.0041 0.0687,-0.0477 0.1562,-0.0938 0.0876,-0.0461 0.2082,-0.0951 0.3438,-0.1562 0.2712,-0.1224 0.601,-0.2644 0.9688,-0.4063 0.7355,-0.2837 1.5683,-0.5498 1.9687,-0.625 0.010399,8.695e-4 0.020851,8.695e-4 0.03125,0 1.2093,-0.36821 2.3581,-0.8066 3.25,-1.4062 0.87385,-0.5875 1.5033,-1.369 1.5625,-2.4062 0.02028,-0.00976 0.06108,-0.03125 0.125,-0.03125 z"
+         style="fill:url(#radialGradient8471)"
+         id="path8469"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 12,13 C 10.3175,13 9.0277,12.15526 9.0005,11.0348 9.0002,11.0218 9,11.0108 9,10.9988 9,10.5928 9.1691,10.2078 9.4903,9.8811 10.034,9.3292 10.972,8.9998 12,8.9998 c 1.028,0 1.9662,0.32942 2.5096,0.8813 0.33072,0.33567 0.50019,0.73466 0.48986,1.1533 -0.028,1.12 -1.318,1.965 -3,1.965 v -6.3e-5 3e-6 z m 0.05026,-2.746 c -1.5809,0 -2.4365,0.21014 -2.4175,0.97447 0.01833,0.75242 1.0782,1.3536 2.3673,1.3536 1.2892,0 2.349,-0.60139 2.3673,-1.3536 0.01876,-0.76453 -0.73621,-0.97447 -2.3171,-0.97447 z"
+         style="fill:url(#radialGradient8464)"
+         id="path9156"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 4.9688,1.75 C 4.901587,1.7681 4.84496,1.8134 4.81255,1.875 4.799259,1.894268 4.78874,1.915307 4.7813,1.9375 L 4.7188,2.1562 3.875,5.4062 3.75,5.9375 C 3.74409,5.96847 3.74409,6.00028 3.75,6.03125 3.75408,6.064268 3.7647,6.09614 3.78125,6.125 3.813663,6.1866 3.870287,6.2319 3.9375,6.25 c 0.040995,0.010584 0.084005,0.010584 0.125,0 l 0.40625,-0.125 6.875,-2.0312 H 11.375 c 0.01041,6.516e-4 0.02084,6.516e-4 0.03125,0 0.01041,6.516e-4 0.02084,6.516e-4 0.03125,0 C 11.45969,4.08636 11.48073,4.075841 11.5,4.06255 11.96004,3.80879 12.19521,3.31995 12.25,2.87505 12.27806,2.64681 12.2584,2.41855 12.1875,2.2188 12.1465,2.1052 12.0605,1.9975 11.9685,1.9062 11.8755,1.815 11.7565,1.7452 11.5935,1.75 H 11.56225 5.18725 5.031 C 5.010249,1.74739 4.989251,1.74739 4.9685,1.75 z m 0.5,0.6875 H 11.375 C 11.36,2.5153 11.34,2.5681 11.312,2.6562 11.263,2.8181 11.167,2.9496 11.188,2.9375 L 4.9375,4.75 5.4688,2.4375 z"
+         style="fill:url(#radialGradient8475)"
+         id="path8473"
+         inkscape:connector-curvature="0" />
+      <g
+         transform="matrix(-0.097811,0,0,0.10767,8.1622,-3.8183)"
+         id="g9158">
+        <path
+           d="m 48.3,190.28 c 0.31446,4.2476 5.0238,7.7116 10.514,7.7116 5.4879,0 9.6432,-3.464 9.2763,-7.7116 -0.36437,-4.2251 -5.0712,-7.6367 -10.507,-7.6367 -5.438,0.002 -9.5933,3.4116 -9.2838,7.6367 z"
+           style="fill:#e6e6e6"
+           id="path9160"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 51.851,187.29 c -0.50163,0.53906 -1.0756,1.4026 -1.0756,2.5506 0,0.0824 0.005,0.16471 0.01,0.25206 0.21713,2.9274 3.8932,5.4006 8.026,5.4006 2.3534,0 4.5046,-0.81109 5.7525,-2.1737 0.53656,-0.58149 1.148,-1.5448 1.0382,-2.8276 -0.25206,-2.9024 -3.9232,-5.3557 -8.021,-5.3557 -2.3359,0.002 -4.4797,0.8061 -5.73,2.1538 h -2e-5 z"
+           style="fill:url(#radialGradient4747)"
+           id="path9162"
+           inkscape:connector-curvature="0" />
+      </g>
+      <g
+         transform="matrix(0.097811,0,0,0.10767,15.777,-3.8183)"
+         id="g9190">
+        <path
+           d="m 48.3,190.28 c 0.31446,4.2476 5.0238,7.7116 10.514,7.7116 5.4879,0 9.6432,-3.464 9.2763,-7.7116 -0.36437,-4.2251 -5.0712,-7.6367 -10.507,-7.6367 -5.438,0.002 -9.5933,3.4116 -9.2838,7.6367 z"
+           style="fill:#e6e6e6"
+           id="path9192"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 51.851,187.29 c -0.50163,0.53906 -1.0756,1.4026 -1.0756,2.5506 0,0.0824 0.005,0.16471 0.01,0.25206 0.21713,2.9274 3.8932,5.4006 8.026,5.4006 2.3534,0 4.5046,-0.81109 5.7525,-2.1737 0.53656,-0.58149 1.148,-1.5448 1.0382,-2.8276 -0.25206,-2.9024 -3.9232,-5.3557 -8.021,-5.3557 -2.3359,0.002 -4.4797,0.8061 -5.73,2.1538 h -2e-5 z"
+           style="fill:url(#radialGradient8498)"
+           id="path9194"
+           inkscape:connector-curvature="0" />
+      </g>
+      <path
+         d="m 18.611,7.5098 -6.6112,7 -6.6112,-7 h 3.1112 v -6 h 7 v 6 h 3.1112 z"
+         style="fill:url(#linearGradient2834);stroke:#548820;stroke-width:0.98045999;stroke-linecap:round;stroke-linejoin:round"
+         id="path4348"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 16.394,8.5098 -4.3945,4.5863 -4.348,-4.5863 h 1.848 v -6 h 5 v 6 h 1.8945 z"
+         style="opacity:0.35400008;fill:none;stroke:url(#linearGradient2831);stroke-width:0.98045999"
+         id="path4360"
+         inkscape:connector-curvature="0" />
+    </g>
+    <rect
+       inkscape:label="#rect3636"
+       y="139"
+       x="-162"
+       height="24"
+       width="24"
+       id="saveas"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="-166"
+       y="133"
+       id="text3638-3-1-0-5"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-2-4-7"
+         x="-166"
+         y="133">%%saveas%%</tspan></text>
+    <g
+       id="g4931"
+       transform="translate(-161.99995,138.98881)">
+      <g
+         id="layer1-39">
+        <rect
+           x="2.8817999"
+           y="21.363001"
+           width="18.236"
+           height="2.6373999"
+           style="opacity:0.40206;fill:url(#linearGradient2883-8)"
+           id="rect2723-8" />
+        <path
+           d="m 21.109,21.363 v 2.6373 c 1.1423,0.005 2.7616,-0.59088 2.7616,-1.3188 0,-0.72793 -1.2748,-1.3185 -2.7616,-1.3185 z"
+           style="opacity:0.40206;fill:url(#radialGradient2880-4)"
+           id="path2725-3"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 2.8907,21.363 v 2.6373 c -1.1424,0.005 -2.7616,-0.59088 -2.7616,-1.3188 0,-0.72793 1.2748,-1.3185 2.7616,-1.3185 z"
+           style="opacity:0.40206;fill:url(#radialGradient2877-6)"
+           id="path2727-4"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 23.5,18.5 c -0.46639,3.38 -0.35138,3.9815 -1.1959,3.9815 -0.33079,0.04823 -13.337,0 -20.654,0 -0.91714,0 -0.68541,0.06576 -1.1498,-3.9786 l 23,-0.0029 v -4.9e-5 z"
+           style="fill:url(#linearGradient2872-0);stroke:#353537;stroke-linejoin:round"
+           id="rect2992-1"
+           inkscape:connector-curvature="0" />
+        <path
+           d="M 2.7,19 H 16 v 3 H 3 L 2.7,19 z"
+           style="fill:url(#linearGradient8490-6);fill-rule:evenodd"
+           id="rect9146-2"
+           inkscape:connector-curvature="0" />
+        <path
+           d="M 3,22 C 3,22 2.8,19.8365 2.8,19.8365 4.1539,21.5511 9.1194,22 12.5426,22 H 3 z"
+           style="opacity:0.81142997;fill:url(#linearGradient8487-5);fill-rule:evenodd"
+           id="path9148-8"
+           inkscape:connector-curvature="0" />
+        <path
+           d="M 2.5,2 0.5226,18.483 c -0.014949,0 -0.022616,0.0044 -0.022616,0.01667 h 23 c 0,-0.01232 -0.0077,-0.01667 -0.02261,-0.01667 L 21.500374,2 c -0.099,-0.8274 -1.167,-1.5 -2,-1.5 h -15 c -0.8333,0 -1.9007,0.6726 -2,1.5 z"
+           style="fill:url(#radialGradient4072-4);stroke:url(#linearGradient2869-6);stroke-linecap:round;stroke-linejoin:round"
+           id="rect2990-4"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 1.4991,18.5 h 21.002"
+           style="opacity:0.6;fill:none;stroke:#ffffff;stroke-linecap:round;stroke-linejoin:round"
+           id="path2215-6"
+           inkscape:connector-curvature="0" />
+        <rect
+           x="1"
+           y="19"
+           width="22"
+           height="3"
+           style="opacity:0.2;fill:url(#radialGradient3248-5)"
+           id="rect6300-3-0" />
+        <path
+           d="m 14.531,1.8125 c -0.27749,0 -0.52468,0.080669 -0.71875,0.21875 -0.19407,0.138081 -0.33544,0.35016 -0.34375,0.59375 -0.02564,0.74969 -0.40816,1.2893 -1.125,1.7812 -0.71102,0.48797 -1.7547,0.89986 -3,1.2812 -0.010197,0.00312 -0.021024,-0.00312 -0.03125,0 -0.471,0.098904 -1.245,0.37608 -2,0.65625 -0.7654,0.2842 -1.4645,0.5582 -1.781,0.7813 -1.5978,1.0054 -2.5829,2.3417 -2.7187,3.813 -0.12364,1.3391 0.47939,2.6794 1.6562,3.75 1.7217,1.5662 4.5353,2.5 7.5312,2.5 2.9959,0 5.8094,-0.93383 7.5312,-2.5 1.075,-0.97766 1.6562,-2.1551 1.6562,-3.375 0,-0.09948 0.0114,-0.24227 0,-0.375 -0.12,-1.2916 -0.916,-2.4839 -2.188,-3.438 -0.036,-0.5044 -0.344,-4.875 -0.344,-4.875 -0.017,-0.2437 -0.176,-0.4572 -0.375,-0.5938 -0.199,-0.1365 -0.442,-0.2187 -0.719,-0.2187 h -3.0312 z m 0,0.53125 h 3.0312 c 0.06724,0 0.12597,0.018412 0.15625,0.03125 l 0.375,5.125 c -0.0035,0.020687 -0.0035,0.041813 0,0.0625 0.0091,0.011612 0.01964,0.022101 0.03125,0.03125 0.01556,0.025516 0.03698,0.046944 0.0625,0.0625 1.232,0.84283 1.959,2.1272 2.0625,3.25 0.12887,1.3951 -0.69926,2.5486 -2.1875,3.4062 -1.4882,0.85766 -3.6257,1.375 -6.0625,1.375 -2.4368,0 -4.5743,-0.51734 -6.0625,-1.375 -1.4877,-0.857 -2.3158,-2.011 -2.187,-3.406 0.1109,-1.2003 0.9556,-2.5362 2.3438,-3.406 0.0116,-0.0091 0.0221,-0.0196 0.0312,-0.0312 0.0046,-0.0041 0.0687,-0.0477 0.1562,-0.0938 0.0876,-0.0461 0.2082,-0.0951 0.3438,-0.1562 0.2712,-0.1224 0.601,-0.2644 0.9688,-0.4063 0.7355,-0.2837 1.5683,-0.5498 1.9687,-0.625 0.010399,8.695e-4 0.020851,8.695e-4 0.03125,0 1.2093,-0.36821 2.3581,-0.8066 3.25,-1.4062 0.87385,-0.5875 1.5033,-1.369 1.5625,-2.4062 0.02028,-0.00976 0.06108,-0.03125 0.125,-0.03125 z"
+           style="fill:url(#radialGradient8471-3)"
+           id="path8469-9"
+           inkscape:connector-curvature="0" />
+        <path
+           d="M 12,13 C 10.3175,13 9.0277,12.15526 9.0005,11.0348 9.0002,11.0218 9,11.0108 9,10.9988 9,10.5928 9.1691,10.2078 9.4903,9.8811 10.034,9.3292 10.972,8.9998 12,8.9998 c 1.028,0 1.9662,0.32942 2.5096,0.8813 0.33072,0.33567 0.50019,0.73466 0.48986,1.1533 -0.028,1.12 -1.318,1.965 -3,1.965 v -6.3e-5 3e-6 z m 0.05026,-2.746 c -1.5809,0 -2.4365,0.21014 -2.4175,0.97447 0.01833,0.75242 1.0782,1.3536 2.3673,1.3536 1.2892,0 2.349,-0.60139 2.3673,-1.3536 0.01876,-0.76453 -0.73621,-0.97447 -2.3171,-0.97447 z"
+           style="fill:url(#radialGradient8464-7)"
+           id="path9156-5"
+           inkscape:connector-curvature="0" />
+        <path
+           d="M 4.9688,1.75 C 4.9015,1.7681 4.8449,1.8134 4.8125,1.875 4.7992,1.8943 4.7887,1.9153 4.7812,1.9375 L 4.7188,2.1562 3.875,5.4062 3.75,5.9375 c -0.0059,0.031 -0.0059,0.0628 0,0.0937 0.0041,0.0331 0.0147,0.0649 0.0312,0.0938 0.0325,0.0616 0.0891,0.1069 0.1563,0.125 0.040995,0.010584 0.084005,0.010584 0.125,0 l 0.40625,-0.125 6.875,-2.0312 H 11.375 c 0.01041,6.516e-4 0.02084,6.516e-4 0.03125,0 0.01041,6.516e-4 0.02084,6.516e-4 0.03125,0 0.022,-0.0075 0.043,-0.018 0.062,-0.0313 0.46,-0.2538 0.695,-0.7426 0.75,-1.1875 0.028,-0.2282 0.008,-0.4565 -0.062,-0.6562 C 12.1465,2.1052 12.0605,1.9975 11.9685,1.9062 11.8755,1.815 11.7565,1.7452 11.5935,1.75 H 11.56225 5.18725 5.031 C 5.0099,1.7474 4.9889,1.7474 4.9682,1.75 z m 0.5,0.6875 H 11.375 C 11.36,2.5153 11.34,2.5681 11.312,2.6562 11.263,2.8181 11.167,2.9496 11.188,2.9375 L 4.9375,4.75 5.4688,2.4375 z"
+           style="fill:url(#radialGradient8475-7)"
+           id="path8473-8"
+           inkscape:connector-curvature="0" />
+        <g
+           transform="matrix(-0.097811,0,0,0.10767,8.1622,-3.8183)"
+           id="g9158-3">
+          <path
+             d="m 48.3,190.28 c 0.31446,4.2476 5.0238,7.7116 10.514,7.7116 5.4879,0 9.6432,-3.464 9.2763,-7.7116 -0.36437,-4.2251 -5.0712,-7.6367 -10.507,-7.6367 -5.438,0.002 -9.5933,3.4116 -9.2838,7.6367 z"
+             style="fill:#e6e6e6"
+             id="path9160-0"
+             inkscape:connector-curvature="0" />
+          <path
+             d="m 51.851,187.29 c -0.50163,0.53906 -1.0756,1.4026 -1.0756,2.5506 0,0.0824 0.005,0.16471 0.01,0.25206 0.21713,2.9274 3.8932,5.4006 8.026,5.4006 2.3534,0 4.5046,-0.81109 5.7525,-2.1737 0.53656,-0.58149 1.148,-1.5448 1.0382,-2.8276 -0.25206,-2.9024 -3.9232,-5.3557 -8.021,-5.3557 -2.3359,0.002 -4.4797,0.8061 -5.73,2.1538 h -2e-5 z"
+             style="fill:url(#radialGradient4958)"
+             id="path9162-0"
+             inkscape:connector-curvature="0" />
+        </g>
+        <g
+           transform="matrix(0.097811,0,0,0.10767,15.777,-3.8183)"
+           id="g9190-7">
+          <path
+             d="m 48.3,190.28 c 0.31446,4.2476 5.0238,7.7116 10.514,7.7116 5.4879,0 9.6432,-3.464 9.2763,-7.7116 -0.36437,-4.2251 -5.0712,-7.6367 -10.507,-7.6367 -5.438,0.002 -9.5933,3.4116 -9.2838,7.6367 z"
+             style="fill:#e6e6e6"
+             id="path9192-7"
+             inkscape:connector-curvature="0" />
+          <path
+             d="m 51.851,187.29 c -0.50163,0.53906 -1.0756,1.4026 -1.0756,2.5506 0,0.0824 0.005,0.16471 0.01,0.25206 0.21713,2.9274 3.8932,5.4006 8.026,5.4006 2.3534,0 4.5046,-0.81109 5.7525,-2.1737 0.53656,-0.58149 1.148,-1.5448 1.0382,-2.8276 -0.25206,-2.9024 -3.9232,-5.3557 -8.021,-5.3557 -2.3359,0.002 -4.4797,0.8061 -5.73,2.1538 h -2e-5 z"
+             style="fill:url(#radialGradient8498-1)"
+             id="path9194-2"
+             inkscape:connector-curvature="0" />
+        </g>
+        <path
+           d="m 18.611,7.5098 -6.6112,7 -6.6112,-7 h 3.1112 v -6 h 7 v 6 h 3.1112 z"
+           style="fill:url(#linearGradient2834-9);stroke:#548820;stroke-width:0.98045999;stroke-linecap:round;stroke-linejoin:round"
+           id="path4348-5"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 16.394,8.5098 -4.3945,4.5863 -4.348,-4.5863 h 1.848 v -6 h 5 v 6 h 1.8945 z"
+           style="opacity:0.35400008;fill:none;stroke:url(#linearGradient2831-9);stroke-width:0.98045999"
+           id="path4360-3"
+           inkscape:connector-curvature="0" />
+      </g>
+      <g
+         transform="translate(36.952,1.0738)"
+         id="g5600">
+        <rect
+           x="-34.480999"
+           y="-0.60262001"
+           width="19.058001"
+           height="4.0577002"
+           ry="0.86373001"
+           rx="1.0142"
+           style="fill:url(#linearGradient5605);stroke:#548820;stroke-width:0.94229001"
+           id="rect5480" />
+        <rect
+           x="-32.952"
+           y="0.92623001"
+           width="6"
+           height="1"
+           style="fill:#c8cdc3"
+           id="rect6467" />
+        <rect
+           x="-25.952"
+           y="0.42623001"
+           width="1"
+           height="2"
+           style="fill:#969696"
+           id="rect6469" />
+      </g>
+    </g>
+    <rect
+       inkscape:label="#rect3636"
+       y="139"
+       x="-127"
+       height="24"
+       width="24"
+       id="print"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="-129"
+       y="133"
+       id="text3638-3-1-0-5-2"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-2-4-7-9"
+         x="-129"
+         y="133">%%print%%</tspan></text>
+    <g
+       id="g5067"
+       transform="translate(-127.01381,138.27905)">
+      <g
+         id="g5529">
+        <path
+           d="M 24,20.75 C 24,22.545 18.627,24 12,24 5.3726,24 0,22.545 0,20.75 5e-8,18.955 5.3726,17.5 12,17.5 c 6.6274,0 12,1.4551 12,3.25 z"
+           style="opacity:0.7;fill:url(#radialGradient5083)"
+           id="path3087"
+           inkscape:connector-curvature="0" />
+        <rect
+           x="4.5"
+           y="5.5"
+           width="15"
+           height="11"
+           ry="0.36184999"
+           rx="0.29157001"
+           style="fill:#505050;stroke:#3c3d3a;stroke-width:1.00010002;stroke-linecap:round;stroke-linejoin:round"
+           id="rect2315" />
+        <g
+           transform="translate(4,1)"
+           id="layer1-6">
+          <path
+             d="m 1.4976,0.49763 13.005,0.002374 v 15.002 H 1.4976 v -15.005 z"
+             style="fill:#f4f4f4;stroke:#b5b6b2;stroke-width:0.99524999;stroke-linejoin:round"
+             id="rect2594-0"
+             inkscape:connector-curvature="0" />
+        </g>
+        <path
+           d="m 2.5074,19.5 c 0.037084,0.51806 -0.096022,1.0755 0.11744,1.5555 0.40044,0.60919 1.2842,0.40888 1.8752,0.44374 0.010664,0.35961 0.043357,0.91477 0.5,0.99127 4.8239,0.01951 9.1756,0.0028 14,0.0084 0.49786,0.01588 0.5161,-0.58079 0.5,-0.95942 0.1626,-0.09327 0.62471,-0.01381 0.84925,-0.0402 0.5556,0.08151 1.2349,-0.32979 1.1424,-1.0137 v -0.98556 h -18.984 z"
+           style="fill:#505050;stroke:#3c3d3a;stroke-width:0.99971002;stroke-linecap:square"
+           id="rect6333"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 2.5153,11.5 h 18.969 c 0.56248,0 1.0153,0.46361 1.0153,1.0395 v 6.9606 h -21 V 12.5395 C 1.4996,11.96362 1.95243,11.5 2.5149,11.5 z"
+           style="fill:url(#linearGradient5085);stroke:url(#linearGradient5087);stroke-width:0.99993002;stroke-linecap:round;stroke-linejoin:round"
+           id="rect2313"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 2.9634,12.5 h 18.073 c 0.24043,0 0.46342,0.20622 0.46342,0.42858 v 5.5715 h -19 v -5.5715 C 2.49982,12.70622 2.72281,12.5 2.96324,12.5 z"
+           style="opacity:0.9;fill:none;stroke:url(#radialGradient5089);stroke-width:0.99991;stroke-linecap:round"
+           id="rect2374"
+           inkscape:connector-curvature="0" />
+        <rect
+           x="5.4714999"
+           y="11.472"
+           width="13.057"
+           height="5.0570002"
+           style="fill:url(#linearGradient5091);stroke:url(#linearGradient5093);stroke-width:0.94301999;stroke-linecap:round"
+           id="rect2319" />
+        <rect
+           x="6.4998999"
+           y="12.5"
+           width="11"
+           height="3.0002"
+           style="opacity:0.3;fill:none;stroke:url(#radialGradient5095);stroke-width:0.99981999;stroke-linecap:round"
+           id="rect2459" />
+        <path
+           d="m 21,17.5 c 2.42e-4,0.27607 -0.22369,0.5 -0.5,0.5 -0.27631,0 -0.50024,-0.22393 -0.5,-0.5 -2.42e-4,-0.27607 0.22369,-0.5 0.5,-0.5 0.27631,0 0.50024,0.22393 0.5,0.5 z"
+           style="fill:#6efb27"
+           id="path2764"
+           inkscape:connector-curvature="0" />
+        <path
+           d="m 19,20 v 1.75 C 19,21.888 18.902,22 18.781,22 H 5.219 C 5.0976,22 5,21.888 5,21.75 V 20 h 14 z"
+           style="fill:#e6e6e6"
+           id="rect6331"
+           inkscape:connector-curvature="0" />
+        <rect
+           x="6"
+           y="20"
+           width="12"
+           height="1"
+           style="fill:#323232"
+           id="rect6329" />
+      </g>
+      <path
+         d="M 16,6 11.99,10 8,6 h 2 V 3 h 4 v 3 h 2 z"
+         style="fill:url(#linearGradient5097)"
+         id="path4348-54"
+         inkscape:connector-curvature="0" />
+    </g>
+    <rect
+       inkscape:label="#rect3636"
+       y="139"
+       x="-92"
+       height="24"
+       width="24"
+       id="undo"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="-93.51992"
+       y="133"
+       id="text3638-3-1-0-5-2-8"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-2-4-7-9-4"
+         x="-93.51992"
+         y="133">%%undo%%</tspan></text>
+    <g
+       transform="translate(-90.992695,145.90231)"
+       id="layer1-62">
+      <path
+         d="M 7.7501,-0.62517 2.5,4.99993 l 5.2502,5.6251"
+         style="fill:none;stroke:url(#linearGradient5188);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path3169-2-3"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 19.025,10.281 16.5,6.625 C 15.914,5.5475 14.287,5.0058 13,5 l -6.5,-7e-5"
+         style="fill:none;stroke:url(#linearGradient3732);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path3765"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 7.7501,-0.62517 2.5,4.99993 l 5.2502,5.6251"
+         style="fill:none;stroke:url(#linearGradient5190);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4277"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 19.025,10.281 16.5,6.625 C 15.873,5.7124 14.41,5.0058 13,5 l -6.5,-7e-5"
+         style="fill:none;stroke:url(#linearGradient4322);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4279"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 8.2275,9.6039 6.5,8 C 5.5,7 6.5,6.5 8,6.5 l 3.8324,-0.04122 c 1.2454,0.017784 3.1612,0.051221 3.6967,1.6076 l 1.9816,2.5556 c 0.65045,2.061 3.819,1.2457 2.8854,-1.31 l -2.227,-2.7379 c -0.845,-1.3426 -1.894,-2.6289 -4.169,-3.0741 h -5.5 c -1.5,0 -3,0 -2,-1.5 l 1.6451,-1.5626 c 1.5,-2 -0.5,-2.5 -1.5,-1.5 l -4.6451,5.0626 c -0.5,0.5 -0.5276,1.3333 0,2 l 4.7275,5.1039 c 1,1 3,0 1.5,-1.5 z"
+         style="opacity:0.4;fill:none;stroke:url(#linearGradient2839);stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4454"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 6.5,2 8.1451,0.4786 c 1.5,-2 -0.5,-2.5 -1.5,-1.5 L 2,4 C 1.5,4.5 1.4724,5.3333 2,6 l 4.7688,5.2275 c 1,1 3,0 1.5,-1.5 L 6.5,7.9995"
+         style="opacity:0.4;fill:none;stroke:url(#linearGradient4462);stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4464"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 7.1397,-1.5161 2,4"
+         style="opacity:0.6;fill:none;stroke:#f6daae;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4466"
+         inkscape:connector-curvature="0" />
+    </g>
+    <rect
+       inkscape:label="#rect3636"
+       y="139"
+       x="-57"
+       height="24"
+       width="24"
+       id="redo"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="-59"
+       y="133"
+       id="text3638-3-1-0-5-2-8-8"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-2-4-7-9-4-9"
+         x="-59"
+         y="133">%%redo%%</tspan></text>
+    <g
+       transform="matrix(-1,0,0,1,-34.0625,145.9375)"
+       id="layer1-7">
+      <path
+         d="M 7.7501,-0.62517 2.5,4.99993 l 5.2502,5.6251"
+         style="fill:none;stroke:#688c35;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path3169-2-3-7"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 19.025,10.281 16.5,6.625 C 15.914,5.5475 14.287,5.0058 13,5 l -6.5,-7e-5"
+         style="fill:none;stroke:#688c35;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path3765-6"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 7.7501,-0.62517 2.5,4.99993 l 5.2502,5.6251"
+         style="fill:none;stroke:url(#linearGradient4322-5);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4277-6"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 19.025,10.281 16.5,6.625 C 15.873,5.7124 14.41,5.0058 13,5 l -6.5,-7e-5"
+         style="fill:none;stroke:url(#linearGradient4324);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4279-1"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 8.2275,9.6039 6.5,8 C 5.5,7 6.5,6.5 8,6.5 l 3.8324,-0.04122 c 1.2454,0.017784 3.1612,0.051221 3.6967,1.6076 l 1.9816,2.5556 c 0.65045,2.061 3.819,1.2457 2.8854,-1.31 l -2.227,-2.7379 c -0.845,-1.3426 -1.894,-2.6289 -4.169,-3.0741 h -5.5 c -1.5,0 -3,0 -2,-1.5 l 1.6451,-1.5626 c 1.5,-2 -0.5,-2.5 -1.5,-1.5 l -4.6451,5.0626 c -0.5,0.5 -0.5276,1.3333 0,2 l 4.7275,5.1039 c 1,1 3,0 1.5,-1.5 z"
+         style="opacity:0.4;fill:none;stroke:url(#linearGradient2839-6);stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4454-6"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 6.5,2 8.1451,0.4786 c 1.5,-2 -0.5,-2.5 -1.5,-1.5 L 2,4 C 1.5,4.5 1.4724,5.3333 2,6 l 4.7688,5.2275 c 1,1 3,0 1.5,-1.5 L 6.5,7.9995"
+         style="opacity:0.4;fill:none;stroke:url(#linearGradient4462-6);stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4464-5"
+         inkscape:connector-curvature="0" />
+      <path
+         d="M 7.1397,-1.5161 2,4"
+         style="opacity:0.5;fill:none;stroke:#e5f09a;stroke-linecap:round;stroke-linejoin:round;enable-background:new"
+         id="path4466-6"
+         inkscape:connector-curvature="0" />
+    </g>
+    <rect
+       inkscape:label="#rect3636"
+       y="139"
+       x="-22"
+       height="24"
+       width="24"
+       id="cut"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0" />
+    <g
+       id="layer1-96"
+       transform="translate(-22.438221,131.01798)">
+      <g
+         id="g6545"
+         transform="matrix(0.8930733,0.44991119,-0.44991119,0.8930733,-40.088761,-46.216687)">
+        <path
+           style="fill:url(#linearGradient6541);stroke:#888a85;stroke-width:1.04343462;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+           id="path5602"
+           d="m 76.142125,23.986492 c 0.09772,-0.0027 2.66917,1.381244 2.682584,2.528199 -0.147983,3.419111 -0.267287,6.871404 -0.393387,10.308303 -0.261504,0.181262 -0.539755,0.333954 -0.831783,0.459341 -0.614034,0.265138 -1.302926,0.415227 -2.008258,0.41128 0.168253,-4.570471 0.333331,-9.149623 0.550844,-13.707123 z"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:url(#linearGradient6538);fill-opacity:1;stroke:none"
+           id="path5604"
+           d="m 76.69305,36.496033 c 0.02208,0.121701 0.561324,0.736373 0.847087,0.430344 0.13909,-3.350207 0.161691,-6.756579 0.29782,-10.10639 0.04116,-0.225898 -0.524997,-0.756728 -0.812014,-1.01595 0,0 -0.183607,7.068972 -0.332893,10.691996 z"
+           inkscape:connector-curvature="0" />
+        <polygon
+           style="fill:#d1524c;fill-opacity:1;stroke:#973137;stroke-width:0.64594996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+           id="polygon5606"
+           transform="matrix(1.3838457,-0.5995106,0.7577226,1.5096437,-342.70934,195.72431)"
+           points="294.73242,13.672852 295.74658,11.960449 297.04443,12.300293 297.04443,12.300293 296.39941,13.384766 295.13281,14.71875 " />
+        <path
+           style="fill:url(#linearGradient6534);stroke:#888a85;stroke-width:0.98886794;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+           id="path5608"
+           d="m 67.639697,28.266191 c -0.05269,0.06962 -0.296019,2.772516 0.59766,3.468394 2.761317,1.93736 5.533849,3.915495 8.297817,5.879457 0.277594,-0.08225 0.541414,-0.193806 0.79092,-0.331734 0.525799,-0.289138 0.999978,-0.701673 1.361708,-1.218336 -3.675876,-2.611319 -7.356932,-5.230144 -11.048105,-7.797781 z"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:url(#linearGradient6531);fill-opacity:1;stroke:none"
+           id="path5610"
+           d="m 68.970807,31.046041 c 2.685267,1.87904 5.347419,3.832107 8.030235,5.708814 0.448513,-0.123082 0.941956,-0.157475 0.685348,-0.384296 -2.78652,-1.914994 -6.157886,-4.301651 -8.935065,-6.23079 -0.03991,-0.05846 0.02717,0.371107 0.219482,0.906272 z"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:url(#linearGradient6543);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.31858397;marker:none;visibility:visible;display:inline;overflow:visible"
+           id="path5612"
+           d="m 76.496347,35.488424 c 0.123486,0.230684 0.07861,0.498967 -0.100205,0.599078 -0.178816,0.100111 -0.423792,-0.0059 -0.547032,-0.236718 -0.123485,-0.230684 -0.07861,-0.498966 0.100205,-0.599078 0.178816,-0.100112 0.423792,0.0059 0.547031,0.236718 z"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#d1524c;fill-opacity:1;stroke:#973137;stroke-width:0.97633934;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+           id="path5614"
+           d="m 74.811562,39.139626 c 1.667108,-0.01317 3.313785,2.564256 3.427111,4.773436 0.11403,2.210116 -0.82558,3.652505 -2.491127,3.668822 -1.667657,0.01347 -3.110985,-1.765159 -3.224307,-3.974334 -0.113885,-2.208867 0.624172,-4.449706 2.288323,-4.467924 z m 0.0741,1.407319 c -0.739442,0.007 -0.989158,1.561088 -0.911477,3.046366 0.0762,1.486096 0.961232,2.590125 1.699529,2.582531 0.740197,-0.005 1.191745,-0.763213 1.114065,-2.248495 -0.0757,-1.48637 -1.162699,-3.387404 -1.902117,-3.380402 z"
+           inkscape:connector-curvature="0" />
+        <polygon
+           style="fill:#d1524c;fill-opacity:1;stroke:#973137;stroke-width:0.6332444;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+           id="polygon5616"
+           transform="matrix(1.1476031,-0.79527758,0.96691724,1.4548542,-275.37886,255.51909)"
+           points="298.25391,11.960449 296.95605,12.300293 296.95605,12.300293 297.6001,13.384766 298.86719,14.71875 299.26807,13.672852 " />
+        <path
+           style="fill:#d1524c;fill-opacity:1;stroke:#973137;stroke-width:0.99573755;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+           id="path5618"
+           d="m 80.776122,36.5167 c -0.795059,1.33926 0.03789,3.562041 1.862156,4.96416 1.824731,1.403245 3.948421,1.456187 4.745424,0.120053 0.79558,-1.339521 -0.03741,-3.560912 -1.861673,-4.963023 -1.823738,-1.402384 -3.947941,-1.455065 -4.745907,-0.12119 z m 1.161227,0.894731 c 0.35364,-0.593323 1.664559,-0.55346 2.890349,0.390418 1.227185,0.943163 1.749342,2.313239 1.395742,2.905303 -0.352296,0.595128 -1.665019,0.553695 -2.89081,-0.390181 -1.227653,-0.942927 -1.748909,-2.312216 -1.395281,-2.90554 z"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#d1524c;fill-opacity:1;stroke:none"
+           id="path3611"
+           d="m 74.811562,39.139626 c 1.667108,-0.01317 3.313785,2.564256 3.427111,4.773436 0.11403,2.210116 -0.82558,3.652505 -2.491127,3.668822 -1.667657,0.01347 -3.110985,-1.765159 -3.224307,-3.974334 -0.113885,-2.208867 0.624172,-4.449706 2.288323,-4.467924 z m 0.0741,1.407319 c -0.739442,0.007 -0.989158,1.561088 -0.911477,3.046366 0.0762,1.486096 0.961232,2.590125 1.699529,2.582531 0.740197,-0.005 1.191745,-0.763213 1.114065,-2.248495 -0.0757,-1.48637 -1.162699,-3.387404 -1.902117,-3.380402 z"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#d1524c;fill-opacity:1;stroke:none"
+           id="path3613"
+           d="m 80.776122,36.5167 c -0.795059,1.33926 0.03789,3.562041 1.862156,4.96416 1.824731,1.403245 3.948421,1.456187 4.745424,0.120053 0.79558,-1.339521 -0.03741,-3.560912 -1.861673,-4.963023 -1.823738,-1.402384 -3.947941,-1.455065 -4.745907,-0.12119 z m 1.161227,0.894731 c 0.35364,-0.593323 1.664559,-0.55346 2.890349,0.390418 1.227185,0.943163 1.749342,2.313239 1.395742,2.905303 -0.352296,0.595128 -1.665019,0.553695 -2.89081,-0.390181 -1.227653,-0.942927 -1.748909,-2.312216 -1.395281,-2.90554 z"
+           inkscape:connector-curvature="0" />
+      </g>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="-22"
+       y="133"
+       id="text3638-3-1-0-5-2-8-8-2"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-2-4-7-9-4-9-0"
+         x="-22"
+         y="133">%%cut%%</tspan></text>
+    <rect
+       inkscape:label="#rect3636"
+       y="139"
+       x="13"
+       height="24"
+       width="24"
+       id="copy"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="11"
+       y="133"
+       id="text3638-3-1-0-5-2-8-8-2-5"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-2-4-7-9-4-9-0-2"
+         x="11"
+         y="133">%%copy%%</tspan></text>
+    <g
+       id="g5446"
+       transform="translate(13,139)">
+      <path
+         d="m 2.4996,1.5004 h 13 v 15 h -13 v -15 z"
+         style="fill:url(#linearGradient2906);stroke:url(#linearGradient2908);stroke-width:0.99914002;stroke-linejoin:round"
+         id="path2904"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 8.4996,7.5004 h 13 v 15 h -13 v -15 z"
+         style="fill:url(#linearGradient2990);stroke:url(#linearGradient2992);stroke-width:0.99914002;stroke-linejoin:round"
+         id="rect2594-6"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 10.5,18.5 h 7 m -7,-3 h 8 m -8,-3 h 5 m -5,-3 h 9 m -15,3 h 3 m -3,-3 h 3 m -3,-3 h 5 m -5,-3 h 9"
+         style="opacity:0.2;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:square"
+         id="path3696"
+         inkscape:connector-curvature="0" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="45"
+       y="133"
+       id="text3638-3-1-0-5-2-8-8-2-8"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-2-4-7-9-4-9-0-9"
+         x="45"
+         y="133">%%paste%%</tspan></text>
+    <rect
+       inkscape:label="#rect3636"
+       y="139"
+       x="48"
+       height="24"
+       width="24"
+       id="paste"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0" />
+    <g
+       id="g5533"
+       transform="translate(47.971897,139.01041)">
+      <path
+         d="m 2.4996,3.5004 h 13 v 15 h -13 v -15 z"
+         style="fill:url(#linearGradient2906-5);stroke:url(#linearGradient3621);stroke-width:0.99914002;stroke-linejoin:round"
+         id="path2904-1"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 3.4996,4.5004 h 11 v 13 h -11 v -13 z"
+         style="opacity:0.2;fill:none;stroke:#ffffff;stroke-width:0.99914002;stroke-linejoin:round"
+         id="path3624-5"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 8.4996,7.5004 h 13 v 15 h -13 v -15 z"
+         style="fill:url(#linearGradient2990-5);stroke:url(#linearGradient2992-9);stroke-width:0.99914002;stroke-linejoin:round"
+         id="rect2594-8"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 10.5,9.5004 h 9 m -9,3 h 5 m -5,3 h 8 m -8,3 h 7"
+         style="opacity:0.2;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:square"
+         id="path2835"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 7.4996,1.5004 c 0.052927,1.8402 -0.049158,2.9464 -1,2.9773 v 1.0258 h 5 V 4.4777 c -1.078,-0.023242 -0.97602,-1.1425 -1,-2.9773 h -3 z"
+         style="fill:url(#linearGradient2933);stroke:url(#linearGradient2935);stroke-width:0.99826998;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:0.5;enable-background:new"
+         id="path4675"
+         inkscape:connector-curvature="0" />
+    </g>
+    <rect
+       inkscape:label="#rect3636"
+       y="139"
+       x="83"
+       height="24"
+       width="24"
+       id="find"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.49727678px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+       x="82"
+       y="133"
+       id="text3638-3-1-0-5-2-8-8-2-8-6"><tspan
+         sodipodi:role="line"
+         id="tspan3640-1-2-4-7-9-4-9-0-9-4"
+         x="82"
+         y="133">%%find%%</tspan></text>
+    <g
+       id="layer1-35"
+       transform="translate(83.013866,139.01391)">
+      <g
+         transform="matrix(0.54593,0,0,0.51685,-0.96573,-0.57818)"
+         style="stroke-width:1.88259995"
+         id="g3490-2">
+        <g
+           transform="matrix(0.021652,0,0,0.014857,43.008,42.685)"
+           style="stroke-width:104.95999908"
+           id="g5022-2">
+          <rect
+             x="-1559.3"
+             y="-150.7"
+             width="1339.6"
+             height="478.35999"
+             style="opacity:0.40206;fill:url(#linearGradient4532)"
+             id="rect4173" />
+          <path
+             d="m -219.62,-150.68 v 478.33 c 142.87,0.90045 345.4,-107.17 345.4,-239.2 0,-132.03 -159.44,-239.13 -345.4,-239.13 z"
+             style="opacity:0.40206;fill:url(#radialGradient4534)"
+             id="path5058"
+             inkscape:connector-curvature="0" />
+          <path
+             d="m -1559.3,-150.68 v 478.33 c -142.87,0.90045 -345.4,-107.17 -345.4,-239.2 0,-132.03 159.44,-239.13 345.4,-239.13 z"
+             style="opacity:0.40206;fill:url(#radialGradient4536)"
+             id="path5018"
+             inkscape:connector-curvature="0" />
+        </g>
+      </g>
+      <path
+         d="m 2.4996,0.49957 h 13.062 c 0.7638,0.23731 4.8672,2.9408 5.9387,4.8128 v 17.188 H 2.4993 v -22.001 z"
+         style="fill:url(#linearGradient4545);stroke:url(#linearGradient4547);stroke-width:0.99914002;stroke-linejoin:round"
+         id="rect2594-64"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 15.5,0.5 v 5 h 6 c 0,-0.83659 -4.8205,-4.9857 -6,-5 z"
+         style="fill:url(#linearGradient4543);fill-rule:evenodd;stroke:url(#linearGradient4565);stroke-linejoin:round"
+         id="path12038-2"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 17.461,16.55 6.1067,5.8764 -0.84647,1.1878 -6.0846,-6.3567 0.82435,-0.70748 z"
+         style="fill:url(#linearGradient2710);fill-rule:evenodd;stroke:#333333;stroke-width:0.77201003;stroke-linecap:round;stroke-linejoin:round"
+         id="path11112"
+         inkscape:connector-curvature="0" />
+      <path
+         transform="matrix(0.1354,-0.15647,0.15133,0.14,-26.423,45.631)"
+         d="m 248.35,110.29 a 5.3125,2.65625 0 1 1 -10.625,0 5.3125,2.65625 0 1 1 10.625,0 z"
+         style="fill:#3e3e3e"
+         id="path13082"
+         inkscape:connector-curvature="0" />
+      <path
+         transform="matrix(0.50364,0,0,0.50807,5.2767,4.2233)"
+         d="m 25.898,18.478 a 8.3085,8.3085 0 1 1 -16.617,0 8.3085,8.3085 0 1 1 16.617,0 z"
+         style="fill:url(#radialGradient4193);fill-rule:evenodd"
+         id="path4452"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 13.963,9.9776 c -2.0862,0 -3.7756,1.5628 -3.7756,3.4927 0,0.55737 0.16838,1.0702 0.41951,1.538 0.50172,0.17107 1.0347,0.28747 1.6003,0.28747 2.4722,0 4.4465,-1.8017 4.5991,-4.0533 -0.693,-0.758 -1.686,-1.2644 -2.843,-1.2644 z"
+         style="opacity:0.83422002;fill:url(#radialGradient2705);fill-rule:evenodd"
+         id="path4462"
+         inkscape:connector-curvature="0" />
+      <path
+         d="m 14.043,9.3962 c -2.5699,0 -4.6564,1.9893 -4.6564,4.4393 0,2.4501 2.0865,4.4393 4.6564,4.4393 2.5699,0 4.6564,-1.9893 4.6564,-4.4393 0,-2.4501 -2.0865,-4.4393 -4.6564,-4.4393 z m 0.05548,0.29125 c 2.3001,0 4.1698,1.7788 4.1698,3.9716 0,2.1928 -1.8698,3.9716 -4.1698,3.9716 -2.3001,0 -4.1656,-1.7788 -4.1656,-3.9716 0,-2.1928 1.8655,-3.9716 4.1656,-3.9716 z"
+         style="fill:url(#linearGradient2700);stroke:url(#linearGradient2702);stroke-width:0.77201003;stroke-linecap:round;stroke-linejoin:round"
+         id="path2298"
+         inkscape:connector-curvature="0" />
+    </g>
   </g>
 </svg>
Binary file Images/new.png has changed
Binary file Images/open.png has changed
Binary file Images/paste.png has changed
Binary file Images/print.png has changed
Binary file Images/redo.png has changed
Binary file Images/save.png has changed
Binary file Images/saveas.png has changed
Binary file Images/undo.png has changed
--- a/PLCOpenEditor.py	Sat Mar 31 15:03:50 2012 +0200
+++ b/PLCOpenEditor.py	Sat Mar 31 15:08:18 2012 +0200
@@ -384,12 +384,14 @@
         self.Bind(wx.EVT_MENU, self.OnSelectAllMenu, id=wx.ID_SELECTALL)
         self.Bind(wx.EVT_MENU, self.OnDeleteMenu, id=wx.ID_DELETE)
         
-        self.AddToMenuToolBar([(wx.ID_UNDO, wx.ART_UNDO, _(u'Undo'), None),
-                               (wx.ID_REDO, wx.ART_REDO, _(u'Redo'), None),
+        self.AddToMenuToolBar([(wx.ID_UNDO, "undo.png", _(u'Undo'), None),
+                               (wx.ID_REDO, "redo.png", _(u'Redo'), None),
                                None,
-                               (wx.ID_CUT, wx.ART_CUT, _(u'Cut'), None),
-                               (wx.ID_COPY, wx.ART_COPY, _(u'Copy'), None),
-                               (wx.ID_PASTE, wx.ART_PASTE, _(u'Paste'), None)])
+                               (wx.ID_CUT, "cut.png", _(u'Cut'), None),
+                               (wx.ID_COPY, "copy.png", _(u'Copy'), None),
+                               (wx.ID_PASTE, "paste.png", _(u'Paste'), None),
+                               None,
+                               (ID_PLCOPENEDITOREDITMENUSEARCHINPROJECT, "find.png", _(u'Search in Project'), None)])
 
     def _init_coll_DisplayMenu_Items(self, parent):
         AppendMenu(parent, help='', id=wx.ID_REFRESH,
@@ -441,12 +443,13 @@
         self._init_coll_MainLibrarySizer_Items(self.MainLibrarySizer)
         
         self.LibraryPanel.SetSizer(self.MainLibrarySizer)
-        
+    
     def _init_ctrls(self, prnt):
         wx.Frame.__init__(self, id=ID_PLCOPENEDITOR, name='IDEFrame',
               parent=prnt, pos=wx.DefaultPosition, size=wx.Size(1000, 600),
               style=wx.DEFAULT_FRAME_STYLE)
         self.SetClientSize(wx.Size(1000, 600))
+        self.Bind(wx.EVT_ACTIVATE, self.OnActivated)
         
         self.TabsImageList = wx.ImageList(31, 16)
         self.TabsImageListIndexes = {}
@@ -605,6 +608,16 @@
         #-----------------------------------------------------------------------
 
         if USE_AUI:
+            MenuToolBar = wx.ToolBar(self, ID_PLCOPENEDITOREDITORMENUTOOLBAR, wx.DefaultPosition, wx.DefaultSize,
+                    wx.TB_FLAT | wx.TB_NODIVIDER | wx.NO_BORDER)
+            MenuToolBar.SetToolBitmapSize(wx.Size(25, 25))
+            MenuToolBar.Realize()
+            self.Panes["MenuToolBar"] = MenuToolBar
+            self.AUIManager.AddPane(MenuToolBar, wx.aui.AuiPaneInfo().
+                      Name("MenuToolBar").Caption(_("Menu ToolBar")).
+                      ToolbarPane().Top().
+                      LeftDockable(False).RightDockable(False))
+            
             EditorToolBar = wx.ToolBar(self, ID_PLCOPENEDITOREDITORTOOLBAR, wx.DefaultPosition, wx.DefaultSize,
                     wx.TB_FLAT | wx.TB_NODIVIDER | wx.NO_BORDER)
             EditorToolBar.SetToolBitmapSize(wx.Size(25, 25))
@@ -614,17 +627,7 @@
             self.Panes["EditorToolBar"] = EditorToolBar
             self.AUIManager.AddPane(EditorToolBar, wx.aui.AuiPaneInfo().
                       Name("EditorToolBar").Caption(_("Editor ToolBar")).
-                      ToolbarPane().Top().
-                      LeftDockable(False).RightDockable(False))
-        
-            MenuToolBar = wx.ToolBar(self, ID_PLCOPENEDITOREDITORMENUTOOLBAR, wx.DefaultPosition, wx.DefaultSize,
-                    wx.TB_FLAT | wx.TB_NODIVIDER | wx.NO_BORDER)
-            MenuToolBar.SetToolBitmapSize(wx.Size(25, 25))
-            MenuToolBar.Realize()
-            self.Panes["MenuToolBar"] = MenuToolBar
-            self.AUIManager.AddPane(MenuToolBar, wx.aui.AuiPaneInfo().
-                      Name("MenuToolBar").Caption(_("Menu ToolBar")).
-                      ToolbarPane().Top().
+                      ToolbarPane().Top().Position(1).
                       LeftDockable(False).RightDockable(False))
             
         else:
@@ -749,6 +752,11 @@
         wx.Frame.Show(self)
         wx.CallAfter(self.RestoreFrameSize)
     
+    def OnActivated(self, event):
+        if event.GetActive():
+            wx.CallAfter(self._Refresh, TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU)
+        event.Skip()
+    
     def RestoreFrameSize(self):
         frame_size = None
         if self.Config.HasEntry("framesize"):
@@ -1046,6 +1054,7 @@
             #self.EditMenu.Check(ID_PLCOPENEDITOREDITMENUENABLEUNDOREDO, 
             #                self.Controler.IsProjectBufferEnabled())
             self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUSEARCHINPROJECT, True)
+            MenuToolBar.EnableTool(ID_PLCOPENEDITOREDITMENUSEARCHINPROJECT, True)
             self.EditMenu.Enable(wx.ID_ADD, True)
             self.EditMenu.Enable(wx.ID_DELETE, True)
             if self.TabsOpened.GetPageCount() > 0:
@@ -1082,6 +1091,7 @@
             MenuToolBar.EnableTool(wx.ID_PASTE, False)
             self.EditMenu.Enable(wx.ID_SELECTALL, False)
             self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUSEARCHINPROJECT, False)
+            MenuToolBar.EnableTool(ID_PLCOPENEDITOREDITMENUSEARCHINPROJECT, False)
             self.EditMenu.Enable(wx.ID_ADD, False)
             self.EditMenu.Enable(wx.ID_DELETE, False)
     
@@ -1666,62 +1676,17 @@
         self.TypesTreeItemSelect(item)
         name = self.TypesTree.GetItemText(item)
         type = self.TypesTree.GetPyData(item)
-        if type == ITEM_POU:
-            menu = wx.Menu(title='')
-            if self.Controler.GetPouBodyType(name) == "SFC":
-                new_id = wx.NewId()
-                AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Transition"))
-                self.Bind(wx.EVT_MENU, self.GenerateAddTransitionFunction(name), id=new_id)
-                new_id = wx.NewId()
-                AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Action"))
-                self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(name), id=new_id)
-                menu.AppendSeparator()
-
-            new_id = wx.NewId()
-            AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Copy POU"))
-            self.Bind(wx.EVT_MENU, self.OnCopyPou, id=new_id)
-
-            pou_type = self.Controler.GetPouType(name)
-            if pou_type in ["function", "functionBlock"]:
-                change_menu = wx.Menu(title='')
-                if pou_type == "function":
-                    new_id = wx.NewId()
-                    AppendMenu(change_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Function Block"))
-                    self.Bind(wx.EVT_MENU, self.GenerateChangePouTypeFunction(name, "functionBlock"), id=new_id)
-                new_id = wx.NewId()
-                AppendMenu(change_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Program"))
-                self.Bind(wx.EVT_MENU, self.GenerateChangePouTypeFunction(name, "program"), id=new_id)
-                menu.AppendMenu(wx.NewId(), _("Change POU Type To"), change_menu)
-            new_id = wx.NewId()
-            AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Rename"))
-            self.Bind(wx.EVT_MENU, self.OnRenamePouMenu, id=new_id)
-            new_id = wx.NewId()
-            AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Delete"))
-            self.Bind(wx.EVT_MENU, self.OnDeleteMenu, id=new_id)
-            self.PopupMenu(menu)
-        elif type == ITEM_CONFIGURATION:
-            menu = wx.Menu(title='')
-            new_id = wx.NewId()
-            AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Resource"))
-            self.Bind(wx.EVT_MENU, self.GenerateAddResourceFunction(name), id=new_id)
-            new_id = wx.NewId()
-            AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Delete"))
-            self.Bind(wx.EVT_MENU, self.OnDeleteMenu, id=new_id)
-            self.PopupMenu(menu)
-        elif type in [ITEM_DATATYPE, ITEM_TRANSITION, ITEM_ACTION, ITEM_RESOURCE]:
-            menu = wx.Menu(title='')
-            new_id = wx.NewId()
-            AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Delete"))
-            self.Bind(wx.EVT_MENU, self.OnDeleteMenu, id=new_id)
-            self.PopupMenu(menu)
-        elif type in ITEMS_UNEDITABLE:
+        
+        menu = None
+        if type in ITEMS_UNEDITABLE:
             name = UNEDITABLE_NAMES_DICT[name]
+            
             if name == "Data Types":
                 menu = wx.Menu(title='')
                 new_id = wx.NewId()
                 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add DataType"))
                 self.Bind(wx.EVT_MENU, self.OnAddDataTypeMenu, id=new_id)
-                self.PopupMenu(menu)
+            
             elif name in ["Functions", "Function Blocks", "Programs"]:
                 menu = wx.Menu(title='')
 
@@ -1735,13 +1700,12 @@
                 if self.GetCopyBuffer() is None:
                     menu.Enable(new_id, False)
 
-                self.PopupMenu(menu)
             elif name == "Configurations":
                 menu = wx.Menu(title='')
                 new_id = wx.NewId()
                 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Configuration"))
                 self.Bind(wx.EVT_MENU, self.OnAddConfigurationMenu, id=new_id)
-                self.PopupMenu(menu)
+            
             elif name == "Transitions":
                 menu = wx.Menu(title='')
                 new_id = wx.NewId()
@@ -1752,7 +1716,7 @@
                     parent = self.TypesTree.GetItemParent(parent)
                     parent_type = self.TypesTree.GetPyData(parent)
                 self.Bind(wx.EVT_MENU, self.GenerateAddTransitionFunction(self.TypesTree.GetItemText(parent)), id=new_id)
-                self.PopupMenu(menu)
+            
             elif name == "Actions":
                 menu = wx.Menu(title='')
                 new_id = wx.NewId()
@@ -1763,7 +1727,7 @@
                     parent = self.TypesTree.GetItemParent(parent)
                     parent_type = self.TypesTree.GetPyData(parent)
                 self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(self.TypesTree.GetItemText(parent)), id=new_id)
-                self.PopupMenu(menu)
+            
             elif name == "Resources":
                 menu = wx.Menu(title='')
                 new_id = wx.NewId()
@@ -1774,7 +1738,56 @@
                     parent = self.TypesTree.GetItemParent(parent)
                     parent_type = self.TypesTree.GetPyData(parent)
                 self.Bind(wx.EVT_MENU, self.GenerateAddResourceFunction(self.TypesTree.GetItemText(parent)), id=new_id)
-                self.PopupMenu(menu)
+            
+        else:
+            if type == ITEM_POU:
+                menu = wx.Menu(title='')
+                if self.Controler.GetPouBodyType(name) == "SFC":
+                    new_id = wx.NewId()
+                    AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Transition"))
+                    self.Bind(wx.EVT_MENU, self.GenerateAddTransitionFunction(name), id=new_id)
+                    new_id = wx.NewId()
+                    AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Action"))
+                    self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(name), id=new_id)
+                    menu.AppendSeparator()
+    
+                new_id = wx.NewId()
+                AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Copy POU"))
+                self.Bind(wx.EVT_MENU, self.OnCopyPou, id=new_id)
+    
+                pou_type = self.Controler.GetPouType(name)
+                if pou_type in ["function", "functionBlock"]:
+                    change_menu = wx.Menu(title='')
+                    if pou_type == "function":
+                        new_id = wx.NewId()
+                        AppendMenu(change_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Function Block"))
+                        self.Bind(wx.EVT_MENU, self.GenerateChangePouTypeFunction(name, "functionBlock"), id=new_id)
+                    new_id = wx.NewId()
+                    AppendMenu(change_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Program"))
+                    self.Bind(wx.EVT_MENU, self.GenerateChangePouTypeFunction(name, "program"), id=new_id)
+                    menu.AppendMenu(wx.NewId(), _("Change POU Type To"), change_menu)
+                new_id = wx.NewId()
+                AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Rename"))
+                self.Bind(wx.EVT_MENU, self.OnRenamePouMenu, id=new_id)
+            
+            elif type == ITEM_CONFIGURATION:
+                menu = wx.Menu(title='')
+                new_id = wx.NewId()
+                AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Resource"))
+                self.Bind(wx.EVT_MENU, self.GenerateAddResourceFunction(name), id=new_id)
+            
+            elif type in [ITEM_DATATYPE, ITEM_TRANSITION, ITEM_ACTION, ITEM_RESOURCE]:
+                menu = wx.Menu(title='')
+                
+            if menu is not None:
+                new_id = wx.NewId()
+                AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Delete"))
+                self.Bind(wx.EVT_MENU, self.OnDeleteMenu, id=new_id)
+        
+        if menu is not None:
+            self.PopupMenu(menu)
+            menu.Destroy()
+        
         event.Skip()
 
 
@@ -2094,9 +2107,7 @@
                 MenuToolBar.AddSeparator()
             else:
                 id, bitmap, help, callback = toolbar_item
-                if not isinstance(bitmap, wx.Bitmap):
-                    bitmap = wx.ArtProvider.GetBitmap(bitmap, wx.ART_TOOLBAR, (24, 24))
-                MenuToolBar.AddSimpleTool(id=id, shortHelpString=help, bitmap=bitmap)
+                MenuToolBar.AddSimpleTool(id=id, shortHelpString=help, bitmap=wx.Bitmap(os.path.join(CWD, 'Images', bitmap)))
                 if callback is not None:
                     self.Bind(wx.EVT_TOOL, callback, id=id)
         MenuToolBar.Realize()
@@ -2628,11 +2639,11 @@
         self.Bind(wx.EVT_MENU, self.OnPropertiesMenu, id=wx.ID_PROPERTIES)
         self.Bind(wx.EVT_MENU, self.OnQuitMenu, id=wx.ID_EXIT)
         
-        self.AddToMenuToolBar([(wx.ID_NEW, wx.ART_NEW, _(u'New'), None),
-                               (wx.ID_OPEN, wx.ART_FILE_OPEN, _(u'Open'), None),
-                               (wx.ID_SAVE, wx.ART_FILE_SAVE, _(u'Save'), None),
-                               (wx.ID_SAVEAS, wx.ART_FILE_SAVE_AS, _(u'Save As...'), None),
-                               (wx.ID_PRINT, wx.ART_PRINT, _(u'Print'), None)])
+        self.AddToMenuToolBar([(wx.ID_NEW, "new.png", _(u'New'), None),
+                               (wx.ID_OPEN, "open.png", _(u'Open'), None),
+                               (wx.ID_SAVE, "save.png", _(u'Save'), None),
+                               (wx.ID_SAVEAS, "saveas.png", _(u'Save As...'), None),
+                               (wx.ID_PRINT, "print.png", _(u'Print'), None)])
             
     def _init_coll_HelpMenu_Items(self, parent):
         AppendMenu(parent, help='', id=wx.ID_HELP, 
@@ -4249,6 +4260,7 @@
             else:
                 menu.Enable(new_id, False)
             self.PopupMenu(menu)
+            menu.Destroy()
         event.Skip()
     
     def InsertValue(self, iec_path, idx = None):
--- a/Viewer.py	Sat Mar 31 15:03:50 2012 +0200
+++ b/Viewer.py	Sat Mar 31 15:08:18 2012 +0200
@@ -340,7 +340,6 @@
         message.ShowModal()
         message.Destroy()
 
-
 """
 Class that implements a Viewer based on a wx.ScrolledWindow for drawing and 
 manipulating graphic elements
@@ -355,103 +354,165 @@
             else:
                 event(self, function)
     
-    # Create Alignment Menu items
-    def _init_coll_AlignmentMenu_Items(self, parent):
+    # Add list of menu items to the given menu
+    def AddMenuItems(self, menu, items):
+        for item in items:
+            if item is None:
+                menu.AppendSeparator()
+            else:
+                id, kind, text, help, callback = item
+                AppendMenu(menu, help=help, id=id, kind=kind, text=text)
+                # Link menu event to corresponding called functions
+                self.Bind(wx.EVT_MENU, callback, id=id)
+    
+    # Add Block Pin Menu items to the given menu
+    def AddBlockPinMenuItems(self, menu, connector):
+        [ID_NO_MODIFIER, ID_NEGATED, ID_RISING_EDGE, 
+         ID_FALLING_EDGE] = [wx.NewId() for i in xrange(4)]
+        
         # Create menu items
-        AppendMenu(parent, help='', id=ID_VIEWERALIGNMENTMENUITEMS0,
-              kind=wx.ITEM_NORMAL, text=_(u'Left'))
-        AppendMenu(parent, help='', id=ID_VIEWERALIGNMENTMENUITEMS1,
-              kind=wx.ITEM_NORMAL, text=_(u'Center'))
-        AppendMenu(parent, help='', id=ID_VIEWERALIGNMENTMENUITEMS2,
-              kind=wx.ITEM_NORMAL, text=_(u'Right'))
-        parent.AppendSeparator()
-        AppendMenu(parent, help='', id=ID_VIEWERALIGNMENTMENUITEMS4,
-              kind=wx.ITEM_NORMAL, text=_(u'Top'))
-        AppendMenu(parent, help='', id=ID_VIEWERALIGNMENTMENUITEMS5,
-              kind=wx.ITEM_NORMAL, text=_(u'Middle'))
-        AppendMenu(parent, help='', id=ID_VIEWERALIGNMENTMENUITEMS6,
-              kind=wx.ITEM_NORMAL, text=_(u'Bottom'))
-        # Link menu event to corresponding called functions
-        self.Bind(wx.EVT_MENU, self.OnAlignLeftMenu,
-              id=ID_VIEWERALIGNMENTMENUITEMS0)
-        self.Bind(wx.EVT_MENU, self.OnAlignCenterMenu,
-              id=ID_VIEWERALIGNMENTMENUITEMS1)
-        self.Bind(wx.EVT_MENU, self.OnAlignRightMenu,
-              id=ID_VIEWERALIGNMENTMENUITEMS2)
-        self.Bind(wx.EVT_MENU, self.OnAlignTopMenu,
-              id=ID_VIEWERALIGNMENTMENUITEMS4)
-        self.Bind(wx.EVT_MENU, self.OnAlignMiddleMenu,
-              id=ID_VIEWERALIGNMENTMENUITEMS5)
-        self.Bind(wx.EVT_MENU, self.OnAlignBottomMenu,
-              id=ID_VIEWERALIGNMENTMENUITEMS6)
-    
-    # Create Contextual Menu items
-    def _init_coll_ContextualMenu_Items(self, parent):
+        self.AddMenuItems(menu, [
+            (ID_NO_MODIFIER, wx.ITEM_RADIO, _(u'No Modifier'), '', self.OnNoModifierMenu),
+            (ID_NEGATED, wx.ITEM_RADIO, _(u'Negated'), '', self.OnNegatedMenu),
+            (ID_RISING_EDGE, wx.ITEM_RADIO, _(u'Rising Edge'), '', self.OnRisingEdgeMenu),
+            (ID_FALLING_EDGE, wx.ITEM_RADIO, _(u'Falling Edge'), '', self.OnFallingEdgeMenu)])
+        
+        type = self.Controler.GetEditedElementType(self.TagName, self.Debug)
+        menu.Enable(ID_RISING_EDGE, type != "function")
+        menu.Enable(ID_FALLING_EDGE, type != "function")
+        
+        if connector.IsNegated():
+            menu.Check(ID_NEGATED, True)
+        elif connector.GetEdge() == "rising":
+            menu.Check(ID_RISING_EDGE, True)
+        elif connector.GetEdge() == "falling":
+            menu.Check(ID_FALLING_EDGE, True)
+        else:
+            menu.Check(ID_NO_MODIFIER, True)
+        
+    # Add Alignment Menu items to the given menu
+    def AddAlignmentMenuItems(self, menu):
+        [ID_ALIGN_LEFT, ID_ALIGN_CENTER, ID_ALIGN_RIGHT,
+         ID_ALIGN_TOP, ID_ALIGN_MIDDLE, ID_ALIGN_BOTTOM,
+        ] = [wx.NewId() for i in xrange(6)]
+        
         # Create menu items
-        AppendMenu(parent, help='', id=ID_VIEWERCONTEXTUALMENUITEMS0,
-              kind=wx.ITEM_RADIO, text=_(u'No Modifier'))
-        AppendMenu(parent, help='', id=ID_VIEWERCONTEXTUALMENUITEMS1,
-              kind=wx.ITEM_RADIO, text=_(u'Negated'))
-        AppendMenu(parent, help='', id=ID_VIEWERCONTEXTUALMENUITEMS2,
-              kind=wx.ITEM_RADIO, text=_(u'Rising Edge'))
-        AppendMenu(parent, help='', id=ID_VIEWERCONTEXTUALMENUITEMS3,
-              kind=wx.ITEM_RADIO, text=_(u'Falling Edge'))
-        parent.AppendSeparator()
-        AppendMenu(parent, help='', id=ID_VIEWERCONTEXTUALMENUITEMS5,
-              kind=wx.ITEM_NORMAL, text=_(u'Add Wire Segment'))
-        AppendMenu(parent, help='', id=ID_VIEWERCONTEXTUALMENUITEMS6,
-              kind=wx.ITEM_NORMAL, text=_(u'Delete Wire Segment'))
-        parent.AppendSeparator()
-        AppendMenu(parent, help='', id=ID_VIEWERCONTEXTUALMENUITEMS8,
-              kind=wx.ITEM_NORMAL, text=_(u'Add Divergence Branch'))
-        AppendMenu(parent, help='', id=ID_VIEWERCONTEXTUALMENUITEMS9,
-              kind=wx.ITEM_NORMAL, text=_(u'Delete Divergence Branch'))
-        parent.AppendSeparator()
-        AppendMenu(parent, help='', id=ID_VIEWERCONTEXTUALMENUITEMS11,
-              kind=wx.ITEM_NORMAL, text=_(u'Clear Execution Order'))
-        AppendMenu(parent, help='', id=ID_VIEWERCONTEXTUALMENUITEMS12,
-              kind=wx.ITEM_NORMAL, text=_(u'Reset Execution Order'))
-        parent.AppendSeparator()
-        parent.AppendMenu(ID_VIEWERCONTEXTUALMENUITEMS14, _("Alignment"), self.AlignmentMenu)
-        parent.AppendSeparator()
-        AppendMenu(parent, help='', id=ID_VIEWERCONTEXTUALMENUITEMS16,
-              kind=wx.ITEM_NORMAL, text=_(u'Edit Block'))
-        AppendMenu(parent, help='', id=ID_VIEWERCONTEXTUALMENUITEMS17,
-              kind=wx.ITEM_NORMAL, text=_(u'Delete'))
-        # Link menu event to corresponding called functions
-        self.Bind(wx.EVT_MENU, self.OnNoModifierMenu,
-              id=ID_VIEWERCONTEXTUALMENUITEMS0)
-        self.Bind(wx.EVT_MENU, self.OnNegatedMenu,
-              id=ID_VIEWERCONTEXTUALMENUITEMS1)
-        self.Bind(wx.EVT_MENU, self.OnRisingEdgeMenu,
-              id=ID_VIEWERCONTEXTUALMENUITEMS2)
-        self.Bind(wx.EVT_MENU, self.OnFallingEdgeMenu,
-              id=ID_VIEWERCONTEXTUALMENUITEMS3)
-        self.Bind(wx.EVT_MENU, self.OnAddSegmentMenu,
-              id=ID_VIEWERCONTEXTUALMENUITEMS5)
-        self.Bind(wx.EVT_MENU, self.OnDeleteSegmentMenu,
-              id=ID_VIEWERCONTEXTUALMENUITEMS6)
-        self.Bind(wx.EVT_MENU, self.OnAddBranchMenu,
-              id=ID_VIEWERCONTEXTUALMENUITEMS8)
-        self.Bind(wx.EVT_MENU, self.OnDeleteBranchMenu,
-              id=ID_VIEWERCONTEXTUALMENUITEMS9)
-        self.Bind(wx.EVT_MENU, self.OnClearExecutionOrderMenu,
-              id=ID_VIEWERCONTEXTUALMENUITEMS11)
-        self.Bind(wx.EVT_MENU, self.OnResetExecutionOrderMenu,
-              id=ID_VIEWERCONTEXTUALMENUITEMS12)
-        self.Bind(wx.EVT_MENU, self.OnEditBlockMenu,
-              id=ID_VIEWERCONTEXTUALMENUITEMS16)
-        self.Bind(wx.EVT_MENU, self.OnDeleteMenu,
-              id=ID_VIEWERCONTEXTUALMENUITEMS17)
-    
-    # Create and initialize Contextual Menu
-    def _init_menus(self):
-        self.AlignmentMenu = wx.Menu(title='')
-        self.ContextualMenu = wx.Menu(title='')
-        
-        self._init_coll_AlignmentMenu_Items(self.AlignmentMenu)
-        self._init_coll_ContextualMenu_Items(self.ContextualMenu)
-    
+        self.AddMenuItems(menu, [
+            (ID_ALIGN_LEFT, wx.ITEM_NORMAL, _(u'Left'), '', self.OnAlignLeftMenu),
+            (ID_ALIGN_CENTER, wx.ITEM_NORMAL, _(u'Center'), '', self.OnAlignCenterMenu), 
+            (ID_ALIGN_RIGHT, wx.ITEM_NORMAL, _(u'Right'), '', self.OnAlignRightMenu),
+            None,
+            (ID_ALIGN_TOP, wx.ITEM_NORMAL, _(u'Top'), '', self.OnAlignTopMenu), 
+            (ID_ALIGN_MIDDLE, wx.ITEM_NORMAL, _(u'Middle'), '', self.OnAlignMiddleMenu),
+            (ID_ALIGN_BOTTOM, wx.ITEM_NORMAL, _(u'Bottom'), '', self.OnAlignBottomMenu)])
+    
+    # Add Wire Menu items to the given menu
+    def AddWireMenuItems(self, menu, delete=False):
+        [ID_ADD_SEGMENT, ID_DELETE_SEGMENT] = [wx.NewId() for i in xrange(2)]
+        
+        # Create menu items
+        self.AddMenuItems(menu, [
+            (ID_ADD_SEGMENT, wx.ITEM_NORMAL, _(u'Add Wire Segment'), '', self.OnAddSegmentMenu),
+            (ID_DELETE_SEGMENT, wx.ITEM_NORMAL, _(u'Delete Wire Segment'), '', self.OnDeleteSegmentMenu)])
+    
+        menu.Enable(ID_DELETE_SEGMENT, delete)
+    
+    # Add Divergence Menu items to the given menu
+    def AddDivergenceMenuItems(self, menu, delete=False):
+        [ID_ADD_BRANCH, ID_DELETE_BRANCH] = [wx.NewId() for i in xrange(2)]
+        
+        # Create menu items
+        self.AddMenuItems(menu, [
+            (ID_ADD_BRANCH, wx.ITEM_NORMAL, _(u'Add Divergence Branch'), '', self.OnAddBranchMenu),
+            (ID_DELETE_BRANCH, wx.ITEM_NORMAL, _(u'Delete Divergence Branch'), '', self.OnDeleteBranchMenu)])
+        
+        menu.Enable(ID_DELETE_BRANCH, delete)
+    
+    # Add Add Menu items to the given menu
+    def AddAddMenuItems(self, menu):
+        [ID_ADD_BLOCK, ID_ADD_VARIABLE, ID_ADD_CONNECTION,
+         ID_ADD_COMMENT] = [wx.NewId() for i in xrange(4)]
+        
+        # Create menu items
+        self.AddMenuItems(menu, [
+            (ID_ADD_BLOCK, wx.ITEM_NORMAL, _(u'Block'), '', self.GetAddMenuCallBack(self.AddNewBlock)),
+            (ID_ADD_VARIABLE, wx.ITEM_NORMAL, _(u'Variable'), '', self.GetAddMenuCallBack(self.AddNewVariable)),
+            (ID_ADD_CONNECTION, wx.ITEM_NORMAL, _(u'Connection'), '', self.GetAddMenuCallBack(self.AddNewConnection)),
+            None])
+        
+        if self.CurrentLanguage != "FBD":
+            [ID_ADD_POWER_RAIL, ID_ADD_CONTACT, ID_ADD_COIL,
+            ] = [wx.NewId() for i in xrange(3)]
+            
+            # Create menu items
+            self.AddMenuItems(menu, [
+                (ID_ADD_POWER_RAIL, wx.ITEM_NORMAL, _(u'Power Rail'), '', self.GetAddMenuCallBack(self.AddNewPowerRail)),
+                (ID_ADD_CONTACT, wx.ITEM_NORMAL, _(u'Contact'), '', self.GetAddMenuCallBack(self.AddNewContact))])
+                
+            if self.CurrentLanguage != "SFC":
+                self.AddMenuItems(menu, [
+                     (ID_ADD_COIL, wx.ITEM_NORMAL, _(u'Coil'), '', self.GetAddMenuCallBack(self.AddNewCoil))])
+            
+            menu.AppendSeparator()
+        
+        if self.CurrentLanguage == "SFC":
+            [ID_ADD_INITIAL_STEP, ID_ADD_STEP, ID_ADD_TRANSITION, 
+             ID_ADD_ACTION_BLOCK, ID_ADD_DIVERGENCE, ID_ADD_JUMP,
+            ] = [wx.NewId() for i in xrange(6)]
+            
+            # Create menu items
+            self.AddMenuItems(menu, [
+                (ID_ADD_INITIAL_STEP, wx.ITEM_NORMAL, _(u'Initial Step'), '', self.GetAddMenuCallBack(self.AddNewStep, True)),
+                (ID_ADD_STEP, wx.ITEM_NORMAL, _(u'Step'), '', self.GetAddMenuCallBack(self.AddNewStep)),
+                (ID_ADD_TRANSITION, wx.ITEM_NORMAL, _(u'Transition'), '', self.GetAddMenuCallBack(self.AddNewTransition)),
+                (ID_ADD_ACTION_BLOCK, wx.ITEM_NORMAL, _(u'Action Block'), '', self.GetAddMenuCallBack(self.AddNewActionBlock)),
+                (ID_ADD_DIVERGENCE, wx.ITEM_NORMAL, _(u'Divergence'), '', self.GetAddMenuCallBack(self.AddNewDivergence)),
+                (ID_ADD_JUMP, wx.ITEM_NORMAL, _(u'Jump'), '', self.GetAddMenuCallBack(self.AddNewJump)),
+                None])
+        
+        self.AddMenuItems(menu, [
+             (ID_ADD_COMMENT, wx.ITEM_NORMAL, _(u'Comment'), '', self.GetAddMenuCallBack(self.AddNewComment))])
+        
+    # Add Default Menu items to the given menu
+    def AddDefaultMenuItems(self, menu, edit=False, block=False):
+        if block:
+            [ID_EDIT_BLOCK, ID_DELETE] = [wx.NewId() for i in xrange(2)]
+        
+            # Create menu items
+            self.AddMenuItems(menu, [
+                 (ID_EDIT_BLOCK, wx.ITEM_NORMAL, _(u'Edit Block'), '', self.OnEditBlockMenu),
+                 (ID_DELETE, wx.ITEM_NORMAL, _(u'Delete'), '', self.OnDeleteMenu)])
+        
+            menu.Enable(ID_EDIT_BLOCK, edit)
+        
+        else:
+            [ID_CLEAR_EXEC_ORDER, ID_RESET_EXEC_ORDER] = [wx.NewId() for i in xrange(2)]
+        
+            # Create menu items
+            self.AddMenuItems(menu, [
+                 (ID_CLEAR_EXEC_ORDER, wx.ITEM_NORMAL, _(u'Clear Execution Order'), '', self.OnClearExecutionOrderMenu),
+                 (ID_RESET_EXEC_ORDER, wx.ITEM_NORMAL, _(u'Reset Execution Order'), '', self.OnResetExecutionOrderMenu)])
+            
+            menu.AppendSeparator()
+            
+            add_menu = wx.Menu(title='')
+            self.AddAddMenuItems(add_menu)
+            menu.AppendMenu(-1, _(u'Add'), add_menu)
+        
+        menu.AppendSeparator()
+        
+        [ID_CUT, ID_COPY, ID_PASTE] = [wx.NewId() for i in xrange(3)]
+        
+        # Create menu items
+        self.AddMenuItems(menu, [
+             (ID_CUT, wx.ITEM_NORMAL, _(u'Cut'), '', self.GetClipboardCallBack(self.Cut)),
+             (ID_COPY, wx.ITEM_NORMAL, _(u'Copy'), '', self.GetClipboardCallBack(self.Copy)),
+             (ID_PASTE, wx.ITEM_NORMAL, _(u'Paste'), '', self.GetAddMenuCallBack(self.Paste))])
+        
+        menu.Enable(ID_CUT, block)
+        menu.Enable(ID_COPY, block)
+        menu.Enable(ID_PASTE, self.ParentWindow.GetCopyBuffer() is not None)
+        
     def _init_Editor(self, prnt):
         self.Editor = wx.ScrolledWindow(prnt, name="Viewer", 
             pos=wx.Point(0, 0), size=wx.Size(0, 0), 
@@ -464,8 +525,6 @@
         EditorPanel.__init__(self, parent, tagname, window, controler, debug)
         DebugViewer.__init__(self, controler, debug)
         
-        self._init_menus()
-        
         # Adding a rubberband to Viewer
         self.rubberBand = RubberBand(viewer=self)
         self.Editor.SetBackgroundColour(wx.Colour(255,255,255))
@@ -1217,92 +1276,49 @@
             else:
                 menu.Enable(new_id, False)
             self.Editor.PopupMenu(menu)
+            menu.Destroy()
 
     def PopupBlockMenu(self, connector = None):
+        menu = wx.Menu(title='')
         if connector is not None and connector.IsCompatible("BOOL"):
-            type = self.Controler.GetEditedElementType(self.TagName, self.Debug)
-            self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS0, True)
-            self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS1, True)
-            self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS2, type != "function")
-            self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS3, type != "function")
+            self.AddBlockPinMenuItems(menu, connector)
         else:
-            self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS0, False)
-            self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS1, False)
-            self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS2, False)
-            self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS3, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS5, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS6, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS8, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS9, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS14, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS16, self.SelectedElement.GetType() in self.Controler.GetProjectPouNames(self.Debug))
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS17, True)
-        if connector is not None:
-            if connector.IsNegated():
-                self.ContextualMenu.Check(ID_VIEWERCONTEXTUALMENUITEMS1, True)
-            elif connector.GetEdge() == "rising":
-                self.ContextualMenu.Check(ID_VIEWERCONTEXTUALMENUITEMS2, True)
-            elif connector.GetEdge() == "falling":
-                self.ContextualMenu.Check(ID_VIEWERCONTEXTUALMENUITEMS3, True)
-            else:
-                self.ContextualMenu.Check(ID_VIEWERCONTEXTUALMENUITEMS0, True)
-        self.Editor.PopupMenu(self.ContextualMenu)
+            edit = self.SelectedElement.GetType() in self.Controler.GetProjectPouNames(self.Debug)
+            self.AddDefaultMenuItems(menu, block=True, edit=edit)
+        self.Editor.PopupMenu(menu)
+        menu.Destroy()
     
     def PopupWireMenu(self, delete=True):
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS0, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS1, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS2, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS3, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS5, True)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS6, delete)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS8, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS9, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS14, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS16, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS17, True)
-        self.Editor.PopupMenu(self.ContextualMenu)
-    
+        menu = wx.Menu(title='')
+        self.AddWireMenuItems(menu, delete)
+        menu.AppendSeparator()
+        self.AddDefaultMenuItems(menu, block=True)
+        self.Editor.PopupMenu(menu)
+        menu.Destroy()
+        
     def PopupDivergenceMenu(self, connector):
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS0, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS1, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS2, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS3, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS5, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS6, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS8, True)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS9, connector)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS14, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS16, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS17, True)
-        self.Editor.PopupMenu(self.ContextualMenu)
+        menu = wx.Menu(title='')
+        self.AddDivergenceMenuItems(menu, connector)
+        menu.AppendSeparator()
+        self.AddDefaultMenuItems(menu, block=True)
+        self.Editor.PopupMenu(menu)
+        menu.Destroy()
     
     def PopupGroupMenu(self):
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS0, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS1, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS2, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS3, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS5, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS6, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS8, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS9, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS14, True)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS16, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS17, True)
-        self.Editor.PopupMenu(self.ContextualMenu)
-    
-    def PopupDefaultMenu(self, block = True):
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS0, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS1, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS2, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS3, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS5, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS6, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS8, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS9, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS14, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS16, False)
-        self.ContextualMenu.Enable(ID_VIEWERCONTEXTUALMENUITEMS17, block)
-        self.Editor.PopupMenu(self.ContextualMenu)
+        menu = wx.Menu(title='')
+        align_menu = wx.Menu(title='')
+        self.AddAlignmentMenuItems(align_menu)
+        menu.AppenMenu(-1, _(u'Alignment'), align_menu)
+        menu.AppendSeparator()
+        self.AddDefaultMenuItems(menu, block=True)
+        self.Editor.PopupMenu(menu)
+        menu.Destroy()
+        
+    def PopupDefaultMenu(self, block=True):
+        menu = wx.Menu(title='')
+        self.AddDefaultMenuItems(menu, block=block)
+        self.Editor.PopupMenu(menu)
+        menu.Destroy()
 
 #-------------------------------------------------------------------------------
 #                            Menu items functions
@@ -1407,6 +1423,16 @@
         self.RefreshBuffer()
         self.RefreshView()
 
+    def GetAddMenuCallBack(self, func, *args):
+        def AddMenuCallBack(event):
+            wx.CallAfter(func, self.rubberBand.GetCurrentExtent(), *args)
+        return AddMenuCallBack
+
+    def GetClipboardCallBack(self, func):
+        def ClipboardCallback(event):
+            wx.CallAfter(func)
+        return ClipboardCallback
+
 #-------------------------------------------------------------------------------
 #                          Mouse event functions
 #-------------------------------------------------------------------------------
@@ -1427,6 +1453,7 @@
         event.Skip()
     
     def OnViewerLeftDown(self, event):
+        self.Editor.CaptureMouse()
         if self.Mode == MODE_SELECTION:
             dc = self.GetLogicalDC()
             pos = event.GetLogicalPosition(dc)
@@ -1605,9 +1632,12 @@
             self.StartScreenPos = None
         if self.Mode != MODE_SELECTION and not self.SavedMode:
             wx.CallAfter(self.ParentWindow.ResetCurrentMode)
+        if self.Editor.HasCapture():
+            self.Editor.ReleaseMouse()
         event.Skip()
     
     def OnViewerMiddleDown(self, event):
+        self.Editor.CaptureMouse()
         self.StartMousePos = event.GetPosition()
         self.StartScreenPos = self.GetScrollPos(wx.HORIZONTAL), self.GetScrollPos(wx.VERTICAL)
         event.Skip()
@@ -1615,9 +1645,12 @@
     def OnViewerMiddleUp(self, event):
         self.StartMousePos = None
         self.StartScreenPos = None
+        if self.Editor.HasCapture():
+            self.Editor.ReleaseMouse()
         event.Skip()
     
     def OnViewerRightDown(self, event):
+        self.Editor.CaptureMouse()
         if self.Mode == MODE_SELECTION:
             element = self.FindElement(event)
             if self.SelectedElement is not None and self.SelectedElement != element:
@@ -1633,6 +1666,10 @@
         event.Skip()
     
     def OnViewerRightUp(self, event):
+        dc = self.GetLogicalDC()
+        self.rubberBand.Reset()
+        self.rubberBand.OnLeftDown(event, dc, self.Scaling)
+        self.rubberBand.OnLeftUp(event, dc, self.Scaling)
         if self.SelectedElement is not None:
             if self.Debug:
                 Graphic_Element.OnRightUp(self.SelectedElement, event, self.GetLogicalDC(), self.Scaling)
@@ -1641,6 +1678,8 @@
             wx.CallAfter(self.SetCurrentCursor, 0)
         elif not self.Debug:
             self.PopupDefaultMenu(False)
+        if self.Editor.HasCapture():
+            self.Editor.ReleaseMouse()
         event.Skip()
     
     def OnViewerLeftDClick(self, event):
@@ -1672,6 +1711,8 @@
         event.Skip()
     
     def OnViewerMotion(self, event):
+        if self.Editor.HasCapture() and not event.Dragging():
+            return
         refresh = False
         dc = self.GetLogicalDC()
         pos = GetScaledEventPosition(event, dc, self.Scaling)
@@ -2794,16 +2835,20 @@
             text = self.Controler.GetEditedElementInstancesCopy(self.TagName, blocks, wires, self.Debug)
             self.ParentWindow.SetCopyBuffer(text)
             
-    def Paste(self):
+    def Paste(self, bbx=None):
         if not self.Debug:
             element = self.ParentWindow.GetCopyBuffer()
-            mouse_pos = self.Editor.ScreenToClient(wx.GetMousePosition())
-            middle = wx.Rect(0, 0, *self.Editor.GetClientSize()).InsideXY(mouse_pos.x, mouse_pos.y)
-            if middle:
-                x, y = self.CalcUnscrolledPosition(mouse_pos.x, mouse_pos.y)
+            if bbx is None:
+                mouse_pos = self.Editor.ScreenToClient(wx.GetMousePosition())
+                middle = wx.Rect(0, 0, *self.Editor.GetClientSize()).InsideXY(mouse_pos.x, mouse_pos.y)
+                if middle:
+                    x, y = self.CalcUnscrolledPosition(mouse_pos.x, mouse_pos.y)
+                else:
+                    x, y = self.CalcUnscrolledPosition(0, 0)
+                new_pos = [int(x / self.ViewScale[0]), int(y / self.ViewScale[1])]
             else:
-                x, y = self.CalcUnscrolledPosition(0, 0)
-            new_pos = [int(x / self.ViewScale[0]), int(y / self.ViewScale[1])]
+                middle = True
+                new_pos = [bbx.x, bbx.y]
             result = self.Controler.PasteEditedElementInstances(self.TagName, element, new_pos, middle, self.Debug)
             if not isinstance(result, (StringType, UnicodeType)):
                 self.RefreshBuffer()
@@ -2927,6 +2972,8 @@
 #-------------------------------------------------------------------------------
 
     def OnScrollWindow(self, event):
+        if self.Editor.HasCapture():
+            return
         if wx.Platform == '__WXMSW__':
             wx.CallAfter(self.RefreshVisibleElements)
         elif event.GetOrientation() == wx.HORIZONTAL:
--- a/controls/VariablePanel.py	Sat Mar 31 15:03:50 2012 +0200
+++ b/controls/VariablePanel.py	Sat Mar 31 15:08:18 2012 +0200
@@ -775,6 +775,7 @@
 
             # pop up this new menu
             self.VariablesGrid.PopupMenuXY(type_menu, corner_x, corner_y)
+            type_menu.Destroy()
             event.Veto()
         else:
             event.Skip()
--- a/graphics/GraphicCommons.py	Sat Mar 31 15:03:50 2012 +0200
+++ b/graphics/GraphicCommons.py	Sat Mar 31 15:08:18 2012 +0200
@@ -416,6 +416,8 @@
     
     # Method that returns the currently edited box
     def GetCurrentExtent(self):
+        if self.currentBox is None:
+            return self.lastBox
         return self.currentBox
     
     # Method called when a new box starts to be edited